Servlet執行原理和生命週期

概念:運行在服務器端的小程序(Server Applet

  • Servlet就是一個接口,定義了java類被瀏覽器訪問到(tomcat識別)的規則。
  • 將來我們自定義一個類,實現Servlet接口,複寫方法。

執行原理

1.當服務器接收到客戶端瀏覽器的請求後,會解析請求URL路徑,獲取訪問的Servlet的資源路徑

2.查找web.xml文件,是否有對應的<url-pattern>標籤體內容

3.如果有,則再找到對應的<servlet-class>全類名

4.tomcat會使用反射得到字節碼文件,將字節碼文件加載進內存,並創建其對象

5.調用其方法

 

生命週期

1.被創建:執行init方法,只執行一次。

         a.Servlet什麼時候 被創建?

               i.默認情況下,第一次訪問時被創建。

              ii.可以在web.xml中配置執行Servlet的創建時機。

<servlet>

<servlet-name>demo01</servlet-name>

<servlet-class>com.ck.web.ServletDemo01</servlet-class>

<!--

指定Servlet的創建時機

1.第一次訪問被訪問時創建:<load-on-startup>值爲負數,默認爲-1

2.在服務器啓動時創建:<load-on-startup>值爲0或正數

-->

<load-on-startup>0</load-on-startup>

</servlet>

        b.Servlet的init方法只執行一次,說明一個Servlet在內存中只存在一個對象,也就是說Servlet是單例的。當多個用戶同時訪問時,可能存在線程安全的問題,怎麼解決?

                i.儘量不要在Servlet中定義成員變量。即使定義了成員變量,也不要對其修改,只用於讀取。

 

2.提供服務:執行service方法,每次請求都會執行。

3.被銷燬:執行destory方法,只執行一次,服務器正常關閉時執行。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章