您现在的位置是:网站首页> 编程资料编程资料

JSP过滤器Filter配置过滤类型全部汇总_JSP编程_

2023-05-25 210人已围观

简介 JSP过滤器Filter配置过滤类型全部汇总_JSP编程_

一、配置方法

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

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

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

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

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

方法1 url-pattern 分开写

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

方法2 将url-pattern合并

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

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

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

4 过滤指定的servlet

loggerfiltermyfilter.LoggerFilterloggerfilterloggerservletloggerservletmyfilter.LoggerServlet

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

loggerfiltermyfilter.LoggerFilterloggerfilter/simplefilter.html

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

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

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

loggerfiltermyfilter.LoggerFilterloggerfilter/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 过滤指定目录下指定类型的单一文件

loggerfiltermyfilter.LoggerFilterloggerfilter/dir_name/index.jsp

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

二、实例

不缓存文件

NoCachecom.sys.common.Filters.ResponseHeaderFilter Cache-Controlno-cache, must-revalidate

缓存文件一周

CacheForWeekcom.sys.common.Filters.ResponseHeaderFilter Cache-Controlmax-age=604800, publicCacheForWeek/images/*CacheForWeek*.jsCacheForWeek*.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配置过滤类型全部汇总就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

-六神源码网