init()
方法是由Servlet
接口提供的一个方法,Servlet容器将运行该方法以配置Servlet
。Servlet容器将提供一个ServletConfig
对象,该对象给Servlet
实例访问ServletContext
和其他来自部署描述符的配置元素。init()
方法是Servlet
和ServletConfig
协议的一部分。在init()
中,您可以处理与Web上下文相关的内容,在构造函数中,您可以处理与Servlet类私有相关的内容。
构造函数不是servlet生命周期的一部分。
根据javadoc文档
使用init和destroy来管理为servlet保留的资源
并且
仍然可以通过getServletConfig()方法检索ServletConfig对象。
Init()
方法是由servlet容器调用的,以指示servlet正在被放置到服务中。
servlet容器在实例化servlet后仅调用一次init方法。在servlet可以接收任何请求之前,init方法必须成功完成。这就是我们需要init()
方法的原因。
请参考以下链接:
http://www.tutorialspoint.com/servlets/servlets-life-cycle.htm
http://docs.oracle.com/javaee/5/api/javax/servlet/Servlet.html
JDK 1.0版本(最初为Servlet编写的)中,动态加载Java类(如Servlet)的构造函数不能接受参数。因此,为了向新的servlet提供有关其自身和环境的任何信息,服务器必须调用servlet的init()方法并传递实现了ServletConfig接口的对象。
此外,Java不允许接口声明构造函数。这意味着javax.servlet.Servlet接口不能声明一个接受ServletConfig参数的构造函数。它必须声明另一个方法,例如init()。
当然,您仍然可以为您的servlet定义构造函数,但是在构造函数中,您无法访问ServletConfig对象或抛出ServletException异常。