Servlet的生命週期(面試題)以及配置xml文件(二)

一.Servlet生命週期:

當servlet被第一次訪問的時候,init()方法會被調用。Servlet的實例默認情況下是第一次被訪問的時候創建(這個可以是更改的),第二次訪問不會了。Servlet的實例是單例的,Servlet每次請求會被調用。當Servlet對象銷燬時會調用這個方法destroy()。

 

                    Servlet對象實例化(創建)  ——> Servlet對象初始化——> 處理請求 ——>  Servlet對象銷燬(服務器關閉或崩潰了)    

                        大致在這幾個方法中體現:        init();                        service();            destroy();

 


二.專注Http請求的Servlet

 

        Servlet(一個標準)接口  ——> GenericServlet是Servlet接口子類——>HttpServlet是GenericServlet的子類(一個專門處理http請求的Servlet)

                        

2018-03-15_181541.png

 

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實例對象。

 

2018-03-15_183147.png

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