servlet & filter & listener & interceptor
web.xml 的加载顺序是:context- param -> listener -> filter -> servlet
* Servlet
对URL生效,用户处理用户的URL请求,流程是短的,处理完转到指定页面即结束;
* Filter
对URL生效,响应用户请求(Servlet、Action、HTML、JSP等处理前)前做过滤,线性结构,处理完后,请求交给下一个Filter或者Action处理;
常用场景:字符编码、用户登陆的权限控制等;
* Listener
定义在web.xml中,用于对容器的相关事件做监听,如ContextLoaderListener,在Context加载完后触发;
servlet2.4规范中提供了8个listener接口,可以将其分为三类,分别如下:
第一类:与servletContext有关的listner接口。包括:ServletContextListener、ServletContextAttributeListener
第二类:与HttpSession有关的Listner接口。包括:HttpSessionListner、HttpSessionAttributeListener、HttpSessionBindingListener、HttpSessionActivationListener;
第三类:与ServletRequest有关的Listener接口,包括:ServletRequestListner、ServletRequestAttributeListener
* Interceptor
定义在struts.xml中,不是针对URL做过滤,而是对Action请求做拦截处理;
常用场景:事务管理,DB读写分离,分库管理;
struts2中的过滤器和拦截器的区别与联系:
(1)拦截器是基于java反射机制的,而过滤器是基于函数回调的。
(2)过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。
(3)拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
(4)拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
----------------------------------------------------------------------------------------------------------
1、servlet:
2、filter:
3、listener:
4、interceptor:
最新文章
- LogStash-2.4.0自定义区域信息插件-ISP
- NuGet控制台有几个常用命令
- 深入理解PHP内核(五)函数的内部结构
- Qt的tablewidget行列头自适应宽度
- unity3d 游戏对象消失三种方法的区别(enabled/Destroy/active)
- 同一网站不同和二级域名和不同子目录的cookie
- hdoj 1402 Prepared for New Acmer【快速幂】
- Servlet中获取JSP内置对象
- yii自动登陆的验证机制浅析
- 13. Roman to Integer
- Android常用adb命令
- docker~使用阿里加速器安centos
- post 与get 区别
- tensorflow 经典教程及案例
- 详解Transformer模型(Atention is all you need)
- python爬虫田康林
- python远程执行命令
- 《mahout实战》
- 经典SQL基础回顾
- hadoop 使用Avro求最大值