Servlet的过滤器(Fliter)

Servlet过滤器与Servlet十分相似,但具有拦截客户端(浏览器)请求的功能,可以改变请求中的内容来满足实际开发的需求。对于开发人员而言,过滤器实质就是在Web应用服务器上的一个Web应用组件,用于拦截客户端与目标资源的请求,并执行一定过滤处理后发送给目标资源。

Filter接口的方法:
方法声明    说明
Void init(FilterConfig  filterConfig) throws  ServletException    过滤器的初始化方法,此方法在初始化过滤器时调用
Void doFilter(ServletRequest  request,ServletResponse  response,FilterChain  chain) throws   IOException,ServletException     对请求进行过滤
Void destroy()    销毁方法以释放资源

FilterConfig接口方法:
方法声明    说明
String  getFilterName()    用于获取过滤名
ServletContext  getServletContext()    获取过滤器的上下文
String  getInitParameter(String  name)    获取过滤器的初始化参数值
Enumeration  getInitParameter()    获取过滤器的所有初始化参数

FilterChain接口方法:
Public   void  doFilter(SertvletRequest  request,ServletResponse  response) throws  IOException,ServletException
此方法用于将过滤后的请求传递给下一个过滤器,如果此过滤器是过滤器链中的最后一个过滤器,那么请求将传送给目标资源。



Web.xml配置文件中配置Filter:
<!-- 注册过滤器 -->
  <filter>
  <description>注册过滤器MyFilter</description>
  <!-- 过滤器的名称 -->
  <filter-name>MyFilter</filter-name>
  <!-- 过滤器的使用类 -->
  <filter-class>com.wgh.MyFilter</filter-class>
  </filter>
  <!-- 配置过滤器 -->
  <filter-mapping>
  <filter-name>MyFilter</filter-name>
  <!-- 设置过滤器要过滤的页面,如果是指定页面就指定页面 login.jsp -->
  <url-pattern>/MyFilter</url-pattern>
  </filter-mapping>


通过注解配置过滤器:
@WebFilter(filterName="/MyFilter",urlPatterns={"/First.jsp"},
initParams={@WebInitParam(name="mood",value="KKK")})

filterName:配置过滤器的名称。
urlPatterns:配置过滤器要过滤的页面。
initParams:配置初始化参数。
原文地址:https://www.cnblogs.com/gynbk/p/6556304.html