1. 程式人生 > >Servlet生命週期與簡單案例

Servlet生命週期與簡單案例

說明:本文章主要說明Servlet的生命週期。

Servlet的載入是在啟動web容器後,去尋找部署檔案也就是web.xml檔案,讀取部署檔案中servlet標籤,包括初始化引數(init-param)中配置。

1.servlet的init()方法在一個生命週期中只會執行一次,其中有參的init方法呼叫了無參的init方法,如果要重寫init方法只需要重寫無參的方法就行了,呼叫service前必須初始化完成。

2.每次請求來的時候都會呼叫service方法,在servlet中service只是判斷請求的方法(一般不用重寫),而去重寫doget方法或dopost方法

3.destroy方法是銷燬servlet例項用的,意味著servlet的生命週期結束!

總結:web啟動  執行init()方法且只執行一次,每次請求都會執行service方法,專案結束執行destroy方法。

案例:

先在web.xml中配置

<web-app><servlet><servlet-name>HelloWorld</servlet-name><servlet-class>HelloWorld</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorld</servlet-name><url-pattern>
/hello</url-pattern></servlet-mapping></web-app>

建立HelloWorld類並繼承HttpServlet

// 匯入必需的 java 庫import java.io.*;import javax.servlet.*;import javax.servlet.http.*;// 擴充套件 HttpServlet 類publicclassHelloWorldextendsHttpServlet{privateString message;publicvoid init()throwsServletException{// 執行必需的初始化
message ="Hello World";}publicvoid doGet(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{// 設定響應內容型別 response.setContentType("text/html");// 實際的邏輯是在這裡PrintWriterout= response.getWriter();out.println("<h1>"+ message +"</h1>");}publicvoid destroy(){// 什麼也不做}}
輸入訪問  http://localhost:8080/hello就可以了。