Servlet 生命週期 :java
Servlet 是服務 HTTP 請求並實現 javax.servlet.Servlet 接口的 Java 類。Web 應用程序開發人員一般編寫 Servlet 來擴展 javax.servlet.http.HttpServlet,並實現 Servlet 接口的抽象類專門用來處理 HTTP 請求。( javax.servlet.Servlet 接口、java.servlet.GenericSerlvet 抽象類、java.servlet.Http.HttpServlet 抽象類)ide
package javax.servlet; import java.io.IOException; public interface Servlet {
//Servlet 實例初始化完成後 (Servlet 爲單實例,僅包含一個實例),將進入 init 函數,而且只執行一次 void init(ServletConfig var1) throws ServletException;
// 獲取 ServletConfig 對象,該對象包括當前 Servlet 實例相關信息 ServletConfig getServletConfig();
//任何一次請求,都將進入 service 方法 void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo();
// 當 tomacat 關閉時,將執行該方法 void destroy(); }
ServletDemo 類實現 java.servlet.Servlet 接口:
import javax.servlet.*; import java.io.IOException; public class ServletDemo implements Servlet { private transient ServletConfig servletConfig; public ServletDemo() { System.out.println("constructor"); System.out.println(this.hashCode()); } @Override public void init(ServletConfig servletConfig) throws ServletException { this.servletConfig = servletConfig; System.out.println("init"); } @Override public ServletConfig getServletConfig() { return this.servletConfig; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println(this.hashCode()); } @Override public String getServletInfo() { return null; } @Override public void destroy() { System.out.println("destroy"); } }