使用Filter拦截器

1、通过web.xml配置Filter

    <filter>
        <filter-name>characterFilter</filter-name>      //定义filter名字
        <filter-class>filter.characterFilter</filter-class>    //定义filter的类
        <init-param>                                                 //定义初始化参数 使用初始化参数的好处在于:要修改参数值时,可直接通过更改xml文件来修改
            <param-name>charset</param-name>     //定义初始化参数的名字
            <param-value>utf-8</param-value>        //定义初始化参数的值  
        </init-param>
    </filter>
    <filter-mapping>                                          //定义filter的映射
        <filter-name>characterFilter</filter-name>   //定义要映射的名字
        <url-pattern>/*</url-pattern>                     //定义拦截器的范围
    <filter-mapping>    

2、通过一个java实现Filter接口来组成拦截器

public class characterFilter implements Filter {              //继承Filter接口
    private FilterConfig config;                                     //用来接收初始化参数对象
    public void destroy() {                                        //拦截器被销毁时所调用的函数
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { //拦截器功能实现的主要函数,每次访问被拦截的jsp都会调用此函数
        String charSet=config.getInitParameter("charset");   //通过初始化参数定义页面的字符集
        request.setCharacterEncoding(charSet);
        chain.doFilter(request, response);      //该函数作用是指向下个拦截器
    }

    public void init(FilterConfig config) throws ServletException {
        this.config=config;                                  //将xml的初始化参数封装在成员对象中
    }
}
posted @ 2019-12-16 21:58  shouyaya  阅读(1269)  评论(0编辑  收藏  举报