java.Servlet.GenericServlet中为什么有两个init方法

 

GenericServlet,servlet接口带来的init(ServletConfig config)对它进行重写时,如果忘了调用super.init(config),就会出现空指针异常,为了解决这样的

情况,GenericServlet中于是有了一个无参的init()方法,推荐大家重写init方法时,

重写无参的init()方法.

 

(第一种init()方法是Servlet接口中init()方法的实现。这种方法中,首先将ServletConfig对象保存在一个transient实例变量中,然后调用第二种不带参数的init()方法。


通常我们在编写集成自GenericServletServlet类时,只需重写第一种不带参数的init()方法就可以了。如果覆盖了第一种init()方法,那么应该在子类的该方法中,包含一句super.init(config)代码调用。)

-----------------------------------------------

API:

 Servlet 中的init()方法

public void init(ServletConfig config) throws ServletException;

 

  GenericServle中的init()方法

 

   public void init(ServletConfig config) throws ServletException {
 this.config = config;
 this.init();
    }

 

     public void init() throws ServletException {

    }

posted @ 2013-05-08 22:44  `仅此而已  阅读(280)  评论(0编辑  收藏  举报