一、servlet的生命周期
二、servlet学用覆盖方法说明
@Override
public void init() throws ServletException {
System.out.println("execute init()");
}
@Override
public void init(ServletConfig config) throws ServletException {
System.out.println("execute init(config)");
System.out.println(config.getInitParameter("user"));
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("execute doGet()");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("execute doPost()");
}
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
System.out.println("execute service()");
}
@Override
public void destroy() {
System.out.println("execute destroy()");
}
* 首先从web.xml的配置文件中的url-pattern的虚拟路径找到相应的servlet类。
* 然后创建这个servlet类。首先会执行init()方法或init(config)方法。两者只会执行一个。且只会执行一次。
*
* 之后去调用doGet,doPost方法了。注意,若是servlet覆盖了services方法,那么就不会去调用doGet,doPost方法
* 了,而是只会调用services方法。
*
* 最后,当服务器停止时会去调用 destory方法。
* 另外,在web.xml中可以配置,<init-param>来在servlet首次执行init(config)时候传递参数。
* 若是在web.xml中servlet配置了<load-on-startup>属性,那么在tomcat服务器启动时就会去调用init().
* 注意、当init()和init(config)同时存在时,会默认调用init(config)方法
三、在web.xml中配置servlet的init-param和 load-on-startup
<servlet>
<servlet-name>scope</servlet-name>
<servlet-class>shu.cs.swartz.scopepara.ServletScopePara</servlet-class>
<init-param ><!-- 为servlet进行传递初始化参数,应该在init(config)中进行处理 -->
<param-name>user</param-name>
<param-value>Aaron initparam in servlet config web.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup> <!-- 该属性的值不为0或空,那么在启动tomcat服务器的时候就会执行自动调用该servlet中init()方法了 -->
</servlet>