今天爱分享给大家带来监听器、过滤器、拦截器、servlet的区别【面试题详解】,希望能够帮助到大家。
web.xml 的加载顺序是:context- param -> listener -> filter -> servlet
监听器(listener):
在request、session、application三个对象创建消亡或者往其中增/删/改属性时自动执行指定代码的功能组件。
生命周期:随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。
作用:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。
过滤器(filter):
拦截请求,filter能够在一个请求到达控制层之前预处理用户请求,也可以在离开控制层时处理http 响应,进行一些设置以及逻辑判断,然后再传入servlet或者struts的 action进行业务逻辑,基于函数回调。
生命周期:它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。
作用:a.对请求或响应(Request、Response)统一设置统一编码,简化操作;b.进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。c.过滤掉非法url
拦截器(interceptor):
拦截器是在面向切面编程中应用的,基于JAVA的反射机制,在一个业务逻辑(某个方法) 前、后调用另一个方法。
生命周期:
作用:
servlet:
servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。