« 办到了招行奥运双卡信用卡了« »如何设置eclipse里JSP的默认使用编码 »
JSP开发中,定时关闭网页访问的另类思路

以前看到一些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

如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
好东西需要分享,快把本文发给你的朋友吧~!~

     
相关文章:




◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
网站分类
分类最近文章
最近发表
最新评论及回复
最近留言
热文排行
随机推荐文章
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(J2EE为主):3769186.