//GenericServlet类
public voidinit(ServletConfig config)throwsServletException {
this.config = config;
this.init();
}
public void init() throws ServletException {
}
问题:
- 为什么要实现如上代码的一个无参init()方法。
//GenericServlet类中
public ServletContext getServeltContext()
{
return config.getServletContext;
}
答:解决在GenericServlet中,从servlet接口带来的init(ServletConfig config)对它进行重写时,如果忘了调用super.init(config)时,就会出现空指针异常。
- 带参init()方法与init()方法,servlet容器怎么处理的?
答: servlet容器只执行带配置参数的init()函数
- servlet容器只会执行带servlet配置参数的init()函数,那子类中的init()初始化怎么实现的?
答:因为父类init(ServletConfig arg调用了父类中 重写的init()方法,又因为子类重写了init()方法,会调用子类的init()进行初始化,servlet容器只会调用带参数的init()方法初始化servlet
主要体现了java的多态特性
网友评论