一、配置方法

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
相关文章:
建站为何优先选择香港服务器?
如何注册花生壳免费域名并搭建个人网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
青岛网站建设如何选择本地服务器?
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
实例解析Array和String方法
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
如何通过智能用户系统一键生成高效建站方案?
建站上市公司网站建设方案与SEO优化服务定制指南
制作网站的软件免费下载,免费制作app哪个平台好?
建站之星与建站宝盒如何选择最佳方案?
如何通过西部数码建站助手快速创建专业网站?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
广德云建站网站建设方案与建站流程优化指南
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
专业公司网站制作公司,用什么语言做企业网站比较好?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
如何选择高效响应式自助建站源码系统?
海南网站制作公司有哪些,海口网是哪家的?
建站主机选购指南与交易推荐:核心配置解析
建站之星免费模板:自助建站系统与智能响应式一键生成
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何用5美元大硬盘VPS安全高效搭建个人网站?
html制作网站的步骤有哪些,iapp如何添加网页?
建站之星代理平台如何选择最佳方案?
如何用已有域名快速搭建网站?
中山网站制作网页,中山新生登记系统登记流程?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
建站之星如何快速更换网站模板?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
如何正确下载安装西数主机建站助手?
如何在宝塔面板创建新站点?
制作表格网站有哪些,线上表格怎么弄?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
免费网站制作appp,免费制作app哪个平台好?
,sp开头的版面叫什么?
一键网站制作软件,义乌购一件代发流程?
文字头像制作网站推荐软件,醒图能自动配文字吗?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
如何在腾讯云服务器快速搭建个人网站?
制作网站的模板软件,网站怎么建设?
湖北网站制作公司有哪些,湖北清能集团官网?
如何通过主机屋免费建站教程十分钟搭建网站?
图册素材网站设计制作软件,图册的导出方式有几种?
*请认真填写需求信息,我们会在24小时内与您取得联系。