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>的含義是:
總結
如果是在Springmvc或者Struct框架中會有interceptor攔截器,如果是在框架中執行順序如下:
context-param -> listener -> filter -> interceptor -> 控制器參考:
《攔截器(Interceptor)和過濾器(Filter)的執行順序和區別》
總結
以上是生活随笔為你收集整理的JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天学一点儿shell:linux常用快
- 下一篇: Hadoop的基本概念和简单使用