servlet过滤器使用

servlet的过滤器夹在用户和servlet之间,可以截获并预处理或者打断{用户到servlet的请求或servlet到用户的响应},但本身并不能处理和响应用户请求。

filter类必须实现Filter接口的三个方法:

  init:在web应用程序启动时就根据web.xml中的配置来创建每个filter的实例

  doFilter:用户请求对应的被过滤的url时执行

  destroy:web容器卸载filter时执行

对同一个request,可以有多少filter,根据在web.xml中filter定义的顺序形成filter链(chain)。

web.xml中先声明的先执行doFilter,在doFilter里有一个chain.doFilter(request, response);继续执行filter链里下一个filter的doFilter方法。doFilter方法大致如:执行前处理块====chain.doFilter(request, response);=====执行后处理。所以后声明的会先执行完doFilter方法。

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

web.xml里定义的filter可以通过init-param设置filter执行init的参数。filter-mapping设置了该过滤器对应的url地址

转载于:https://www.cnblogs.com/yuantf/p/5441084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值