|
一、
1、啟動一個WEB項目的時候,WEB容器會去讀取它的配置文件web.xml,讀取<context-param>和<listener>兩個結點。
2、緊急著,容創建一個ServletContext(servlet上下文),這個web項目的所有部分都將共享這個上下文。
3、容器將<context-param>轉換為鍵值對,并交給servletContext。
4、容器創建<listener>中的類實例,創建監聽器。
二、
load-on-startup 元素在web應用啟動的時候指定了servlet被加載的順序,它的值必須是一個整數。如果它的值是一個負整數或是這個元素不存在,那么容器會在該servlet被調用的時候,加載這個servlet 。如果值是正整數或零,容器在配置的時候就加載并初始化這個servlet,容器必須保證值小的先被加載。如果值相等,容器可以自動選擇先加載誰。
在servlet的配置當中,<load-on-startup>5</load-on-startup>的含義是:
標記容器是否在啟動的時候就加載這個servlet。
當值為0或者大于0時,表示容器在應用啟動時就加載這個servlet;
當是一個負數時或者沒有指定時,則指示容器在該servlet被選擇時才加載。
正數的值越小,啟動該servlet的優先級越高。
三、
在項目中總會遇到一些關于加載的優先級問題,近期也同樣遇到過類似的,所以自己查找資料總結了下,下面有些是轉載其他人的,畢竟人家寫的不錯,自己也就不重復造輪子了,只是略加點了自己的修飾。
首先可以肯定的是,加載順序與它們在 web.xml 文件中的先后順序無關。即不會因為 filter 寫在 listener 的前面而會先加載 filter。最終得出的
結論是:listener 主站蜘蛛池模板: 获嘉县| 丽江市| 信阳市| 吴川市| 蓝田县| 锡林郭勒盟| 阜康市| 满城县| 白城市| 丰镇市| 巴彦县| 轮台县| 黄平县| 永年县| 广昌县| 屏东市| 合肥市| 鄂州市| 呼图壁县| 桂平市| 莫力| 天水市| 东阳市| 卢氏县| 洪湖市| 郓城县| 林甸县| 海林市| 中阳县| 英德市| 宜昌市| 镶黄旗| 夹江县| 赫章县| 镇宁| 天津市| 锡林郭勒盟| 文山县| 扶风县| 青川县| 嵩明县|