JSP过滤器Filter配置过滤类型全部汇总
发布时间 - 2026-01-10 23:14:10 点击率:次一、配置方法

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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Python3.6正式版新特性预览
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
使用Dockerfile构建java web环境
网站制作免费,什么网站能看正片电影?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
音响网站制作视频教程,隆霸音响官方网站?
利用python获取某年中每个月的第一天和最后一天
如何获取上海专业网站定制建站电话?
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
C语言设计一个闪闪的圣诞树
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
JS去除重复并统计数量的实现方法
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Laravel中的Facade(门面)到底是什么原理
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel观察者模式如何使用_Laravel Model Observer配置
如何在万网主机上快速搭建网站?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
网站页面设计需要考虑到这些问题
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
如何用已有域名快速搭建网站?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何在香港免费服务器上快速搭建网站?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
北京企业网站设计制作公司,北京铁路集团官方网站?
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
b2c电商网站制作流程,b2c水平综合的电商平台?
Python制作简易注册登录系统
大连 网站制作,大连天途有线官网?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
android nfc常用标签读取总结
如何在自有机房高效搭建专业网站?
如何在万网自助建站平台快速创建网站?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
韩国服务器如何优化跨境访问实现高效连接?
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何在建站宝盒中设置产品搜索功能?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
Laravel怎么为数据库表字段添加索引以优化查询
上一篇:thinkphp s方法怎么用
上一篇:thinkphp s方法怎么用

