Java知识学习记录
如果对你有帮助,请关注我把!
转眼之间,已经是2018年6月10号了,这个月已经过去了三分之一的时间,不禁感慨,时间真的过得太快了,如沙,想抓都抓不住。按照计划,这个月完成SSH三大框架及项目的学习,加油!
今天,来复习Filter - 拦截器,先回想一下filter有哪些内容。
filter的创建和Servlet的创建大概流程一致。
1. 创建一个类,并继承Filter
2. 覆写Filter的三个方法,主要实现doFilter方法
3. 在web.xml注册filter
拦截器的作用有哪些?
1. 设置全局编码,
2. 设置自动登录。
想起来的大概内容就是这些了,下面赶紧的复习一下笔记。
Filter - 拦截器
Filter简介
filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目标资源访问前后进行逻辑处理。
Filte快速入门
步骤如下:
1)编写一个过滤器的类实现Filter接口
2)实现接口中尚未实现的方法(着重实现doFilter方法)
3)在web.xml中进行配置(主要是配置要对哪些资源进行过滤)
Filter对象的生命周期
Filter何时创建:服务器启动就创建该Filter对象。
Filter何时销毁:服务器关闭时Filter销毁。
Filter接口的三个方法
Filter有三个与生命周期相关的方法,分别是:init(),doFilter(),destory();
在这三个方法中,主要学习的是doFilter()方法,
其中的参数介绍:
ServletRequest/ServletResponse:每次在执行doFilter方法时 web容器负责创建一个request和一个response对象作为doFilter的参数传递进来。该request和response就是在访问目标资源的service方法时的request和response。
FilterChain,过滤器链对象,通过该对象的doFilter方法可以放行该请求,这个方法非常重要,必须放行此拦截器才能起到作用。
Filter的配置如下
在一个项目中,根据实际情况可以设置多个不同的拦截器,那么如何判断先执行哪个拦截器呢?
根据配置的的顺序来执行filter的顺序。
配置时有三种配置方法
1)完全匹配 /Servlet
2)目录匹配 /aaa/bbb/* ---使用最多
3)扩展名匹配 *.jsp
-- 所有是此扩展名的文件执行此过滤器
THE END
最后,总结一下Filter的作用,根据实际业务场景来使用:
1、公共代码的提取,
2、可以对request/response中的方法进行增强(装饰着模式/代理模式),
3、进行权限控制。
领取专属 10元无门槛券
私享最新 技术干货