JSP/FreeMarker生成RSS
RSS2.0在网络上大行其道,各种网站都加上RSS支持,关于RSS规范,可以浏览一下 http://blogs.law.harvard.edu/tech/rss
在计划生成RSS文件的时候,顺便搜索了一下JIRA和Confluence的程序,发现它们分别是用模板方式和JSP动态页面来展示的.
于是我也想到两种方式:
1.用FreeMarker生成静态文件,适用于更新不是很频繁的内容.
2.用JSP动态展示,适合更新频率高,种类繁多的内容.
还是以本站的新闻举例,其中的新闻信息类参考
http://www.jscud.com/srun/news/viewhtml/3_2005_8/76.htm
(一) FreeMarker方式.
根据RSS的规范,得到模板如下:
<?xml
version="1.0" encoding="UTF-8" ?>
<rss
version="2.0">
<channel>
<title>JScud
Develop</title>
<link>http://www.jscud.com/</link>
<language>zh-cn</language>
<description >JScud
Develop By Scud</description>
<webMaster>xxx@21cn.com(scud)</webMaster>
<lastBuildDate>${rssutil.formatRssDate(now)}</lastBuildDate>
<#list newslist as onenews>
<item>
<title>${onenews.title?xml}</title>
<link>http://www.jscud.com/srun/news/viewhtml/${onenews.htmlFilePath}/${onenews.nid}.htm</link>
<pubDate>${rssutil.formatRssDate(onenews.addtime)}</pubDate>
<description><![CDATA[
${rssutil.formatRssCData(onenews.showContent)}
]]>
</description>
</item>
</#list>
</channel>
</rss>
其中的网址和网站名称可以根据自己的实际情况修改.
我每次取出最新的20条文章来生成RSS,不过内容比较多,生成的RSS文件比较大,看到有的网站的description只是放了文章摘要的内容,这样文件就小多了.总之是根据自己的需求设计吧.
其中用到的RssUtil函数库的函数如下(日期的函数参考上一篇文章):
/**
* 把]]>替换为]]>
* @param content 内容
* @return
格式化后的内容
*/
public static String formatRssCData(String content
相关文档:
<%@page import="java.util.*"%>
<%@page import="java.io.*"%>
<%@page import="java.net.*"%>
<%
String filename = "";
if (request.getParameter("file") != null) {
filename = request.getParameter("file");
}
response.setContentType("application/msword");
response.setHeader("C ......
第一种 JavaScript连接数据库:
<mce:script language="JavaScript"><!--
// 创建数据库对象
var objdbConn = new ActiveXObject("ADODB.Connection");
// DSN字符串
var strdsn = "Driver={SQL Server};SERVER=192.168.0.210;UID=xhb;PWD=xhb;DATABASE=books";
// 打开数据源
objdbConn.Open(strdsn);
// ......
我们在写一个jsp页面,要使用struts2标签,我们要首先要在jsp页面头部放:<%@ taglib prefix="s" uri="/struts-tags" %>,当然要放struts2的jar包了。我们可以刷新一下此页面,比如把这个页面保存后再打开,目的是在写struts2标签时,有struts2标签自动提示功能。
......
JSP彩色验证码
生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
原型参考ALIBABA http://china.alibaba.com/member/showimage
产生验证码图片的文件-----image.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,java ......
JSP彩色验证码
生成有4个随机数字和杂乱背景的图片,数字和背景颜色会改变,服务器端刷新(用history.go(-1)也会变)
原型参考ALIBABA http://china.alibaba.com/member/showimage
产生验证码图片的文件-----image.jsp
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,java ......