文章目录

  • 结论
  • 分析
    • 1、context-param
    • 2、listener
    • 3、filter
    • 4、servlet
  • 总结

结论

先说结论,在JavaWeb的web.xml中的加载顺序为:

context-param -> listener -> filter -> servlet

分析

下面描述的是以运行在tomcat中的web程序为例,首先web程序会去读web.xml文件。

1、context-param

<context-param></context-param>这个标签是web程序的上下文参数,也是启动的初始化参数,web程序最先解析的就是这个标签,无论这个标签在什么位置都先解析这个标签。解析上面的context-param标签之后会创建一个ServletContext对象,web项目的整个Application都将共享这个ServletContext。说到这里要注意一个问题,就是《Tomcat部署多工程时Log4j的问题》。

2、listener

<listener></listener>这个标签是监听器,上面步骤完成之后tomcat会创建监听器的实例就是标签里面的对象。在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中可以获得ServletContext对象,从而获取context-param的值

ServletContext = ServletContextEvent.getServletContext()
context-param = ServletContext.getInitParameter("context-param的key")

3、filter

<filter></filter>这个是过滤器,完成上面步骤后开始实例化。注意:如果有多个过滤器,那就按照过滤器在web.xml的顺序来执行。

4、servlet

<servlet></servlet>这个属于服务接口,这个是在以上都完成之后才开始实例化。
在servlet的配置当中,<load-on-startup>的含义是:

  1. 零或者正数代表服务启动就启动该servlet;
  2. 正数的值越小,启动该servlet的优先级越高;
  3. 负值或者无此配置则使用时才会被执行。

总结

如果是在Springmvc或者Struct框架中会有interceptor拦截器,如果是在框架中执行顺序如下:

context-param -> listener -> filter -> interceptor -> 控制器

参考:
《拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别》

JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)相关推荐

  1. web.xml中的所有配置,Listener和Filter的加载顺序

    web.xml 中的listener. filter.servlet 加载顺序及其详解 在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人 ...

  2. (转)web.xml 中的listener、 filter、servlet 加载顺序及其详解

    转: https://www.cnblogs.com/Jeely/p/10762152.html web.xml 中的listener. filter.servlet 加载顺序及其详解 一.概述 1. ...

  3. Web.xml中配置监听器Listener导致Tomcat无法启动

    Web.xml中配置监听器Listener导致Tomcat无法启动 1.在pom.xml里导入 org.springframework spring-web 5.0.5.RELEASE 版本看你个人的 ...

  4. web.xml 里context-param 、listener、 filter、servlet 加载顺序

    1.web.xml中context-param .listener. filter.servlet 加载顺序与其位置无关,不是listener在context-param 前面就先加载listener ...

  5. Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解

    Filter filter可认为是Servlet的一种"变种",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Se ...

  6. web.xml 中的listener、 filter、servlet 加载顺序及其详解(转)

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  7. [转]web.xml 中的listener、 filter、servlet 加载顺序及其详解

    2019独角兽企业重金招聘Python工程师标准>>> 转自:http://zhxing.iteye.com/blog/399668 在项目中总会遇到一些关于加载的优先级问题,近期也 ...

  8. web.xml 中的listener、 filter、servlet 加载顺序及其详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  9. web.xml 中的listener、 filter、servlet 加载顺序及其详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

最新文章

  1. 掏空老底,值得推荐的10个学习神器,总有一个用得上!
  2. 手机4k读写速度测试软件,4K扇区速度测试及读写IOPS_Intel 520_固态硬盘评测-中关村在线...
  3. 微信小程序-豆瓣电影TOP250
  4. 云基础设施公司 HashiCorp 宣布完成 D 轮 1 亿美元融资
  5. Linux下crontab乱码,Linux下crontab自动运行Java程序乱码解决方案
  6. php qq邮箱发送邮件报错_PHP实现发送邮件(二)
  7. 报错:Ticket expired while renewing credentials 原因:Hue 集成Kerberos 导致Kerberos Ticket Renewer 起不来
  8. 三.VirtualBox中安装Centos7.5.1804
  9. c#将byte转为int_C# int转byte[],byte[]转int
  10. 如何用acme.sh申请证书
  11. 论文阅读:Instance Weighting in Dialogue Systems
  12. wps本地模板文件夹的位置
  13. 在 Windows 系统下,如何将“使用VSCode打开”添加至鼠标右键菜单栏
  14. Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了
  15. 海盗湾的popunder JS 代码,提高你的pop成功率
  16. C语言学习之假如我国国民生产总值的年增长率为7%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1+r)ⁿ r为年增长率,n为年数,p为与现在相比的倍数。
  17. 1147 -- 小周的烦恼
  18. ps2020切片时选择多张图片
  19. 类锁 synchronized对象锁 和 Lock对象锁
  20. 双模sa_SA/NSA双模不是盖的 荣耀首款5G手机 V30 PRO下载实测

热门文章

  1. 没有一部是烂片 香港最强水准的10部影片
  2. SAP中PDF文件本地保存方法
  3. SAP FI系列培训视频教程
  4. 没有PARAMETER ID,想 call TRANSACTION
  5. ALV Checkbox 单行灰显
  6. 这个搞定系统监控的妙招,不来学可惜了
  7. 来电掉队,共享充电宝或许只是外表光鲜
  8. 颠覆智能床垫技术,喜临门开启“深睡时代”
  9. js手机端时间区间_js 时间区间
  10. html5交互效果,浅谈HTML5 CSS3的新交互特性