过滤器的过滤规则

  

在web.xml中配置过滤器。这里要谨记一条原则:在web.xml中,监听器>过滤器>servlet。也就是说web.xml中监听器配置在过滤器之前,过滤器配置在servlet之前,否则会出错。

在配置中需要注意的有两处:一是<filter-class>指明过滤器类所在的包路径。二是<url-pattren>处定义过滤器作用的对象。一般有以下规则:

    1:作用与所有web资源:<url—pattern>/*</url-pattern>。则客户端请求访问任意资源文件时都要经过过滤器过滤,通过则访问文件,否则拦截。

    2:作用于某一文件夹下所有文件:<url—pattern>/dir/*</url-pattern>

    3:作用于某一种类型的文件:<url—pattern>*.扩展名</url-pattern>。比如<url—pattern>*.jsp</url-pattern>过滤所有对jsp文件的访问请求。

    4:作用于某一文件夹下某一类型文件:<url—pattern>/dir/*.扩展名</url-pattern>

    如果一个过滤器需要过滤多种文件,则可以配置多个<filter-mapping>,一个mapping定义一个url-pattern来定义过滤规则。

<filter>
      <filter-name>shiroFilter</filter-name>  
      <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
      <init-param>  
          <param-name>targetFilterLifecycle</param-name>
          <param-value>true</param-value>  
      </init-param>  
  </filter>  
  <filter-mapping>  
      <filter-name>shiroFilter</filter-name>  
      <url-pattern>/*</url-pattern>
  </filter-mapping>
<filter>
   <filter-name>characterEncodingFilter</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>

猜你喜欢

转载自blog.csdn.net/qq_37512323/article/details/89021836