用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

海大软件1102班    -  云代码空间

—— 你究竟输入什么了导致它崩溃?

用jsp实现RSS订阅功能

2012-12-13|1885阅||

摘要: 用JSP技术实现RSS功能首先我们来看下什么是RSS,RSS(也叫聚合内容,Really Simple Syndication)现在用的已经很广啦,最初的RSS要追溯到1995年,当Ramanathan V. Guha和其他在苹果电脑公司的高级技术组开发了一个测试的内容框架。

        用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();   
        }   
    }  

        这样用JSP实现RSS就发布完毕了,经过我的测试打开后会提示出错,用记事本打开生成的源文件,然而我们的RSS文件是一点问题都没有的哇,怎么可能呢?接着又用JBuilder打开这个XML文件,晕倒~汉字全是乱码,立刻意识到问题出在了哪里了。在哪呢?其实就是文件的编码问题!将原先bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n");该行代码中的UTF-8改为GBK,重新跑一次程序,一切OK!


顶 5踩 2收藏
文章评论
    发表评论

    个人资料

    • 昵称: 海大软件1102班
    • 等级: 初级设计师
    • 积分: 2516
    • 代码: 147 个
    • 文章: 70 篇
    • 随想: 11 条
    • 访问: 242 次
    • 关注

    站长推荐