servlet中Filter过滤器
2016-08-23 15:05
218 查看
Filter用于在servlet之外对request或者response进行修改,Filter提出了滤镜链(FilterChain)的概念,一个FilterChain包括多个Filter,客户端请求request在抵达servlet之前会经过FilterChain里的所有Filter,服务器响应response在从servlet抵达客户端浏览器之前也会经过FilterChain里的所有Filter,Filter处理过程:
Filter接口:一个Filter必须实现javax.servlet.Filter接口,Filter接口有3个方法:
这3个方法反映了Filter的生命周期,其中init与destory只被调用一次,分别在web程序加载或者卸载的时候调用,而doFilter每次有客户端请求都会被调用一次,Filter的所有工作也集中在doFilter()方法中。
Filter配置:
》Filter需要再web.xml中才能生效,一个Filter需要配置<filte>与<filter-mapping>标签
<filter>配置Filter的名称,实现类以及初始化参数(如果有的话),可以同时配置多个初始化参数,
<filter-mapping>配置什么规则下使用该Filter,<filter>中的filterName与<filter-mapping>的filterName必须匹配,<url-pattern>配置URL的规则,可以配置多个,可以使用通配符(*)例如:/jsp/*使用于本contexPath下以/jsp/开头的servlet路径,*.do适用于所有以.do结尾的servlet路径。
<dispatcher>配置到达servlet的方式:有四种值:
REQUEST:若没有配置任何<dispatcher>,默认值,表示仅当直接请求servlet时才生效,
FORWARD:表示仅当servlet通过FORWARD到改servlet时才生效,
INCLUDE:jsp中可以通过<jsp:include/>请求某servlet,仅这种情况下有效。
ERROR:JSP中可以通过<%@page errrorPage="error.jsp"%>指定错误处理页面,仅当这种情况下有效。
<url-pattern>与<dispatcher>关系是“且”的关系,只有满足<url-pattern>的条件,且满足<dispatcher>的条件时,该Filter才能生效。
注:一个web程序可以配置多个Filter,多个Filter执行顺序有先有后,规则是<filter-mapping>配置在前面的Filter执行要早于配置在后面的Filter,另外注意,多个Filter可能会相互影响。
Filter接口:一个Filter必须实现javax.servlet.Filter接口,Filter接口有3个方法:
这3个方法反映了Filter的生命周期,其中init与destory只被调用一次,分别在web程序加载或者卸载的时候调用,而doFilter每次有客户端请求都会被调用一次,Filter的所有工作也集中在doFilter()方法中。
Filter配置:
》Filter需要再web.xml中才能生效,一个Filter需要配置<filte>与<filter-mapping>标签
<filter>配置Filter的名称,实现类以及初始化参数(如果有的话),可以同时配置多个初始化参数,
<filter-mapping>配置什么规则下使用该Filter,<filter>中的filterName与<filter-mapping>的filterName必须匹配,<url-pattern>配置URL的规则,可以配置多个,可以使用通配符(*)例如:/jsp/*使用于本contexPath下以/jsp/开头的servlet路径,*.do适用于所有以.do结尾的servlet路径。
<dispatcher>配置到达servlet的方式:有四种值:
REQUEST:若没有配置任何<dispatcher>,默认值,表示仅当直接请求servlet时才生效,
FORWARD:表示仅当servlet通过FORWARD到改servlet时才生效,
INCLUDE:jsp中可以通过<jsp:include/>请求某servlet,仅这种情况下有效。
ERROR:JSP中可以通过<%@page errrorPage="error.jsp"%>指定错误处理页面,仅当这种情况下有效。
<url-pattern>与<dispatcher>关系是“且”的关系,只有满足<url-pattern>的条件,且满足<dispatcher>的条件时,该Filter才能生效。
注:一个web程序可以配置多个Filter,多个Filter执行顺序有先有后,规则是<filter-mapping>配置在前面的Filter执行要早于配置在后面的Filter,另外注意,多个Filter可能会相互影响。
相关文章推荐
- Servlet 编写Filter过滤器
- servlet编写Filter过滤器,防止未登录访问,不过滤登陆界面(使用IDEA编写)
- 【Servlet】Filter过滤器
- ServletFilter过滤器(二)
- Servlet JSP 二重修炼:Filter过滤器
- Servlet之Filter过滤器
- 关于Servlet中filter过滤器的小问题
- Servlet的Filter过滤器(四种过滤方式)【转】
- Servlet中的Filter过滤器的介绍和使用
- Servlet JSP 二重修炼:Filter过滤器
- Servlet Filter过滤器(1)
- [JSP&JDBC]JDBC+Servlet+过滤器访问登陆实例/servlet之filter过滤器
- Servlet之Filter过滤器
- Java Web笔记 – Servlet中的Filter过滤器的介绍和使用 编写过滤器
- Servlet之Filter过滤器
- Servlet中的Filter过滤器
- Servlet的Filter过滤器
- Servlet之Filter过滤器
- JavaWeb Servlet中Filter过滤器的详解
- Servlet Filter过滤器