全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JSP过滤器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,但是注意没有“/”斜杠。如果要同时过滤多种类型资源:

方法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小时内与您取得联系。