欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

JSP过滤器Filter配置过滤类型有哪些

来源:本站整理 作者:佚名 时间:2017-06-25 TAG: 我要投稿

一、配置方法
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

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载