1.GenericServlet原理分析
GenericServlet類是一個抽象類,并且是Servlet接口的實現類,HttpServlet類的父類,下面我們通過一張圖來更直觀的了解GenericServlet的類結構,如圖1-1所示:
通過圖1-1發現,GenericServlet類不僅實現了Servlet接口,還實現了ServletConfig接口。因此,在GenericServlet類中一定包含Servlet接口和ServletConfig接口的所有方法.。接下來,我們創建一個類來模擬GenericServlet的功能,詳情請參考GenericServlet案例詳解,點擊此處 下載源代碼。
(1)創建應用Example11,新建一個類MyServlet,該類實現了Servlet接口,具體代碼如例1-1所示:
例1-1 MyServlet.java
public class MyServlet implements Servlet {
/*
* 成員變量config
* */
private ServletConfig config;
public void init(){}
@Override
public void destroy() {
System.out.println("destroy run......");
}
/*
* 返回config,該方法一定在init方法之后執行
* */
@Override
public ServletConfig getServletConfig() {
return config;
}
@Override
public String getServletInfo() {
return "MyServlet....";
}
/*
* init()方法是這些方法中,最先被調用的,在本類構造方法執行后執行.
* */
@Override
public void init(ServletConfig servletConfig) throws ServletException {
/*
* 將服務器創建的servletConfig對象賦值給本類的成員變量config,方便在其他方法中使用
* */
this.config=servletConfig;
init();
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("service run ......");
}
/*
* 獲得Servlet的初始化參數
* */
public String getInitParameter(String name){
return this.config.getInitParameter(name);
}
/*
* 獲得ServletContext對象
* */
public ServletContext getServletContext(){
return this.config.getServletContext();
}
public String getServletName(){
return this.config.getServletName();
}
}
本文版權歸黑馬程序員Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員Java培訓學院
首發:http://javaee.itheima.com/