回覆列表
  • 1 # pzyyo24296

    servlet的生命週期分為3個階段1.初始化階段,呼叫init()方法2.響應客戶端階段,呼叫service()方法3.終止階段,呼叫destroy()方法servlet初始化階段,在下列時刻Servlet容器裝載servlet1.servlet容器啟動時自動裝載某些servlet,實現它只需要在web.xml檔案中的servlet/servlet之間新增如下程式碼: loadon-startup1/loadon-startup2.在servlet容器啟動後,客戶首次向servlet傳送請求3.servlet類檔案被更新後,重新裝載servlet,servlet被解除安裝後,servlet容器建立一個servlet例項並且呼叫servlet的init()方法進行初始化。在servlet的整個生命週期內,init()方法只被呼叫一次。servlet工作原理首先簡單解釋一下servlet接受和響應客戶端請求的過程,首先客戶傳送一個請求,servlet是呼叫service()方法對請求進行響應,透過原始碼可見,service()方法中對請求方式進行了匹配,選擇呼叫doGet,doPost等這些方法,然後再進入對應的方法中呼叫邏輯層的方法,實現對客戶的響應。在servlet介面和GenericServlet中是沒有doGet,doPost等等這些方法的,httpServlet中定義了這些方法,但都是返回error資訊,所以我們每次定義一個servlet的時候,都必須實現doGet或doPost等這些方法。每一個自定義的servlet都必須實現servlet的介面,Servlet介面中定義了五個方法,其中比較重要的三個方法涉及到servlet的生命週期,分別是上下文提到到的init(),service(),destroy()方法。GenericServlet是一個通用的,不特定任何協議的servlet,它實現了servlet介面。而HttpServlet繼承於GenericServlet,因此HttpServlet也實現了servlet介面。所有我們定義servlet的時候只需要繼承於GenericServlet,因此HttpServlet也實現了servlet介面。所以我們定義servlet的時候只需要繼承HttpServlet即可。Servlet介面和GenericServlet是不特定於任何協議的,而HttpServlet是特定於Http協議的類,所以HttpServlet中實現了service()方法,,並將請求ServletRequest,ServletResponse強轉為HttpRequest和HtpResponse.

  • 中秋節和大豐收的關聯?
  • 一段時間來老碰到44這個數字,不知道是否預示什麼,望指教?