22 过滤器Filter

概念

我们使用过滤器对请求和响应做统一的处理后在传递给servlet(或从servlet传出)。也可以针对某类甚至某个servlet的请求做特殊处理。

由服务器来调用filter,先经过filter才到servlet。所以filter的生命周期是从服务器开启到服务器关闭。

通过过滤器可以保护网站,例如保护网站在不登录的情况下不能访问主页,在不登录的情况下不能访问网站的资源(如盗链图片,视频等)。

  • /.mp3 当访问本站的.mp3资源要先经过过滤器。

常用案例

  • 同一编码格式
  • session管理
  • 权限管理
  • 资源管理(同一水印,词汇和谐)

创建过滤器

  • new->Filter

配置web.xml

格式如:

  <filter>
	<filter-name>myFilter</filter-name>      
	<filter-class>cn.xiaohei.filter.MyFilter</filter-class>
  </filter>
  <filter-mapping>
	<filter-name>myFilter</filter-name>      
	<url-pattern>/*</url-pattern>
  </filter-mapping>

  

url-pattern详解

  • /* 表示拦截所有url,相当于全局过滤器
  • /*.d 表示拦截所有以.d结尾的url对其进行过滤
  • /a.b 表示针对/a.b这个url的servlet进行过滤

过滤器的使用

过滤器的三个方法

  • init() 过滤器初始化时执行的方法
  • destory()  过滤器执行过滤的方法
  • doFilter()  过滤器被销毁时执行的方法
原文地址:https://www.cnblogs.com/Scorpicat/p/12395745.html