Servlet 生命周期
1 Servlet 生命周期
Servlet 创建的时机:[ 默认 ] 用户第 1 次发送请求的时候,由 Web 容器实例化 Servlet 对象
也可以在
web.xml
中配置<load-on-startup>1</load-on-startup>
服务器启动时即创建Servlet
2 Servlet 接口中生命周期方法
- 每个 Servlet 在 tomcat 中只实例化一次,只会存在一个对象。
方法 | 作用 | 运行次数 |
---|---|---|
构造方法 | 实例化 Servlet 的时候执行 | 1 次 |
void init(ServletConfig config) | 初始化的时候执行 | 1 次 |
void service(ServletRequest req, ServletResponse res) | 服务的方法,每次请求都会执行参数:请求和响应 | n 次 |
void destroy() | 服务器关闭的时候执行 | 1 次 |
3 Servlet 的运行过程
JSP 的生命周期
- JSP 的执行过程
每个 JSP 在 Web 容器中执行的时候,都会:将 JSP 翻译–> Servlet 编译成-> 字节码文件 执行的。JSP
本质上就是一个 Servlet, Servlet 由 Web 容器生成。
- 什么时候 Servlet 生成?生成几次?
用户第 1 次访问 JSP 的时候生成 Servlet,生成 1 次。如果页面代码修改了,就会重新生成。
- JSP 文件中的 HTML 代码和 Java 代码在翻译后的 Servlet 中是如何分别被执行的?
HTML 代码: 通过 out.write 打印出来
out.write(" <h1 style=\"color: red\">\r\n");
Java 代码:直接生成到了 Servlet 中
//创建一个日期对象
Date date = new Date();
//格式类
String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
//打印输出
out.print(format);
- JSP 和 Servlet 是什么关系?
//1) 查看源码:
public final class demo01_jsp extends org.apache.jasper.runtime.HttpJspBase
//2) 结论:JSP 生成代码就是一个 Servlet
public abstract class HttpJspBase extends HttpServlet
Maven生命周期
Maven生命周期 : https://blog.youkuaiyun.com/m0_37450089/article/details/78712802