以前看到一些BBS后台里都有定时关闭网站的功能,很不错,比较实用,我今天要说的是在JSP里定时关闭一个网站或者某个网页的另一种思路.
不用修改网页,添加一个filter来实现,在这个filter里根据比较时间的结果来决定是否关闭访问,再到tomcat里配置一下这个filter就OK了,如果不用的话,从配置里去调这个配置就行了,不用修改网页,所以也是一个不错的想法.
步骤如下:
1>:编写filter实现代码:
package fly.filter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;
import javax.servlet.http.HttpSession;
public class CloseWeb implements Filter
{
protected FilterConfig filterConfig;
private String closetime = "2007-12-25 23:59:59";
public void destroy()
{
// TODO 自动生成方法存根
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException
{
// TODO 自动生成方法存根
HttpServletResponse hres = (HttpServletResponse) res;
HttpServletRequest hreq = (HttpServletRequest) req;
try
{
Date date1 = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
/*
* 方法2
* java.util.Date date3 ; SimpleDateFormat sdf = new
* SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 时间格式自己设置
* date3=sdf.parse(closetime);
* if((int)(date3.getTime()-date1.getTime())<0 )
*/
if (date1.after(df.parse(closetime)))
{
hres.getWriter().write("对不起,网页暂时关闭.");
hres.sendRedirect("index.jsp");// 跳转到出错页面
}
chain.doFilter(req, res);
}
catch (ParseException e)
{
System.out.print("[SYS] " + e.getMessage());
hres.getWriter().write("对不起,网页暂时关闭.");
hres.sendRedirect("index.jsp");// 跳转到出错页面
}
}
public void init(FilterConfig config) throws ServletException
{
// TODO 自动生成方法存根
this.filterConfig = config;
this.closetime = config.getInitParameter("closetime");
}
}
2:配置web.xml,添加以下内容
<filter>
<filter-name>CloseWeb</filter-name>
<filter-class>fly.filter.CloseWeb</filter-class>
<init-param>
<param-name>closetime</param-name>
<param-value>2007-12-22 23:59:59</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CloseWeb</filter-name>
<url-pattern>/testfilter.jsp</url-pattern>
</filter-mapping>
OK了,是不是比较方便,当然,你还可以扩展一下,再添加几个参数配置,将关闭后的跳转页面也设置到配置里,或者弄多个关闭时间,或者时间段等
Tags: JSP |
原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.net/
本文链接地址:http://www.busfly.net/post/JSP-closeweb-on-time.html
如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~