一、过滤器(拦截器)
可以过滤请求的信息,拦截一些资源,和servlet个非常类似
servlet是根据请求的方式
比如:在所有的servlet请求,都需要进行编码处理
又或者:登录过滤,个人中心,必须要用户登录后才能显示
1.1
创建类似于servlet
1.2配置web.xml文件
启动的时候就进行了初始化
1.filter配置url路径:
拦截项目下所有请求,包括多个层级
/*
拦截项目下所有.jsp文件的请求
*.jsp
拦截项目下所有.servlet的请求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8lW8ONsK-1597225384516)(https://db-zhanzhaoxu.oss-cn-chengdu.aliyuncs.com/Picture/20200812154013.png)]
2.注解的方式配置
类似于servlet
1.3 过滤重复的代码
setContext这里不要随便设置,会对所有生效,会过滤掉图片样式等等
所有过滤链执行完之后进入真实的servlet中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FZCXQNOB-1597225384523)(https://db-zhanzhaoxu.oss-cn-chengdu.aliyuncs.com/Picture/20200812155426.png)]
1.3 用过滤器来进行登录过滤(js和ajax)
表单提交的action注释掉了,给最后提交的submmit变为button,添加一个事件
不能直接访问ucenter界面,所以要用过滤器进行过滤
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0enJKYPO-1597225384525)(https://db-zhanzhaoxu.oss-cn-chengdu.aliyuncs.com/Picture/20200812161017.png)]
二、监听器
2.1能干什么
2.能监听request,session,application属性的状态(什么时候添加,删除,修改属性的值)用于日志中
3.还能监听session中对象的绑定
2.2创建
只要程序启动,就会创建servletContext(Application)
只要配置了监听器,就会执行servletContextEvent
结束服务器,就会销毁
session访问就会执行访问
session生命结束后就会销毁
request的创建和销毁
发送一个request就会创建一个
跳转上一个request会销毁,转发不会销毁
内容监听
也分为ServletContextListener,HttpSessionListener和HttpSessionListener
5.监听session中对象的绑定