课堂课题:
拦截器、过滤器、监听器各有什么作用?
关联任务:
任务五
直播时间:
2018-12-09 19:30:00
课堂内容:
视频链接:
PPT链接:
提交按钮:
小课堂内容格式
标题:
【修真院xx(职业)小课堂】课题名称
开场语:
大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX
(1)背景介绍:
背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。
(2)知识剖析:
讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。
(3)常见问题:
最少列出1个常见问题。
(4)解决方案:
写清楚常见问题的解决方案。
(5)编码实战:
尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。
(6)拓展思考:
知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。
(7)参考文献:
引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。
(8)更多讨论:
Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答
(9)鸣谢:
感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
标题:
【修真院java 小课堂】拦截器、过滤器、监听器各有什么作用?
开场语:
大家好,我是IT修真院成都分院第14期的学员先小波,一枚正直纯洁善良的JAVA程序员,今天给大家分享一下,修真院官网JAVA任务五,深度思考中的知识点—— 拦截器、过滤器、监听器各有什么作用?
1. 背景介绍:
Filter也称之为过滤器,通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行过滤,从而实现一些特殊的功能。 例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
Interceptor也称之为拦截器,是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个Action执行的前后执行的代码,也可以在一个Action执行前阻止其执行 。同时也提供了一种可以提取Action中可重用的部分的方式。
Listener也称为监听器就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。
2. 知识剖析:
过滤器作用
1 url级别权限访问 控制
2 过滤敏感词汇
3压缩响应信息
4统一字符集
拦截器作用
1.大部分过滤器能做得事情
2.捕获异常,获得bean对象
3.通常用来进行权限验证,判断用户是否登录
监听器作用
1监听servletContext,HttpSession和servletRequest得域对象得创建和销毁时间以及属性发生修改事件。
2统计在线人数和在线用户
3系统启动时加载初始化信息
4统计网站访问量
3. 常见问题:
(1)过滤器和拦截器区别?
拦截器是基于java的反射机制的,而过滤器是基于函数回调。
拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
4. 编码实战:
5. 拓展思考:
(1) 多个过滤器的执行顺序时怎样的呢?
springMVC中可以通过web.xml指定过滤器执行顺序,springboot中可以设置@ORDER执行顺序。order中的值越大,代表越先执行。
6. 参考文献:
https://www.cnblogs.com/CloverSH/p/4531492.html
https://blog.csdn.net/yudiandemingzi/article/details/80399971
https://blog.csdn.net/rongxiang111/article/details/53487381
7. 更多讨论:
Q1:过滤器和监听器可以采用@bean的方式注入吗?
A1:可以,过滤器和监听器都可以用@Bean的方式注入,然后使用listenerRegister和filterRegister的方式进行注册。
Q2:这两种注册方式哪种更好些呢?
A2:一般的话都会采用@WebListener和@WebFilter的方式注入,这样代码更加简洁。而在WebMvcConfigurer中使用@Bean的方式注入,能够更加直观的看到所有的过滤器和拦截器,所以各有取舍。
Q3:拦截器和过滤器拦截成功之后怎么返回结果呢
A3:一般这里我们采用重定向的方法,转向另一个请求。
8. 鸣谢:
9. 结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
[真传弟子]JAVA-刘凯 发表于 2019-01-02 15:30:57 #1
拦截器中注入bean的相关配置可以了解一下,这里我遇到过几次注入失败的情况了
回复