123 Servlet_6 _Servlet生命周期
一、生命周期四个阶段
1.1实例化
-
当用户第一次访问Servlet时,由容器调用Servlet的构造器创建具体的Servlet对象。也可以在容器启动之后立刻创建实例。
-
< load-on-startup>1</ load-on-startup>(如果是0或正整数,就是一启动tomcat就创建了,如果是负数或者不写,就是请求访问时才创建)
-
注意:只执行一次
1.2初始化
-
在初始化阶段,init()方法会被调用。这个方法在javax.servlet.Servlet接口中定义。其中,方法以一个ServletConfig类型的对象作为参数。
-
注意:init方法只被执行一次
1.3服务
- 当客户端有一个请求时,容器就会将请求ServletRequest与响应ServletResponse对象转给Servlet,以参数的形式传给service方法。
- 此方法会执行多次
1.4销毀
-
当Servlet容器停止或者重新启动都会引起销毁Servlet对象并调用destroy方法。
-
destroy方法执行一次
二、Servlet执行流程
| Servlet执行流程 |
|---|
![]() |
package com.wlw.servlet.demo4;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(value = "/ls")
public class LifeServlet implements Servlet {
public LifeServlet() {
System.out.println("1.实例化");
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2.初始化");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("3.提供服务,接收请求,响应结果");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("4.销毁");
}
}
本文详细介绍了Servlet的生命周期,包括实例化、初始化、服务和销毁四个阶段,并通过一个简单的LifeServlet示例展示了每个阶段的方法调用。在Tomcat中,Servlet可以通过<load-on-startup>标签配置启动时是否立即创建实例。init方法仅在Servlet创建时调用一次,service方法则会在每次请求时被调用,最后在Servlet销毁时调用destroy方法。

995

被折叠的 条评论
为什么被折叠?



