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