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