过滤器是运行在服务器端,用于拦截请求,并与传给被请求资源的ServletRequest和ServletResponse进行处理的一个对象,他可以改变HTTP的内容,响应,及header信息
执行流程
Web浏览器–>Web服务器–>过滤器–>web资源–>过滤器–>web服务器–>web浏览器
service方法必须和应用到Servlet的所有过滤器运行在同一个线程中。
过滤器可以干什么:
中文乱码处理
检查会话以控制访问的权限
加密与解密。。。。
如何配置过滤器呢
第一种
<filter>
<filter-name>filter1</filter-name>
<filter-class>com.tanlan.javaees1.Filter1</filter-class>
<init-param> <param-name>n1</param-name> <param-value>v1</param-value> </init-param>
</filter>
<filter-mapping>
<url-pattern>/servlet1</url-pattern>
</filter-mapping>
第二种
@WebFilter(urlPattern="/servlet1")
也可以使用servletNames={"",""},如果你访问这个Servlet就会被拦截
public void init(FilterConfig config) throws ServletException {
这个config和Servlet里面的ServletConfig很相似