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:

最新文章

  1. LogStash-2.4.0自定义区域信息插件-ISP
  2. NuGet控制台有几个常用命令
  3. 深入理解PHP内核(五)函数的内部结构
  4. Qt的tablewidget行列头自适应宽度
  5. unity3d 游戏对象消失三种方法的区别(enabled/Destroy/active)
  6. 同一网站不同和二级域名和不同子目录的cookie
  7. hdoj 1402 Prepared for New Acmer【快速幂】
  8. Servlet中获取JSP内置对象
  9. yii自动登陆的验证机制浅析
  10. 13. Roman to Integer
  11. Android常用adb命令
  12. docker~使用阿里加速器安centos
  13. post 与get 区别
  14. tensorflow 经典教程及案例
  15. 详解Transformer模型(Atention is all you need)
  16. python爬虫田康林
  17. python远程执行命令
  18. 《mahout实战》
  19. 经典SQL基础回顾
  20. hadoop 使用Avro求最大值

热门文章

  1. jQuery实现产品滚动效果
  2. val() 和attr() 取值的问题
  3. 理解HMM
  4. Linux之更好的使用Bash
  5. SAP 审计
  6. SpringMVC 自定义参数绑定实现日期类型绑定
  7. eclipse template里面的${user}更改
  8. MySQL数据库高并发优化配置
  9. poj1733 带权并查集
  10. PHP的一些要点