一、配置方法

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
# 过滤器
# 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
# JSP 开发中过滤器filter设置编码格式的实现方法
# JSP使用Servlet过滤器进行身份验证的方法
# JSP过滤器防止Xss漏洞的实现方法(分享)
# JSP使用过滤器防止SQL注入的简单实现
# jsp实现登录验证的过滤器
# jsp中过滤器选择过滤器的写法详解
# 详解JSP中使用过滤器进行内容编码的解决办法
# servlet+jsp实现过滤器 防止用户未登录访问
# JSP使用过滤器防止Xss漏洞
# jsp filter 过滤器功能与简单用法示例
# 应用程序
# 目录下
# 给大家
# 都要
# 希望能
# 自定义
# 所有资源
# 这篇
# 小编
# 大家多多
# 类中
# 情况下
# simplefilter
# xml
# web
# 单一文
# span
# folder_name
# servlet
# LoggerServlet
相关文章:
建站org新手必看:2024最新搭建流程与模板选择技巧
中山网站推广排名,中山信息港登录入口?
如何续费美橙建站之星域名及服务?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何选择适合PHP云建站的开源框架?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
seo网站制作优化,网站SEO优化步骤有哪些?
php json中文编码为null的解决办法
如何在新浪SAE免费搭建个人博客?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
建站主机是什么?如何选择适合的建站主机?
建站之星后台密码遗忘如何找回?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
建站主机系统SEO优化与智能配置核心关键词操作指南
如何高效利用200m空间完成建站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
网站制作公司排行榜,四大门户网站排名?
活动邀请函制作网站有哪些,活动邀请函文案?
如何在宝塔面板中创建新站点?
怀化网站制作公司,怀化新生儿上户网上办理流程?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何高效生成建站之星成品网站源码?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
如何快速搭建高效WAP手机网站?
个人网站制作流程图片大全,个人网站如何注销?
建站主机选择指南:服务器配置与SEO优化实战技巧
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何通过FTP空间快速搭建安全高效网站?
建站之星备案是否影响网站上线时间?
股票网站制作软件,网上股票怎么开户?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
建站之星如何助力网站排名飙升?揭秘高效技巧
临沂网站制作企业,临沂第三中学官方网站?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
如何用VPS主机快速搭建个人网站?
如何通过二级域名建站提升品牌影响力?
网站app免费制作软件,能免费看各大网站视频的手机app?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
建站之星如何实现五合一智能建站与营销推广?
Android滚轮选择时间控件使用详解
利用JavaScript实现拖拽改变元素大小
详解jQuery中基本的动画方法
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
智能起名网站制作软件有哪些,制作logo的软件?
公众号网站制作网页,微信公众号怎么制作?
建站主机服务器选购指南:轻量应用与VPS配置解析
*请认真填写需求信息,我们会在24小时内与您取得联系。