doFilter过滤器如何使用

目录

doFilter过滤器:发送和接收时自转编码

典型应用:

使用方法:

注解:

生命周期:


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版权协议,转载请附上原文出处链接和本声明。