第一、Servlet的生命周期
1.构造器:只被调用一次,只有第一次请求Servlet时,会创建Servlet实例,调用构造器,这说明Servlet是单实例。
2.init方法:只被调用一次,在创建好实例后立刻被调用,用于初始化当前Servlet.
3.servic方法:会被多次调用,每一次请求都会调用service方法,实际用于响应请求的。
4.destroy方法:只被调用一次,在当前Servlet所在的web应用被卸载前调用,用于释放当前Servlet所占用的资源。
Servlet其实是单实例多线程的,只是线程不是安全的。
第二、load-on-startup参数
1.配置在servlet的节点中
例如:<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.atguigu.javaWeb.HelloServlet</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
2.load-on-startup可以指定servlet被创建的时机,若为负数,则在第一次请求时被创建,若为0或正数,则在当前web应用被servlet容器加载时创建实例,且数值越小越早被创建。
第三、ServletConfig(封装了servlet的配置信息,并且可以获取ServletContext对象)
1.配置Servlet初始化参数,且节点必须在load-on-startup节点的前面
<init-param>
<param-name>password</param-name>
<param-value>123</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
2.获取初始化参数的方法
getInitParameter(String name):获得指定参数名的初始化参数。
getInitParameterName():获取参数名组成的Enumeration对象。