• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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,但是注意没有“/”斜杠。如果要同时过滤多种类型资源:

    方法1 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>
    
    

    方法2 将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中配置过滤指定目录下的所有文件

    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>
    
    

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

    二、实例

    不缓存文件

    filter>
      filter-name>NoCache/filter-name>
      filter-class>com.sys.common.Filters.ResponseHeaderFilter
        /filter-class>
      init-param>
       param-name>Cache-Control/param-name>
       param-value>no-cache, must-revalidate/param-value>
      /init-param>
     /filter>
    
    

    缓存文件一周

     filter>
      filter-name>CacheForWeek/filter-name>
      filter-class>com.sys.common.Filters.ResponseHeaderFilter
        /filter-class>
      init-param>
       param-name>Cache-Control/param-name>
       param-value>max-age=604800, public/param-value>
      /init-param>
     /filter>
    filter-mapping>
      filter-name>CacheForWeek/filter-name>
      url-pattern>/images/*/url-pattern>
     /filter-mapping>
     filter-mapping>
      filter-name>CacheForWeek/filter-name>
      url-pattern>*.js/url-pattern>
     /filter-mapping>
     filter-mapping>
      filter-name>CacheForWeek/filter-name>
      url-pattern>*.css/url-pattern>
     /filter-mapping>
    

    自定义的filter:

    public class ResponseHeaderFilter implements Filter {
      FilterConfig fc;
      public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements();) {
          String headerName = (String) e.nextElement();
          response.addHeader(headerName, fc.getInitParameter(headerName));
        }
        chain.doFilter(req, response);
      }
    
      public void init(FilterConfig filterConfig) {
        this.fc = filterConfig;
      }
    
      public void destroy() {
        this.fc = null;
      }
    
    }

    以上这篇JSP过滤器Filter配置过滤类型全部汇总就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
    • JSP 开发中过滤器filter设置编码格式的实现方法
    • JSP使用Servlet过滤器进行身份验证的方法
    • JSP过滤器防止Xss漏洞的实现方法(分享)
    • JSP使用过滤器防止SQL注入的简单实现
    • jsp实现登录验证的过滤器
    • jsp中过滤器选择过滤器的写法详解
    • 详解JSP中使用过滤器进行内容编码的解决办法
    • servlet+jsp实现过滤器 防止用户未登录访问
    • JSP使用过滤器防止Xss漏洞
    • jsp filter 过滤器功能与简单用法示例
    上一篇:jsp中过滤器选择过滤器的写法详解
    下一篇:使用富文本编辑器上传图片实例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP过滤器Filter配置过滤类型全部汇总 JSP,过滤器,Filter,配置,过滤,