1、过滤器
1.1、快速入门
- 定义一个类 实现接口Filter(javax .servlet)
- Filter接口有三个方法
- 复写方法
- 配置拦截路径
1.2、过滤器 配置
1、注解配置 直接在类上注解
2、web.xml 配置
1.3、放行
所有请求被拦截之后,访问的页面不能显示内容,这时候需要过滤器放行
操作超级简单
1.4、拦截路径配置
1、具体资源路径:/index.jsp 只有该路径被拦截
2、目录拦截:/user/* 访问/user下所有资源过滤器拦截
3、后缀名拦截: *.jsp 访问所有jsp资源,过滤器拦截
4、拦截所有资源:/* 访问所有资源拦截
1.5、拦截方式配置:资源被访问的方式
注解配置
- 设置dispatcherTypes属性
- 1、REQUEST 默认 浏览器直接访问资源
- 2、FORWARD
- 3、INCLUDE
- 4、ERROR
- 5、ASYNC
REQUEST 默认演示:
根据图中案例,浏览器直接访问index会被拦截,但是通过通过updateServlet转发不会被拦截,如果注解参数dispatcherTypes改成FORWARD,那么转发就会被拦截,dispatcherTypes属性是数组也可以同时写上FORWARD 与其他参数
web.xml配置
-
设置标签即可
1.6、配置多个过滤器
- 如果有两个过滤器6和7
- 过滤器执行先后问题
- 按照字符串规则比较:例如Afilter和 Bfilter,A先执行,超简单的
- 在web.xml配置中,谁的位置更靠上谁先执行,超简单的
2、登陆验证
2.1、登录验证
案例需求,只有登录了才能访问所有资源,不登陆不放行
思路:简单
判断资源是不是登录相关资源,如果是直接放行比如login.jsp ,css样式,验证码之类
判断User是否存储在session中,如果有那么放行(忽然想起来session只要不关闭浏览器始终存在,所以这是合理操作)
2.2、过滤敏感词汇
案例需求:将敏感词替换成*
思路:对request对象进行增强
具体实现暂时略过 日后再补
3、监听器
3.1、 什么是监听器
-
ServletContextListener:监听器之一,用来监听ServletContext对象的创建和销毁 该接口两个方法如图(ServletContext对象在服务器启动后自动创建)
-
使用步骤
- 1、定义一个类实现ServletContextListener接口
- 2、复写方法
- 3、配置
- web.xml配置,也叫注册监听器