Java_Filter

来源:互联网 发布:苹果手机平面设计软件 编辑:程序博客网 时间:2024/05/17 04:08

JAVA Filter


1.Java过滤器

a.过滤源--->过滤规则--->过滤结果b.服务器端组件c.截取信息d.启动时加载e.过滤

2.工作原理

3.生命周期

(1)生命周期:
实例化—初始化—过滤—销毁

(2)init()方法:
web.xml配置文件

(3)doFilter()方法:

过滤器核心方法,执行相应操作

4.过滤器链

a.一个请求对应多个过滤器;b.Filter的url-patterns相同c.链的顺序按web.xml中的配置;d.在doFilter中,先执行放行前的方法,到达服务器,返回时反之到达用户;

5.过滤器分类

(1)Request:

用户直接访问页面时调用

(2)Forward:

通过request对象的getRequestDispatcher("url").forward(request,response)方法调用 

(3)Include:

通过request对象的getRequestDispatcher("url").include(request, response)的方法调用

(4)Error:

通过声明式异常处理机制调用时<error-page>    <error-code>404</erro-code>    <location>_url</location></error-page>通过Filter来捕捉_url页面,从而在服务器端显示出错信息

(5)Ansyc:

severlet3.0   可同过注解@WebFilter()来配置

6.过滤器应用

(1)统一认证(2)编码转换(3)用户数据替换(4)图像格式转换(5)压缩响应内容

7.Servlet3.0过滤器注解

(1)注解: @WebFilter(filterName="f_name", urlPatterns="_url")(2)须导入import javax.servlet.annotation.WebFilter包(3)Filter的优先级可以通过 命名 来解决

8.Filter初始化参数的使用

(1)在Web.xml中配置:

    <init-param>        <param-name>nofilterpages</param-name>        <param-value>login.jsp;DoLogin;loginfailure.jsp</param-value>    </init-param>

(2)在Filter中引用:

    //创建变量        private FilterConfig config;    //在init方法中为变量赋值         public void init(FilterConfig fConfig) throws ServletException {            config = fConfig;        }    //在doFilter中使用        String noFilterPages  = config.getInitParameter("nofilterpages");       
0 0
原创粉丝点击