JSP-生命周期


在本章中,我们将讨论 JSP 的生命周期。理解 JSP 底层功能的关键是理解它们遵循的简单生命周期。

JSP 生命周期定义为从创建到销毁的过程。这类似于 servlet 生命周期,但需要一个额外的步骤将 JSP 编译为 servlet。

JSP 遵循的路径

以下是 JSP 遵循的路径 -

  • 汇编
  • 初始化
  • 执行
  • 清理

JSP 生命周期的四个主要阶段与 Servlet 生命周期非常相似。下面描述了四个阶段 -

JSP 生命周期

JSP编译

当浏览器请求 JSP 时,JSP 引擎首先检查是否需要编译该页面。如果页面从未被编译过,或者 JSP 自上次编译以来已被修改,则 JSP 引擎将编译该页面。

编译过程涉及三个步骤 -

  • 解析 JSP。
  • 将 JSP 转变为 servlet。
  • 编译 servlet。

JSP初始化

当容器加载 JSP 时,它会在服务任何请求之前调用jspInit()方法。如果您需要执行 JSP 特定的初始化,请重写jspInit()方法 -

public void jspInit(){
   // Initialization code...
}

通常,初始化仅执行一次,并且与 servlet init 方法一样,您通常会在 jspInit 方法中初始化数据库连接、打开文件并创建查找表。

JSP执行

JSP 生命周期的此阶段代表与请求的所有交互,直到 JSP 被销毁。

每当浏览器请求 JSP 并且页面已加载并初始化时,JSP 引擎就会调用JSP 中的_jspService()方法。

_jspService() 方法采用HttpServletRequestHttpServletResponse作为其参数,如下所示 -

void _jspService(HttpServletRequest request, HttpServletResponse response) {
   // Service handling code...
}

JSP 的 _jspService() 方法是根据请求调用的它负责生成该请求的响应,并且该方法还负责生成对所有七个 HTTP 方法(即GET、POST、DELETE等)的响应。

JSP 清理

JSP 生命周期的销毁阶段表示 JSP 不再被容器使用。

jspDestroy ()方法在 JSP 中相当于 Servlet 的 destroy 方法。当您需要执行任何清理(例如释放数据库连接或关闭打开的文件)时,重写 jspDestroy。

jspDestroy() 方法具有以下形式 -

public void jspDestroy() {
   // Your cleanup code goes here.
}