Listener 与 Filter 的区别是:Filter是过滤器,过滤一些你不想要的东西,Listener是Servlet的监听器,可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作。listener是监听器,通常都是监听并加载一些插件用的,比如spring。log4j等。
Filter
Filter是过滤器,过滤一些你不想要的东西,Listener是Servlet的监听器,可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作。
Filter可以实现对请求的过滤和重定向等,也就是说可以操作request和response,session等对象,listner只能监听到以上对象的属性的修改。
Filter 技术是servlet 2.3 新增加的功能。servlet2.3是sun公司于2000年10月发布的,它的开发者包括许多个人和公司团体,充分体现了sun公司所倡导的代码开放性原则。在众多参与者的共同努力下,servlet2.3比以往功能都强大了许多,而且性能也有了大幅提高。
FilterChain 是 servlet 容器为开发人员提供的对象,它提供了对某一资源的已过滤请求调用链的视图。
过滤器使用 FilterChain 调用链中的下一个过滤器,如果调用的过滤器是链中的最后一个过滤器,则调用链末尾的资源。只要多个Filter对同一个资源进行拦截就可以形成Filter链,由<filter-mapping>来确定。Interceptor是struts的核心控制器,负责拦截所有用户请求。
Listener
listener是监听器,通常都是监听并加载一些插件用的,比如spring。log4j等。
按照监听对象的划分,可以分为三种:
ServletContext监控:对应监控application内置对象的创建跟销毁.
当web容器开启时,执行contextInitialized方法;当容器关闭或者重启时,执行contextDestroyed方法.实现方式:直接实现ServletContextListener接口。
HttpSession监控:对应监控session内置对象的创建和销毁。
当打开一个新的页面时,开启一个session会话,执行sessionCreated方法;当页面关闭session过期时,或者容器关闭销毁时,执行sessionDestroyed方法实现方式:直接实现HttpSessionListener接口。
ServletRequest监控:对应监控request内置对象的创建和销毁。
当访问某个页面时,出发一个request请求,执行requestInitialized方法;当页面关闭时,执行requestDestroyed方法。实现方式,直接实现ServletRequestListener接口。
延伸阅读:
什么是Java Web?
Java Web,是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有Java Applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP、第三方框架等等。Java技术对Web领域的发展注入了强大的动力。
Internet上供外界访问的Web资源分为:静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。静态web资源开发技术:HTML、CSS。动态web资源开发技术:JavaScript、JSP/Servlet、ASP、PHP等。在Java中,动态web资源开发技术统称为Java Web。
文章标题:Listener 与 Filter 的区别是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38035