JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)
文章目录
- 结论
- 分析
- 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>
的含义是:
- 零或者正数代表服务启动就启动该servlet;
- 正数的值越小,启动该servlet的优先级越高;
- 负值或者无此配置则使用时才会被执行。
总结
如果是在Springmvc或者Struct框架中会有interceptor拦截器
,如果是在框架中执行顺序如下:
context-param -> listener -> filter -> interceptor -> 控制器
参考:
《拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别》
JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)相关推荐
- web.xml中的所有配置,Listener和Filter的加载顺序
web.xml 中的listener. filter.servlet 加载顺序及其详解 在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人 ...
- (转)web.xml 中的listener、 filter、servlet 加载顺序及其详解
转: https://www.cnblogs.com/Jeely/p/10762152.html web.xml 中的listener. filter.servlet 加载顺序及其详解 一.概述 1. ...
- Web.xml中配置监听器Listener导致Tomcat无法启动
Web.xml中配置监听器Listener导致Tomcat无法启动 1.在pom.xml里导入 org.springframework spring-web 5.0.5.RELEASE 版本看你个人的 ...
- web.xml 里context-param 、listener、 filter、servlet 加载顺序
1.web.xml中context-param .listener. filter.servlet 加载顺序与其位置无关,不是listener在context-param 前面就先加载listener ...
- Java中Filter、Listener,拦截器的学习,listener、 filter、servlet 加载顺序及其详解
Filter filter可认为是Servlet的一种"变种",它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链.它与Se ...
- web.xml 中的listener、 filter、servlet 加载顺序及其详解(转)
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...
- [转]web.xml 中的listener、 filter、servlet 加载顺序及其详解
2019独角兽企业重金招聘Python工程师标准>>> 转自:http://zhxing.iteye.com/blog/399668 在项目中总会遇到一些关于加载的优先级问题,近期也 ...
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...
最新文章
- 掏空老底,值得推荐的10个学习神器,总有一个用得上!
- 手机4k读写速度测试软件,4K扇区速度测试及读写IOPS_Intel 520_固态硬盘评测-中关村在线...
- 微信小程序-豆瓣电影TOP250
- 云基础设施公司 HashiCorp 宣布完成 D 轮 1 亿美元融资
- Linux下crontab乱码,Linux下crontab自动运行Java程序乱码解决方案
- php qq邮箱发送邮件报错_PHP实现发送邮件(二)
- 报错:Ticket expired while renewing credentials 原因:Hue 集成Kerberos 导致Kerberos Ticket Renewer 起不来
- 三.VirtualBox中安装Centos7.5.1804
- c#将byte转为int_C# int转byte[],byte[]转int
- 如何用acme.sh申请证书
- 论文阅读:Instance Weighting in Dialogue Systems
- wps本地模板文件夹的位置
- 在 Windows 系统下,如何将“使用VSCode打开”添加至鼠标右键菜单栏
- Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了
- 海盗湾的popunder JS 代码,提高你的pop成功率
- C语言学习之假如我国国民生产总值的年增长率为7%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1+r)ⁿ r为年增长率,n为年数,p为与现在相比的倍数。
- 1147 -- 小周的烦恼
- ps2020切片时选择多张图片
- 类锁 synchronized对象锁 和 Lock对象锁
- 双模sa_SA/NSA双模不是盖的 荣耀首款5G手机 V30 PRO下载实测