IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

拦截器、过滤器、监听器各有什么作用?

关联任务:

任务五

直播时间:

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-刘凯


标题:

 

【修真院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的相关配置可以了解一下,这里我遇到过几次注入失败的情况了

回复

请您登录 后进行评论