一、
1、啟動(dòng)一個(gè)WEB項(xiàng)目的時(shí)候,WEB容器會(huì)去讀取它的配置文件web.xml,讀取<context-param>和<listener>兩個(gè)結(jié)點(diǎn)。
2、緊急著,容創(chuàng)建一個(gè)ServletContext(servlet上下文),這個(gè)web項(xiàng)目的所有部分都將共享這個(gè)上下文。
3、容器將<context-param>轉(zhuǎn)換為鍵值對(duì),并交給servletContext。
4、容器創(chuàng)建<listener>中的類實(shí)例,創(chuàng)建監(jiān)聽(tīng)器。
二、
load-on-startup 元素在web應(yīng)用啟動(dòng)的時(shí)候指定了servlet被加載的順序,它的值必須是一個(gè)整數(shù)。如果它的值是一個(gè)負(fù)整數(shù)或是這個(gè)元素不存在,那么容器會(huì)在該servlet被調(diào)用的時(shí)候,加載這個(gè)servlet 。如果值是正整數(shù)或零,容器在配置的時(shí)候就加載并初始化這個(gè)servlet,容器必須保證值小的先被加載。如果值相等,容器可以自動(dòng)選擇先加載誰(shuí)。
在servlet的配置當(dāng)中,<load-on-startup>5</load-on-startup>的含義是:
標(biāo)記容器是否在啟動(dòng)的時(shí)候就加載這個(gè)servlet。
當(dāng)值為0或者大于0時(shí),表示容器在應(yīng)用啟動(dòng)時(shí)就加載這個(gè)servlet;
當(dāng)是一個(gè)負(fù)數(shù)時(shí)或者沒(méi)有指定時(shí),則指示容器在該servlet被選擇時(shí)才加載。
正數(shù)的值越小,啟動(dòng)該servlet的優(yōu)先級(jí)越高。
三、
在項(xiàng)目中總會(huì)遇到一些關(guān)于加載的優(yōu)先級(jí)問(wèn)題,近期也同樣遇到過(guò)類似的,所以自己查找資料總結(jié)了下,下面有些是轉(zhuǎn)載其他人的,畢竟人家寫(xiě)的不錯(cuò),自己也就不重復(fù)造輪子了,只是略加點(diǎn)了自己的修飾。
首先可以肯定的是,加載順序與它們?cè)?web.xml 文件中的先后順序無(wú)關(guān)。即不會(huì)因?yàn)?filter 寫(xiě)在 listener 的前面而會(huì)先加載 filter。最終得出的
結(jié)論是:listener 主站蜘蛛池模板: 通河县| 鄯善县| 高尔夫| 横山县| 昌平区| 正阳县| 寿宁县| 祁连县| 克东县| 阿城市| 观塘区| 建湖县| 壤塘县| 芒康县| 昌黎县| 财经| 澄江县| 遂宁市| 江都市| 威信县| 垦利县| 财经| 淄博市| 郁南县| 承德市| 涿州市| 兴隆县| 宜兰县| 肇庆市| 广昌县| 新野县| 潢川县| 昌邑市| 通辽市| 浑源县| 宁化县| 剑河县| 文安县| 行唐县| 涟水县| 陆丰市|