2023-01-17 一、Servlet底層源碼分析 1、Servlet結構圖 說明:HttpServlet繼承了GenericServlet類,GenericServlet實現了“ServletConfig”和“Servlet”兩個介面,因此所以要實現一個Servlet直接就可以繼承HttpSer ...
2023-01-17
一、Servlet底層源碼分析
1、Servlet結構圖
說明:HttpServlet繼承了GenericServlet類,GenericServlet實現了“ServletConfig”和“Servlet”兩個介面,因此所以要實現一個Servlet直接就可以繼承HttpServlet。
2、Servlet介面
內部方法解釋
(1)負責初始化Servlet對象。容器一旦創建好Servlet對象後,就調用此方法來初始化Servlet對象
void init(ServletConfig var1) throws ServletException;
(2)getServletConfig()返回一個ServletConfig對象,該對象包含了Servlet初始化參數信息
ServletConfig getServletConfig();
(3)負責處理客戶的請求並返迴響應。當容器接收到客戶端要求訪問特定的Servlet請求時,就會調用Servlet的Service方法
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
(4)getServletInfo()返回一個字元串,在該字元串中包含servlet的創建者,版本和版權信息
String getServletInfo();
(5)destroy()方法負責釋放Servlet對象占用的資源,當servlet對象結束生命周期時,servlet容器調用此方法來銷毀servlet對象
void destroy();
3、ServletConfig介面
內部方法解釋
(1)用於獲取Servlet名,web.xml中定義的servlet-name
String getServletName();
(2)獲取Servlet上下文對象
ServletContext getServletContext();
(3)獲取init-param中的配置參數
String getInitParameter(String var1);
(4)獲取配置的所有init-param名字集合
Enumeration getInitParameterNames();
4、GenericServlet抽象類
5、基於協議的HttpServlet