zoukankan      html  css  js  c++  java
  • 过滤器

    1、新建类,实现 Filter 接口,并实现其中的方法:init 、 doFilter  、 destroy 。其中init和destroy只在程序启动和程序销毁时执行一次(tomcat)

     1 public class OneFilter implements Filter{
     2     private FilterConfig config;
     3     public void init(FilterConfig filterConfig) throws ServletException {
     4         this.config=filterConfig;
     5          System.out.println(config.getInitParameter("name"));
     6          System.out.println(config.getInitParameter("age"));
     7     }
     8     public void doFilter(ServletRequest request, ServletResponse response,
     9             FilterChain chain) throws IOException, ServletException {
    10         System.out.println("1.................");//过滤前
    11         chain.doFilter(request, response);//放行
    12         System.out.println("2.................");//过滤后
    13         
    14     }
    15     public void destroy() {        
    16     }
    17     
    18 }

    2、配置web.xml

     1   <filter>
     2       <filter-name>one</filter-name>
     3       <filter-class>cn.test.filter.OneFilter</filter-class>      
     4       <init-param>
     5           <param-name>name</param-name>
     6           <param-value>tom</param-value>
     7       </init-param>
     8       <init-param>
     9           <param-name>age</param-name>
    10           <param-value>11</param-value>
    11       </init-param>      
    12   </filter>
    13   <filter-mapping>
    14       <filter-name>one</filter-name>
    15       <url-pattern>/pages/*</url-pattern>      
    16   </filter-mapping>

    PS:

    1、init-param:初始化参数,可以通过config.getInitParameter("name")获取值,一般在init函数中

    2、url-pattern:要过滤的url路径(只能过滤url)  

    url-pattern的设置:

             /*           对所有url都请求这个servlet。| 都被这个filter过虑.

             /             只可以给servlet。 - 所有其他的servlet不处理的url都由这个url所指定的servlet处理。默认servlet。

             *.jspx     所有以jspx结束都请求到这个Servlet或是被某个Filter拦截。如http://local:8080/proj/abc.jspx

         /jsps/*       所有路径中以/jsps/开头的都请求到这个servlet或是被某个filter拦截到。

         /jsps/*.jspx         错误的:SUN规定*两边不可以同时出现字符

    3、在<filter></filter>中

      Dipatcher属性:

             Request – 默认值,只拦截用户的新的请求。

             Forward – 对转发进行拦截。

             Include – 对include拦截。

             Error  - 对错误进行拦截。

    4、当一个项目中有多个过滤器时,过滤器的执行顺序与filter-mapping注册顺序有关,与filter的注册无关

  • 相关阅读:
    java大数取余
    hdu--5351--MZL's Border
    NYOJ--水池数目
    NYOJ--32--SEARCH--组合数
    NYOJ--20--搜索(dfs)--吝啬的国度
    hdu--4148--Length of S(n)
    hdu--2098--分拆素数和
    hdu--1873--看病要排队
    hdu--1870--愚人节的礼物
    hdu--1237--简单计算器
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4121872.html
Copyright © 2011-2022 走看看