原理及特点

特点:大小仅9k,没有用额外包,jdk1.4环境开发通用性强,配置简单

 

原理:利用filter拦截请求的jsp,如已生成静态页面且没到刷新时间则重定向静态页面,否则生成静态页面。

 

 * 生成策略:当前时间与上次修改时间的差值大于间隔时间则重新生成
 * 定向策略:如果是拦截的页面并以生成静态页面则重定向的静态页面
 * 静态页面文件名生成策略:源文件名+参数的md5码

配置方法

    1.引入所需包(见附件dynamictostatic_0.8.jar)

    2.web.xml里配置filter,如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<filter>
		<filter-name>Dynamic2StaticFilter</filter-name>
		<filter-class>com.hrtc.d2s.Dynamic2StaticFilter</filter-class>

		<init-param>
			<description>刷新频率单位秒</description>
			<param-name>refresh_time</param-name>
			<param-value>600</param-value>
		</init-param>
		<init-param>
			<description>生成静态页面线程池大小</description>
			<param-name>threadsize</param-name>
			<param-value>10</param-value>
		</init-param>
		<init-param>
			<description>输出流缓存大小单位字节</description>
			<param-name>buffersize</param-name>
			<param-value>8192</param-value>
		</init-param>
		<init-param>
			<description>生成的页面存放于相对于应用根路径</description>
			<param-name>static_folder</param-name>
			<param-value>/html</param-value>
		</init-param>
		<init-param>
			<description>静态文件扩展名</description>
			<param-name>static_extend_name</param-name>
			<param-value>.html</param-value>
		</init-param>
		<init-param>
			<description>临时文件扩展名</description>
			<param-name>temp_extend_name</param-name>
			<param-value>.temp</param-value>
		</init-param>
		<init-param>
			<description>http head参数名</description>
			<param-name>request_head_name</param-name>
			<param-value>requesttype</param-value>
		</init-param>
		<init-param>
			<description>http head参数值</description>
			<param-name>request_head_value</param-name>
			<param-value>download</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>Dynamic2StaticFilter</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>
 

配置完毕,随便访问你网站的页面看效果吧。

 

这是今天自己想到的方法,与大家互相学习一下,希望大家能提出改进意见。

 

源码见附件,在windows平台上开发

 

评论
hrtc 2008-06-30
另外生成是用另一线程做的,所以不会影响当前请求。
hrtc 2008-06-30
看你的页面访问率决定如何设置了,比如说生成时间设成1分钟,那么1分钟里只会生成1次,1分钟访问10次的话可以节省9次的时间多一次生成时间,另外采用被动生成策略(访问时才生成),所以把生成过程平均化了,个人认为比一下子全部网页转成静态效率高,而且生成频率相对也能调得更低些,因为全部生成的话要花很多时间。效率的话你自己试下就知道了。
goaling 2008-06-29
都在过滤器里 效率高吗
发表评论

您还没有登录,请登录后发表评论

hrtc
搜索本博客
存档
最新评论