【修真院java小课堂】拦截器、过滤器、监听器各有什么作用?

大家好,我是IT修真院郑州分院第8期学员,一枚正直善良的java程序员。今天给大家分享一下,修真院官网 java任务中可能会使用到的知识点:


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


width="640" height="498" src="https://v.qq.com/iframe/player.html?vid=q0672ik8nn3&tiny=0&auto=0" allowfullscreen="">

【修真院java小课堂】拦截器、过滤器、监听器各有什么作用?20180530

1.背景介绍

什么是Listener?

  • Listener也叫监听器,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。
  • 对项目起到监听的作用,它能感知到包括request(请求域),session(会话域)和applicaiton(应用程序)的初始化和属性的变化;

什么是Filter?

  • Filter也称之为过滤器,是Servlet的一种技术,WEB开发人员通过Filter技术,可以对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html文件等进行拦截,从而实现一些特殊的功能。
  • 对请求起到过滤的作用,它在监听器之后,作用在servlet之前,对请求进行过滤。

什么是Interceptor?

  • Interceptor,又叫拦截器。在web开发中,拦截器是经常用到的功能。它可以帮我们验证是否登陆、预先设置数据以及统计方法的执行效率等等。

2.知识剖析

2.1所属

  • Filter、Linstener属于Servlet技术
  • Interceptor属于框架技术,在structs、springMVC中都有各自的实现

2.2作用

  • 监听器,从字面上可以看出listener主要用来监听之用。通过listener可以监听web服务器中某一个执行动作,并根据其要求作出相应的响应。
    通俗的语言说就是在application,session,request三个对象创建消亡或者往其中添加修改删除属性时自动执行代码的功能组件。
  • 过滤器:是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。
  • 拦截器:是面向切面编程,就是在service或者某个方法执行之前,调用一个方法,或者在方法后调用一个方法。

3.常见问题

配置的位置不一样
监听器、过滤器:web.xml
拦截器:springMVC.xml

监听器的种类:八种

执行的先后顺序
执行顺序:监听器–>过滤器–>拦截器–>controller执行–>拦截器–>过滤器–>监听器

4.编码实战

见视频


5.扩展思考

各自应用场景

  • 两者的本质区别:从灵活性上说拦截器功能更强大些,Filter能做的事情,Interceptor都能做,而且可以在请求前,请求后执行,比较灵活。Filter主要是针对URL地址做一个编码的事情、过滤掉没用的参数、安全校验(比较泛的,比如登录状态之类),太细的话,还是建议用interceptor。
  • Filter只在Servlet前后起作用。而拦截器能够深入到方法前后、异常抛出前后等,因此拦截器的使用具有更大的弹性。所以在Spring构架的程序中,优先使用拦截器。

6.参考文献

https://blog.csdn.net/Jintao_Ma/article/details/52972482
https://www.cnblogs.com/coderland/p/5902878.html
https://blog.csdn.net/hongxingxiaonan/article/details/48090075
https://www.cnblogs.com/jadening/p/5993126.html
https://blog.csdn.net/qq_36411874/article/details/53996873
https://blog.csdn.net/zcl_love_wx/article/details/52072655


7.更多讨论

Q:怎样添加不同的拦截器应对不同的需求,这些拦截器的执行顺序是什么
A:拦截器是可以添加多个的,拦截器勘界需求可以通过设置拦截路径,执行顺序是按照书写的位置自上往下

Q:未登录或者非vip的话,可以试看10分钟怎么解决
A:将视频分段,前十分钟是一个请求,之后再次请求,拦截后边这个请求

Q:ContextLoaderListener这个的作用是?
A:启动web应用时,自动装配applicationcontext的信息

PPT在这里

感谢大家观看!

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

快来与我一起学习吧~http://www.jnshu.com/login/1/22140638

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值