GenericServlet
1.是一个Servlet.是Servlet接口和ServletConfig接口的实现类,但是一个抽象类,其中servlet方法为抽象方法
2.如果新建的Servlet程序直接继承GenericServlet会使开发更简介
3.具体实现:
1> 在GenericServlet中声明一个ServletConfig类型的成员变量,在init(ServletConfig) 方法中对其进行初始化
2>利用ServletConfig成员变量的方法实现ServletConfig接口的方法
3>还定义了一个init()方法,在init(ServletConfig)方法中对其进行调用,子类可以直接覆盖init() 在其中实现对Servlet的初始化.
4>不建议直接覆盖init(ServletConfig),因为如果忘记编写super.init(config),而是用了ServletConfig接口的方法,这会出现空指针异常.
5>新建的init()并不是Servlet的生命周期方法,而initial(ServletConfig)才是生命周期方法
资料地址
https://archive.apache.org/dist/tomcat/
// 自定义一个Servlet接口的实现类:让开发的任何Servlet都来继承该类.以简化开发 public abstract class MyGenericServlet implements Servlet , ServletConfig{ @Override public void destroy() {} @Override public ServletConfig getServletConfig() { return servletConfig; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } private ServletConfig servletConfig; @Override public void init(ServletConfig arg0) throws ServletException { 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) { return servletConfig.getInitParameter(arg0); } @Override public Enumeration<String> getInitParameterNames() { return servletConfig.getInitParameterNames(); } @Override public ServletContext getServletContext() { return servletConfig.getServletContext(); } @Override public String getServletName() { return servletConfig.getServletName(); }

浙公网安备 33010602011771号