|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊js|rss|web一:RSS先容
依据维基百科(http://zh.wikipedia.org/wiki/RSS)的界说,“RSS是一种用于共享旧事和其他Web内容的数据互换标准”,它是一系列的标准的组合,接纳XML格局。今朝国际RSS使用最多的是在旧事网站和博客网站上。
很多网站能够用RSS浏览器来本性化本人的网页,好比显现最新的新浪旧事,显现本人好伴侣最新的博客文章,显现最新的Google论坛内容。除此以外,使用RSS浏览器还能够完成别的用处,好比:
取得天色预告
吸收邮件,好比Gmail就供应RSSfeed
猎取最新股票行情
猎取音乐,电台节目和视频剪辑等等
二:Rome先容
这篇文章接纳Rome这个开源工具来完成RSS浏览器。Rome撑持的格局良多,有RSS0.90,RSS0.91Netscape,RSS0.91Userland,RSS0.92,RSS0.93,RSS0.94,RSS1.0,RSS2.0,Atom0.3,Atom1.0等等,几近包括了今朝一切的RSS和atom版本。最新的Rome版本能够从http://wiki.java.net/bin/view/Javawsxml/Rome上失掉。
完成RSS浏览器,次要接纳Rome的剖析功效,就是从XML文件中读出响应的内容。我用一些复杂代码来讲明怎样利用Rome中的类和办法。
URLfeedUrl=newURL("http://rss.sina.com.cn/news/marquee/ddt.xml");
SyndFeedInputinput=newSyndFeedInput();
SyndFeedfeed=input.build(newXmlReader(feedUrl));
表一:失掉RSSFeed
“http://rss.sina.com.cn/news/marquee/ddt.xml“是新浪旧事的一个RSS地点。经由过程三行代码,就能够失掉一个对应这个地点的RSSFeed对象。这个对象包括我们所必要的一切RSS内容。假如用System.out.println(feed),会失掉表二中的了局。从中能够分明地看到SyndFeed类的布局。
SyndFeedImpl.contributors=null
SyndFeedImpl.title=旧事中央-旧事要闻
SyndFeedImpl.categories[0].name=
SyndFeedImpl.categories[0].taxonomyUri=null
SyndFeedImpl.link=http://news.sina.com.cn/iframe/o/allnews/input/index.htm
SyndFeedImpl.publishedDate=ThuJun2213:20:01CST2006
SyndFeedImpl.entries[0].updatedDate=null
SyndFeedImpl.entries[0].contributors=null
SyndFeedImpl.entries[0].title=扎瓦赫里在录相带中号令阿富汗人反抗本国侵犯
SyndFeedImpl.entries[0].categories[0].name=
SyndFeedImpl.entries[0].categories[0].taxonomyUri=null
SyndFeedImpl.entries[0].link=http://news.sina.com.cn/w/2006-06-22/11569270955s.shtml
SyndFeedImpl.entries[0].publishedDate=ThuJun2211:56:00CST2006
SyndFeedImpl.entries[0].authors=null
SyndFeedImpl.entries[0].modules[0].descriptions=[]
SyndFeedImpl.entries[0].modules[0].creators[0]=WWW.SINA.COM.CN
SyndFeedImpl.entries[0].modules[0].contributors=[]
......
SyndFeedImpl.author=null
SyndFeedImpl.copyright=Copyright1996-2005SINAInc.AllRightsReserved
表二:SyndFeed数据布局
从上述输入了局能够看出,每一个旧事条目是由entry代表的。以下代码从feed中失掉entry
Listlist=feed.getEntries();
for(inti=0;i<list.size();i++){
SyndEntryentry=(SyndEntry)list.get(i);
}
表三:从SyndFeed中失掉SyndEntry
假如程序位于防火墙前面,就必要在程序中加上一些Proxy设置。比方接纳上面的httpproxy:
PropertiessystemSettings=System.getProperties();
systemSettings.put("http.proxyHost","myproxyserver.com");
systemSettings.put("http.proxyPort","80");
System.setProperties(systemSettings);
表四:Proxy设置
偶然候,大概会碰到“java.io.IOException:ServerreturnedHTTPresponsecode:403forURL”的毛病信息。一般是由于服务器的平安设置不承受Java程序作为客户端会见,办理计划是设置客户真个UserAgent,示例代码以下:
URLConnectionfeedUrl=newjURL(urlStr).openConnection();
feedUrl.setRequestProperty("User-Agent","Mozilla/4.0(compatible;MSIE5.0;WindowsNT;DigExt)");
SyndFeedInputinput=newSyndFeedInput();
SyndFeedfeed=input.build(newXmlReader(feedUrl));
表五:设置User-Agent
ROME供应的功效良多,除能够剖析Feed外,还能够天生Feed。用Rome来为本人的网站内容创立RSSFeed,如许他人就能够经由过程RSS浏览器来随时懂得你网站内容的更新了。
利用ROME必要两个前提:
JavaSE1.4以上的版本,下载地点: http://java.sun.com/
开源软件JDOM,下载地点:http://www.jdom.org/
三:用NetBeans疾速开辟一个复杂实例
上面用一个复杂的实例原型开辟步骤来显现怎样疾速天时用Rome和NetBeans来构建一个基于Web的RSS浏览器。
NetBeans是一个开源的JavaIDE软件,下载地点:http://www.netbeans.org。选用NetBeans是由于它内置Tomcat,能够节俭良多设置和运转的工夫。并且功效壮大,能够高效完成JavaSE,JavaEE和JavaME等各类使用程序的开辟。
用NetBeans5.0创立WebProject。
翻开NetBeans, 选择菜单"文件->新建项目",在新建项目窗口中,"种别"选择"Web",项目选择"Web使用程序",点击”下一步”。在”新建Web使用程序”窗口中,输出项目称号,好比”webrssreader”和项目地位,其他接纳缺省,点击”完成”。
在新创建的”webrssreader”项目中,到场两个jar文件:
jdom.jar:JDOM开源项目中(http://www.jdom.org/)
rome.jar:ROME开源项目中(http://wiki.java.net/bin/view/Javawsxml/Rome)
在index.jsp中到场代码
<%@pagecontentType="text/html"%>
<%@pagepageEncoding="UTF-8"%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
<title>SinaNews</title>
</head>
<body>
<%
java.util.PropertiessystemSettings=System.getProperties();
systemSettings.put("http.proxyHost","mywebcache.com");
systemSettings.put("http.proxyPort","8080");
System.setProperties(systemSettings);
StringurlStr="http://rss.sina.com.cn/news/marquee/ddt.xml";
java.net.URLConnectionfeedUrl=newjava.net.URL(urlStr).openConnection();
feedUrl.setRequestProperty("User-Agent","Mozilla/4.0(compatible;MSIE5.0;WindowsNT;DigExt)");
com.sun.syndication.io.SyndFeedInputinput=newcom.sun.syndication.io.SyndFeedInput();
com.sun.syndication.feed.synd.SyndFeedfeed=input.build(newcom.sun.syndication.io.XmlReader(feedUrl));
%>
<divalign="center">
<h1><%=feed.getTitle()%></h1>
<tableborder=1cellpadding=3width="700">
<tr>
<th>Number</th>
<th>Title</th>
<th>Time</th>
</tr>
<%
java.util.Listlist=feed.getEntries();
for(inti=0;i<list.size();i++){
com.sun.syndication.feed.synd.SyndEntryentry=(com.sun.syndication.feed.synd.SyndEntry)list.get(i);
%>
<tr>
<td><%=i+1%></td>
<td><ahref="<%=entry.getLink()%>"><%=entry.getTitle()%></a></td>
<td><%=entry.getPublishedDate()%></td>
</tr>
<%}%>
</table>
</div>
<br>
</body>
</html>
表六:index.jsp全体源代码
- 运转项目。鼠标右键点击”webrssreader”项目,选择”运转项目”。
- 运转了局以下。
图四:程序运转了局
四:总结
RSS属于Web2.0的一种使用手艺。Web2.0倡始本性化与介入性。而这个复杂实例的开辟中,接纳的都是一些开源软件,开源软件更是”大家为我,我为大家”精力的一种表现。良多时分,我们不必要本人重新开辟一些工具,站在后人的肩膀上,开辟出一些更好的使用大概是程序员们更应当思索的事变。
作者先容:
李力今朝在SunMicrosystems任初级软件工程师,有近十年软件开辟履历,曾就任于AIG,CA等公司,任软件工程师及体系剖析员等职位,在J2EE范畴有丰厚的实践开辟履历。接洽体例:Ada.Li@Sun.com。
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。 |
|