JavaWeb(十一)---过滤器(Filter)

过滤器(Filter)

概念:

它会在一组资源的前面执行,它可请求得到资源,也可以不让。过滤器具有拦截请求的功能

和Servlet一样,Filter是单例并发的。

使用方法

  1. 写一个类实现Filter接口
  2. 在web.xml上配置
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

/----------------------------------------------------
<filter-mapping>下的<dispatcher>
设置过滤器的四种拦截方式
Data Type : string
Enumerated Values : 
	- FORWARD   转发
	- INCLUDE    包含
	- REQUEST    重定向
	- ERROR        错误

<filter-mapping>下的<url-pattern>替换成<servlet-name>表示点名拦截该Servlet

Filter生命周期

  1. void init(FilterConfig filterConfig)
    1. 创建之后,立刻马上(Filter会在Tomcat启动时创建)
    2. FilterConfig 中的方法
      1. getFilterName() 获得过滤器的名字
        getServletContext()  获得ServletContext
        getInitParameter(String)  获得某个初始化参数
        getInitParameterNames()  获得所有初始化参数
  2. void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
    1. 每一次过滤都会执行
    2. FilterChain 中的doFilter(ServletRequest, ServletResponse)方法表示放行;相当于调用了目标Servlet的service方法,或者是执行下一个过滤器
  3. void destroy() 销毁之前执行(Tomcat关闭时销毁)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值