Java Web容器的啟動與處理請求的過程


容器啟動時的加載順序

一、啟動一個WEB項目的時候,WEB容器會去讀取它的配置文件web.xml,讀取<context-param>結點。
二、容創建一個ServletContext(servlet上下文),這個 web項目的所有部分都將共享這個上下文。 
三、容器將<context-param>轉換為鍵值對,並交給 servletContext。 因為listener, filter 等在初始化時會用到這些上下文中的信息,所以要先加載。 
四、容器創建<listener>中的類實例,創建監聽器。
五、加載filter和servlet 
load- on-startup 元素在web應用啟動的時候指定了servlet被加載的順序,它的值必須是一個整數。

如果它的值是一個負整數或是這個元素不存在,那么容器會在該servlet被調用的時候,加載這個servlet。如果值是正整數或零,容器在配置的時候就加載並初始化這個servlet,容器必須保證值小的先被加載。如果值相等,容器可以自動選擇先加載誰。

web.xml 的加載順序是:context-param -> listener -> filter -> servlet。

容器處理請求的過程

當Web容器接收到來自客戶端的請求信息之后,會根據URL中的Web元件地址信息到Servlet 隊列中查找對應的Servlet對象,如果找到則直接使用,如果沒有找到則加載對應的類,並創建對象。

也就是說,Servlet對象是在第一次被使用的時 候才創建的,並且一旦創建就會被反復使用,不再創建新的對象。所有創建出的Servlet對象會在Web服務器停止運行的時候統一進行垃圾回收。

 

參考文獻:

http://blog.csdn.net/seelye/article/details/8469575


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM