日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發(fā)布時間:2025/3/19 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 結論
  • 分析
    • 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程序的上下文參數(shù),也是啟動的初始化參數(shù),web程序最先解析的就是這個標簽,無論這個標簽在什么位置都先解析這個標簽。解析上面的context-param標簽之后會創(chuàng)建一個ServletContext對象,web項目的整個Application都將共享這個ServletContext。說到這里要注意一個問題,就是《Tomcat部署多工程時Log4j的問題》。

2、listener

<listener></listener>這個標簽是監(jiān)聽器,上面步驟完成之后tomcat會創(chuàng)建監(jiān)聽器的實例就是標簽里面的對象。在監(jiān)聽中會有contextInitialized(ServletContextEvent args)初始化方法,在這個方法中可以獲得ServletContext對象,從而獲取context-param的值

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

3、filter

<filter></filter>這個是過濾器,完成上面步驟后開始實例化。注意:如果有多個過濾器,那就按照過濾器在web.xml的順序來執(zhí)行。

4、servlet

<servlet></servlet>這個屬于服務接口,這個是在以上都完成之后才開始實例化。
在servlet的配置當中,<load-on-startup>的含義是:

  • 零或者正數(shù)代表服務啟動就啟動該servlet;
  • 正數(shù)的值越小,啟動該servlet的優(yōu)先級越高;
  • 負值或者無此配置則使用時才會被執(zhí)行。
  • 總結

    如果是在Springmvc或者Struct框架中會有interceptor攔截器,如果是在框架中執(zhí)行順序如下:

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

    參考:
    《攔截器(Interceptor)和過濾器(Filter)的執(zhí)行順序和區(qū)別》

    總結

    以上是生活随笔為你收集整理的JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。