设为首页 | 加入收藏
首页 bet36最新备用体育
程序人生互联网新闻黑客新闻网络创业
WEB开发
PHPJSPASP.NETJavascriptAJAXjQueryNode.js
编程语言
JavaGolangPythonC++C语言VC++C#
站长之家
建站技巧网络赚钱网站安全
数据库
MySQLMSSQLSQLiteMongoDBRedisAccess存储技术
网页设计
HTML+DIV+CSSFlash网页制作技巧
网络技术
网络综合网络管理无线技术云计算云技术攻防知识安全防护
学电脑
电脑常识WindowsLinuxCPU内存显卡硬盘主板
学开发
开发总结365bet行政收费_365bet提款维护_365bet足球开户盘口开发工具开发手册面试题
w3school
WEB开发 > JSP >

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

发布时间:2017-03-27 | 阅读次数:1503

一、配置方法

1 映射过滤应用程序中所有资源


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  /* //访问当前主机,当前应用程序根下的所有文件包括多级子目录下的所有文件,注意这里*前有“/”

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


  loggerfilter
  myfilter.LoggerFilter


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


其中*.html要过滤jsp那么就改*.html为*.jsp,但是注意没有“/”斜杠。如果要同时过滤多种类型资源:

方法1 url-pattern 分开写


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  *.html


  loggerfilter
  *.jsp//访问当前主机,当前应用程序根目录以所有及子目录下的所有jsp文件


方法2 将url-pattern合并


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  *.html;*.jsp
//*.html;*.jsp两类型之间用分号;间隔

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


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  /folder_name/*//访问当前主机,当前应用程序根目录下的folder_name子目录(可是多级子目录)下所有文件


4 过滤指定的servlet


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  loggerservlet


  loggerservlet
  myfilter.LoggerServlet


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


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  /simplefilter.html


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

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

首先在web.xml中配置过滤指定目录下的所有文件


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  /dir_name/*


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

//获得用户请求的uri
String uri = request.getRequestURI();
if(uri.contains(".jsp")||uri.contains(".html"))
System.out.println("开始过滤"+url);

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


  loggerfilter
  myfilter.LoggerFilter


  loggerfilter
  /dir_name/index.jsp


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

二、实例

不缓存文件


  NoCache
  com.sys.common.Filters.ResponseHeaderFilter
    
  
   Cache-Control
   no-cache, must-revalidate
  
 

缓存文件一周

 
  CacheForWeek
  com.sys.common.Filters.ResponseHeaderFilter
    
  
   Cache-Control
   max-age=604800, public
  
 

  CacheForWeek
  /images/*
 
 
  CacheForWeek
  *.js
 
 
  CacheForWeek
  *.css
 

自定义的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配置过滤类型全部汇总就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。