海大软件1102班 - 云代码空间
—— 你究竟输入什么了导致它崩溃?
用JSP技术实现RSS功能首先我们来看下什么是RSS,RSS(也叫聚合内容,Really Simple Syndication)现在用的已经很广啦,最初的RSS要追溯到1995年,当Ramanathan V. Guha和其他在苹果电脑公司的高级技术组开发了一个测试的内容框架。更多有关RSS的资料可查看这里,下面我们来为我们的JSP网站生成RSS。
用JSP技术实现RSS功能之最基本的RSS结构:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"> </rss> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"> </rss>
用JSP技术实现RSS功能其实就是一个XML文件!
在<rss></rss>之间我们可以自由配置自己要发布的RSS的格式。例如此次我们要发布的RSS是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" x mlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" x mlns:slash="http://purl.org/rss/1.0/modules/slash/"> <channel> <item> <title>JSP网站RSS的实现</title> <author>neeke</author> <pubDate>2008-10-04</pubDate> <description>这是来自尼克技术博客博客的RSS</description> <category>J2EE技术</category> </item> </channel> </rss>了解了它的结构实现起来就容易了。我们创建IO流,并从数据库中获取到我们要发布的RSS资源的集合,然后按照它的格式与结构一行一行的写入到一个RSS.XML文件中即可。
public static void publishRss(String rssPath) { //获得要发布的RSS数据集合 ArrayList rssArticle = ArticleManager.getArticlesAll(); try { //创建输入输出流 FileWriter fw = new FileWriter(rssPath); BufferedWriter bw = new BufferedWriter(fw); //开始按照格式写入数据 bw.write( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n"); bw.write("<?xml-stylesheet type=\"text/xsl\" href=\"CSS/rss.xslt\"?>"); bw.write("<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\" xmlns:wfw=\"http://wellformedweb.org/CommentAPI/\" xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\">\r\n"); bw.write("<channel>\r\n"); for (int i = 0; i < rssArticle.size(); i++) { ArticleBean article = (ArticleBean) rssArticle.get(i); bw.write("<item>\r\n"); bw.write("<title>" + article.getTitle() + "</title>\r\n"); bw.write("<author>" + article.getAuthorId() + "</author>\r\n"); bw.write("<pubDate>" + article.getPostTime() + "</pubDate>\r\n"); bw.write("<description>" + article.getIntro() + "</description>\r\n"); bw.write("<category>" + article.getCateId() + "</category>\r\n"); bw.write("</item>\r\n"); } bw.write("</channel>\r\n"); bw.write("</rss>"); //关闭流,RSS发布完毕。 bw.close(); fw.close(); } catch (IOException ex) { ex.printStackTrace(); } }