JavaWeb_8-过滤器与监听器

一、过滤器(拦截器)

可以过滤请求的信息,拦截一些资源,和servlet个非常类似

servlet是根据请求的方式

比如:在所有的servlet请求,都需要进行编码处理

又或者:登录过滤,个人中心,必须要用户登录后才能显示

1.1

创建类似于servlet

JavaWeb_8-过滤器与监听器

1.2配置web.xml文件

JavaWeb_8-过滤器与监听器

启动的时候就进行了初始化

1.filter配置url路径:

拦截项目下所有请求,包括多个层级

/*

拦截项目下所有.jsp文件的请求

*.jsp

拦截项目下所有.servlet的请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8lW8ONsK-1597225384516)(https://db-zhanzhaoxu.oss-cn-chengdu.aliyuncs.com/Picture/20200812154013.png)]

JavaWeb_8-过滤器与监听器

2.注解的方式配置

类似于servlet

JavaWeb_8-过滤器与监听器

JavaWeb_8-过滤器与监听器

1.3 过滤重复的代码

setContext这里不要随便设置,会对所有生效,会过滤掉图片样式等等

JavaWeb_8-过滤器与监听器

所有过滤链执行完之后进入真实的servlet中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FZCXQNOB-1597225384523)(https://db-zhanzhaoxu.oss-cn-chengdu.aliyuncs.com/Picture/20200812155426.png)]

1.3 用过滤器来进行登录过滤(js和ajax)

表单提交的action注释掉了,给最后提交的submmit变为button,添加一个事件

JavaWeb_8-过滤器与监听器

不能直接访问ucenter界面,所以要用过滤器进行过滤

JavaWeb_8-过滤器与监听器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0enJKYPO-1597225384525)(https://db-zhanzhaoxu.oss-cn-chengdu.aliyuncs.com/Picture/20200812161017.png)]

JavaWeb_8-过滤器与监听器

二、监听器

2.1能干什么

JavaWeb_8-过滤器与监听器

2.能监听request,session,application属性的状态(什么时候添加,删除,修改属性的值)用于日志中

3.还能监听session中对象的绑定

2.2创建

JavaWeb_8-过滤器与监听器

只要程序启动,就会创建servletContext(Application)

只要配置了监听器,就会执行servletContextEvent

结束服务器,就会销毁

JavaWeb_8-过滤器与监听器

session访问就会执行访问

session生命结束后就会销毁

request的创建和销毁

发送一个request就会创建一个

跳转上一个request会销毁,转发不会销毁

内容监听

JavaWeb_8-过滤器与监听器

也分为ServletContextListener,HttpSessionListener和HttpSessionListener

5.监听session中对象的绑定

很多框架利用了监听器的原理