原始内容:https://www.tutorialspoint.com/jsp/jsp_life_cycle.htm
在这一章中,我们将讨论JSP的生命周期。
理解JSP低层次功能的关键在于——理解它们所遵循的、最简单的生命周期。
JSP的生命周期就是指“它从创建到销毁”的这一过程。
这个过程和servlet的生命周期很相似,
只不过增加了额外的一步,需要先把JSP编译成servlet。
JSP所遵循的路径
下面就是JSP所遵循的路径 −
- 汇编
- 初始化
- 执行
- 清理
JSP生命周期的4个主要阶段与servlet的生命周期十分相似。4个阶段如下图所示 −
汇编
当一个浏览器请求一个JSP页面的时候,JSP引擎首先检查它是否需要编译这个页面。如果这个页面从未被编译,或者,这个页面已经被修改,JSP引擎将编译这个页面。
这个汇编过程包括以下三步 -
- 解析JSP.
- 把JSP转化为一个servlet.
- 编译servlet.
JSP的初始化
当容器加载一个JSP的时候,最先被调用的是 jspInit() 方法。如果你需要在这个时候做点什么,请重写这个方法 -
public void jspInit(){ // Initialization code... }
通常,初始化只会被执行一次,在这个时候,你可以:初始化数据库连接、打开某些文件、建立“查询表”等
JSP的执行
这一阶段,JSP将与请求打交道。
每当浏览器请求一个已经被初始化的JSP页面的时候,
JSP引擎将在调用在JSP中的 _jspService() 方法,该方法接收一个 HttpServletRequest 和一个 HttpServletResponse 作为参数,如下所示 -
void _jspService(HttpServletRequest request, HttpServletResponse response) { // Service handling code... }
JSP的 _jspService() 方法基于特定的HTTP请求生成相应的响应。这些HTTP请求可能是 GET、POST、DELETE等等。
JSP的清除
当JSP不再被使用的时候,就会被容器移除。
你可以通过覆盖 方法,在JSP清除的时候做点什么,比如说关闭数据库连接,关闭文件啊,诸如此类 -
public void jspDestroy() { // Your cleanup code goes here. }