目录
doFilter过滤器:发送和接收时自转编码
典型应用:
可以在filter中根据条件决定是否调用chain.doFilter(request, response)方法, 即是否让目标资源执行。
在让目标资源执行之前,可以对request\response作预处理,再让目标资源执行
在目标资源执行之后,可以捕获目标资源的执行结果,从而实现一些特殊的功能
使用方法:
创建java类实现Filter并重写方法并在doFilter方法下
public class charsetFilter implements Filter
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse res=(HttpServletResponse)response;
req.setCharacterEncoding("UTF-8");
res.setContentType("text/html;charset=UTF-8");
chain.doFilter(request, response);
chain.doFilter(req, res);
//不完全代码需设置WEB.xml或在JSP页面直接添加引用注释
<servlet>
<servlet-name>Filter</servlet-name>
<servlet-class>filter.charsetFilter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Filter</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping> 注解:
实例:
@WebFilter(filterName = "FilterDemo01", urlPatterns = { "/*" })
@WebFilter(filterName = "FilterDemo02", urlPatterns = { "/*" }, initParams = { @WebInitParam(name = "name", value = "xc"),@WebInitParam(name = "like", value = "java") })常用属性:

*注:value、urlPatterns、servletNames 三者必需至少包含一个,且 value 和 urlPatterns 不能共存。
生命周期:
简单来说:加载实例化,调用init方法、执行doFilter、执行destroy方法*
*①过滤器的创建和销毁由WEB容器负责,init方法和destroy方法随filter的创建只会执行一次。
版权声明:本文为solecct原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。