zoukankan      html  css  js  c++  java
  • jsp 过滤器 Filter 配置

    1如果要映射过滤应用程序中所有资源:

    <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>/*</url-pattern>//访问当前主机,当前应用程序根下的所有文件包括多级子目录下的所有文件,注意这里*前有“/”

    </filter-mapping>

    2.过滤指定的类型文件资源


      <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>

       <url-pattern>*.html</url-pattern>
    //访问当前主机,当前应用程序根目录下的所有html文件,注意:*.html前没有“/”,否则错误

    </filter-mapping>

    其中*.html要过滤jsp那么就改*.html为*.jsp,但是注意没有“/”斜杠

      如果要同时过滤多种类型资源:

       方法一:url-pattern分开写

    <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>*.html</url-pattern>

    </filter-mapping>

    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>*.jsp</url-pattern>
    //访问当前主机,当前应用程序根目录以所有及子目录下的所有jsp文件

     </filter-mapping>

     方法二、将url-pattern 合并

      <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>*.html;*.jsp</url-pattern>

    </filter-mapping>
    //*.html;*.jsp两类型之间用分号“;”间隔

    3.过滤指定的目录下的所有文件


       <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>/folder_name/*</url-pattern>
    //访问当前主机,当前应用程序根目录下的folder_name子目录(可以是多级子目录)下所有文件

    </filter-mapping>

    4.过滤指定的servlet


      <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <servlet-name>loggerservlet</servlet-name>

    </filter-mapping>
    <servlet>
       <servlet-name>loggerservlet
    </servlet-name>
       <servlet-class>myfilter.LoggerServlet</servlet-class>
    </servlet>

    5.过滤指定文件(即单一文件)


      <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>/simplefilter.html</url-pattern>
    </filter-mapping>


    6、过滤指定目录下的指定类型的所有文件

     这种情况下,在web.xml中无法一次性配置完成,需要结合filter的实现类

      首先,在web.xml中配置过滤指定目录下的所有文件(如上3)

    <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>/dir_name/*</url-pattern>

    </filter-mapping>

     然后,在filter的实现类中的doFilter方法中获取请求的uri或者url,判断uri或者url中是否包含指定文件类型的字符串,决定是否过滤

     //获得用户请求的uri
        String uri =request.getRequestURI();

       if(uri.contains(".jsp")||uri.contains(".html"))
           {
             System.out.println("开始过滤"+url);
          }

    7、过滤指定目录下指定类型的单一文件


    <filter>
       <filter-name>loggerfilter</filter-name>
       <filter-class>myfilter.LoggerFilter</filter-class>
    </filter>
    <filter-mapping>
       <filter-name>loggerfilter</filter-name>
       <url-pattern>/dir_name/index.jsp</url-pattern>

    </filter-mapping>

    以上都要注意是否有斜杠“/”



    原文出处:http://blog.sina.com.cn/s/blog_7ffb8dd501013hqc.html

  • 相关阅读:
    我的书单
    说说IUnitOfWork~Linq to Sql与EntityFrameworks中的SubmtChanges()发生了什么事
    说说IUnitOfWork~认识IUnitOfWork,为什么要出现IUnitOfWork接口
    LINQtoSQL那点事~关于延时加载的性能,微软给出了不错的解决方案
    数据结构~站点地图其实是一颗树
    说说IUnitOfWork~方法完整性与统一提交不冲突
    递归 解剖
    Java Socket一对一聊天
    转:浅谈c++容器
    Java JList 使用
  • 原文地址:https://www.cnblogs.com/cc11001100/p/5788882.html
Copyright © 2011-2022 走看看