亲啊嘴金,发布于:2009-05-20 06:00:48 | 2365 浏览

JSP页RSS输出

一个JSP的RSS输出功能。我不理解网上其它人是怎么做得那么复杂?比如用流输出,用sevelet输出,用dom4j组件生成,可能是需求不同吧。
我有我办法,我的需求大概是这样,我只要一个JSP页面完成RSS2.0的输出。不要用组件或者Sevelet实现、并且需要实时的调用数据而不是生成XML。

<%response.setHeader("pragma","no-cache");
           response.setHeader("cache-control","no-cache");
           response.setHeader("expires","0");
           response.setHeader("content-type","text/xml;charset=utf-8");
           ArticleDao Art = new ArticleDao();
     List<Article> listArt = Art.selectPage(1,10);
     //获取到http地址
     String url=request.getScheme()+"://";
   url+=request.getHeader("host");
   url+=request.getContextPath()+"/";
   //if(request.getQueryString()!=null)
   //url+="?"+request.getQueryString();
     //拼一个XML格式文件出来。
     String outputHeader="<?xml version=\"1.0\" encoding=\"utf-8\"?>"+"\n"
     +"<rss version=\"2.0\">"+"\n"
        +"<channel>"+"\n"
        +"<title>可惜危机博客</title>"+"\n"
        +"<image>"+"\n"
        +"<title>可惜危机博客</title>"+"\n"
        +"<link>"+url+"</link>"+"\n"
        +"<url>.</url>"+"\n"
        +"</image>"+"\n"
        +"<description>Kcvg</description>"+"\n"
        +"<link>"+url+"</link>"+"\n"
        +"<language>zh-cn</language>"+"\n"
        +"<docs>可惜危机</docs>"+"\n"
        +"<generator>可惜危机博客JSP版本</generator>"+"\n";
           out.println(outputHeader);
   for(int i=0;i<listArt.size();i++){
                String temp="";
    temp="<item>"+"\n"
      +"<title><![CDATA["+listArt.get(i).getTitle()+"]]></title>"+"\n"
         +"<link>"+url+"diary.jsp?id="+listArt.get(i).getId()+"</link>"+"\n"
      +"<author>Kcvg</author>"+"\n"
      +"<pubDate>"+listArt.get(i).getTimer()+"</pubDate>"+"\n"
      +"<description><![CDATA["+listArt.get(i).getContent()+"]]></description>"+"\n"
      +"</item>"+"\n";
                out.println(temp);
   }
   out.println("</channel>\n</rss>");
%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:directive.page import="com.blog.dao.*" />
<jsp:directive.page import="com.blog.entity.*" />

美中不足的就是太多的“+”连接字符了,但是考虑到自己只是一个博客RSS的输出,应该没什么大的问题。另外特别强调一点,XML文件第一行是不能有空行的,所以把JSP的导包代码都放到下面来了。
这个页面丢参数进来可以扩展成全部RSS输出或某篇RSS输出,嗯,要是我要这个文件变成XML后缀的怎么办?那也简单,伪静态就能帮上忙了。

  1. 上一篇:你有没有试过清空你的微型博客?