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() 过滤器被销毁时执行的方法