zoukankan      html  css  js  c++  java
  • 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地址

  • 相关阅读:
    SpringBoot | Thymeleaf | 局部更新
    面试 | 冒泡排序优化
    JSP && Servlet | AXIS 0配置 入门
    155. 最小栈
    idea | 命名空间改过后重新导入项目方法
    Java | 基础归纳 | Map.Entry<String, String>
    08_Azkaban案例实践1_Command单一job示例
    07_Azkaban工作流调度器简介及其安装
    06_工作流调度器概述
    05_ Flume多级Agent之间串联案例
  • 原文地址:https://www.cnblogs.com/yuantf/p/5441084.html
Copyright © 2011-2022 走看看