1. 程式人生 > >Java Web 深入分析(8) Servlet工作原理解析

Java Web 深入分析(8) Servlet工作原理解析

銷毀 深入分析 -s 區別 即將 web listen java web 訪問

Servlet

Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務程序或服務連接器,用Java編寫的服務器端程序,主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。

Servlet容器

  • servlet容器啟動過程:
    在tomcat容器管理等級中,Context直接管理著Servlet在容器中的包裝類Wrapper,所以Servelt容器如何運行就影響這servlet,下面就是servlet容器啟動過程
    Servlet容器啟動時,觸發servletContextEvent事件,並通知相應的監聽器servletContextListener;
    Servlet容器在啟動的過程中通過servletContextListener監視servletContext的狀態(初始化或者銷毀servletContext);
    servletContextListener中通過contextInitialized初始化方法,根據web.xml對servletContext進行配置,即將Context容器的屬性緩存在內存中,供Service服務利用;
  • web應用初始化工作:
    web的初始化是在contextConfig中實現的,應用的初始化主要是對web.xml進行解析,這個文件描述了Web應用的關鍵信息,也是整個Web應用的入口。
    Tomcat將web.xml文件解析後,將其中的屬性設置到Context容器中,這裏包括創建Servlet實例,Filter和Listener。將Servlet包裝成Context中的包裝類Wrapper。

Servlet實例

  • 創建Servlet對象
    如果Servlet在web.xml中load-on-startup的配置大於0,那麽在Context容器啟動時就會被實例化。
  • 初始化Servlet
    通過調用Servlet的init方法,同時把包裝了StandarWrapper對象的StandarWrapperFacade作為ServletConfig傳給Servlet。
    Servlet從web.xml被解析到初始化。ServletConfig 和 ServletContext的區別ServletConfig:從一個servlet被實例化後,對任何客戶端在任何時候訪問有效,但僅對本servlet有效,一個servlet的ServletConfig對象不能被另一個servlet訪問。

Servlet體系結構

Servlet如何工作

Servlet中的Listener

Filter如何工作

Servlet中的url-pattern

Java Web 深入分析(8) Servlet工作原理解析