仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 919|回复: 13
打印 上一主题 下一主题

[学习教程] JAVA网页设计用JSP完成基于Web的RSS浏览器

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:20:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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”和项目地位,其他接纳缺省,点击”完成”。


图一:创立NetBeans的Web项目


在新创建的”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()方法不能获取对象的名字。
简单生活 该用户已被删除
沙发
发表于 2015-1-20 20:50:10 来自手机 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
乐观 该用户已被删除
板凳
发表于 2015-1-22 08:20:23 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
admin 该用户已被删除
地板
发表于 2015-1-25 17:48:44 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
因胸联盟 该用户已被删除
5#
发表于 2015-1-25 19:36:18 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
变相怪杰 该用户已被删除
6#
发表于 2015-2-1 18:19:47 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
柔情似水 该用户已被删除
7#
发表于 2015-2-7 13:18:15 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
兰色精灵 该用户已被删除
8#
发表于 2015-2-21 22:35:42 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
不帅 该用户已被删除
9#
发表于 2015-2-28 05:45:36 | 只看该作者
是一种为 Internet发展的计算机语言
小妖女 该用户已被删除
10#
发表于 2015-3-1 20:06:07 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
透明 该用户已被删除
11#
发表于 2015-3-10 23:50:36 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
飘飘悠悠 该用户已被删除
12#
发表于 2015-3-12 21:59:12 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
只想知道 该用户已被删除
13#
发表于 2015-3-20 03:41:02 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
分手快乐 该用户已被删除
14#
发表于 2015-5-1 01:05:17 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 01:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表