1)是一個Servlet,是Servlet接口和ServletConfig接口的實現類,但是一個抽象類,其中的service方法爲抽象方法
2)如果新建的Servlet程序直接繼承GenericServlet會使開發更簡潔
public abstract class MyGenericServlet implements Servlet ,ServletConfig{
3)在GenericServlet中聲明瞭一個ServletConfig類型的對象,在init(ServletConfig)方法中對其進行了初始化
利用servletConfig成員變量的方法實現了ServletConfig接口的方法
還定義了一個init()方法,在init(ServletConfig)方法中對其進行了調用,子類可以直接覆蓋init()在其中實現對Servlet的初始化
不建議直接覆蓋init(ServletConfig),因爲如果忘記編寫super.init(Config),而還是用了ServletConfig接口方法,
則會出現空指針異常
新建的init()並非Servlet的生命週期方法,而init(ServletConfig)是生命週期相關的方法。
private ServletConfig servletConfig;
@Override
public void destroy() {
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return servletConfig;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub
this.servletConfig=arg0;
init();
}
public void init() throws ServletException {
}
@Override
public abstract void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException ;
//以下方法爲ServletConfig接口的方法
@Override
public String getInitParameter(String arg0) {
// TODO Auto-generated method stub
return servletConfig.getInitParameter(arg0);
}
@Override
public Enumeration<String> getInitParameterNames() {
// TODO Auto-generated method stub
return servletConfig.getInitParameterNames();
}
@Override
public ServletContext getServletContext() {
// TODO Auto-generated method stub
return servletConfig.getServletContext();
}
@Override
public String getServletName() {
// TODO Auto-generated method stub
return servletConfig.getServletName();
}
}
GenericServlet
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.