一.Servlet生命週期:
當servlet被第一次訪問的時候,init()方法會被調用。Servlet的實例默認情況下是第一次被訪問的時候創建(這個可以是更改的),第二次訪問不會了。Servlet的實例是單例的,Servlet每次請求會被調用。當Servlet對象銷燬時會調用這個方法destroy()。
Servlet對象實例化(創建) ——> Servlet對象初始化——> 處理請求 ——> Servlet對象銷燬(服務器關閉或崩潰了)
大致在這幾個方法中體現: init(); service(); destroy();
二.專注Http請求的Servlet
Servlet(一個標準)接口 ——> GenericServlet是Servlet接口子類——>HttpServlet是GenericServlet的子類(一個專門處理http請求的Servlet)
httpServlet中的需要了解的幾個方法
①doGet(HttpServletRequest req, HttpServletResponse resp); 是給Get方式的Http的請求做響應。
②doPost(HttpServletRequest req, HttpServletResponse resp); 是給POST方式的Http的請求做響應。
③service(HttpServletRequest arg0, HttpServletResponse arg1);響應請求,請求並將其分配到該類中定義的doXXX方法。
三.Tomcat啓動創建Servlet實例
①怎麼添加在Tomcat啓動創建Servlet實例?
在Web.xml文件中,<Servlet>下添加一個元素對象<load-on-startup>1<load-on-startup>裏面必須是大於等於0的整數。
所有添加了<load-on-startup>子元素的Servlet。都會在Tomcat啓動時創建Servlet對象。只是被創建,但沒有處理請求。但我們知道在Servlet生命週期中init()方法會在Servlet對象創建時被調用。所以你可以在init()方法中做一些輸出,查看是否在Tomcat啓動時被調用了它。
<load-on-startup>元素的值是一個序號,Tomcat會使用這個序號給多個Servlet排序,然後再Tomcat啓動時會按照這個順序來創建Servlet實例對象。