Jsp过滤器Filter配置过滤类型汇总 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>
Jsp过滤器Filter配置过滤类型汇总 filter 过滤器 不过滤
</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>

以上都要注意是否有斜杠“/”
###############使用filter缓存js、css、图片等文件###############

在web.xml中配置如下信息

<!--不缓存文件 -->

<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 classResponseHeaderFilter implementsFilter {
FilterConfigfc;

public voiddoFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
// set the provided HTTP response parameters
for (Enumeration e = fc.getInitParameterNames();e.hasMoreElements();) {
String headerName = (String) e.nextElement();
response.addHeader(headerName,fc.getInitParameter(headerName));
}
// pass the request/response on
chain.doFilter(req, response);
}

public voidinit(FilterConfig filterConfig) {
this.fc = filterConfig;
}

public voiddestroy() {
this.fc = null;
}

}


  

爱华网本文地址 » http://www.413yy.cn/a/25101016/318433.html

更多阅读

攻略:买电脑什么配置好呢?

攻略:买电脑什么配置好呢?——简介很多人在买台式电脑或者笔记本电脑之前对电脑知识少之又之,从而导致买的时候不知道。回去发现配置,硬件,品牌都不是自己满意的。那如何选一款自己喜欢且又在自己预算中高配的电脑呢?下面就有让小优来告诉

怎么查看自己电脑的配置 精 查看电脑配置

怎么查看自己电脑的配置 精——简介我们买电脑最关心的就是我们的电脑配置问题,我们买的电脑是否和商家介绍的一样,是否电脑不是想象中的配置或被人换过硬件都是我们很关心的问题,所以我们买回电脑之后首先要做的就是查看一下自己电脑

怎样有效预防心肌梗塞 教你如何预防心肌梗塞

冠心病是中老年人常患的一种疾病。心肌梗塞是冠心病的严重类型,若抢救不及时,常会要人性命。心肌梗塞的后果如此严重,预防其发生就显得尤为重要。那么,如何预防心肌梗塞呢?怎样有效预防心肌梗塞——步骤/方法怎样有效预防心肌梗塞 1、

如何查看电脑的配置能不能玩英雄联盟 英雄联盟配置检测

如何查看电脑的配置能不能玩英雄联盟——简介可以通过查看英雄联盟的配置要求,来查看电脑能否流畅地玩英雄联盟,如果不懂配置,可以下载一个小软件来检测电脑配置是否达到要求。图片不一样请看仔细。如何查看电脑的配置能不能玩英雄联

C牌可开的车型 车牌查车型

C牌可开的车型——简介现在很多人都想考驾照,但对C牌可以驾驶什么类型的车却不了解.这里根据网友提问和相关法规整理常见的问题.C牌可开的车型——方法/步骤C牌可开的车型 1、 小型汽车C1证可以开手动档,自动档的9座(含9座)以下的

声明:《Jsp过滤器Filter配置过滤类型汇总 filter 过滤器 不过滤》为网友弑杀天下分享!如侵犯到您的合法权益请联系我们删除