Tomcat 3.0版本的一些說明 以及 servlet 生命週期的簡單介紹
1.在Eclipse 內部可以把Tomcat 版本設定成3.0 這樣就可以省略掉書寫web.xml 檔案
2.在接下來的操作過程中以下專案不要勾選
3.這個時候可以觀察project Exploer中,WEB-INF 底下的lib 是沒有所謂的 web.xml 這個檔案
.
3.然後在src 底下建立一個servlet 並對其進行一些簡單的配置
4.可以選中以下這些的,後面對servlet 執行的週期會進行說明
.
5.程式碼如下:內部可以設定成一個@WebServlet(urlPatterns="/FristServlet",loadOnStartup=0) 其中loadOnStartup (1.)可以不進行設定,也就是預設,預設值為一個負數,此時執行Tomcat 控制檯不會有任何輸出,當你在瀏覽器輸入http://localhost/day25/FristServlet時,控制檯會輸出: 例項化-- 初始化--
demo--最後當在servers 右擊stop 時,控制檯還會顯示 銷燬。(2.)當你對loadOnStartup 進行設定時,比如loadOnStartup=0;或者正數,這時啟動Tomcat 會發現控制檯會打印出 例項化-- 初始化 ,在瀏覽器輸入http://localhost/day25/FristServlet
時,控制檯會相應的輸出 demo ,最後當在servers 右擊stop 時,控制檯還會顯示銷燬。當然數字越大,啟動Tomcat 後相應的例項化、初始化、也會變慢。
package com.lin.servlet; import java.io.IOException; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Tomcat設定為3.0 */ @WebServlet(urlPatterns="/FristServlet",loadOnStartup=0) public class FristServlet extends HttpServlet { private static final long serialVersionUID = 1L; public FristServlet() { super(); System.out.println("例項化"); } public void init(ServletConfig config) throws ServletException { System.out.println("初始化"); } protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("demo"); } public void destroy() { System.out.println("銷燬"); } }
6.以上說明的就是servlet 的一個週期問題:可以做如下總結:
servlet生命週期:
Servlet在第一次被訪問時建立Servlet例項, 建立之後伺服器會立即呼叫init方法進行初始化的操作, 建立之後, Servlet例項會一直駐留在伺服器的記憶體中, 為後續的請求服務. 只要有請求來訪問這個Servlet, 伺服器就會呼叫service方法來處理請求, 直到伺服器關閉, 或者WEB應用被移出容器, 隨著WEB應用的銷燬, Servlet例項也會跟著銷燬, 在銷燬之前伺服器會呼叫destroy方法進行善後的處理.