📜  JSP-生命周期

📅  最后修改于: 2020-11-13 05:14:36             🧑  作者: Mango


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

JSP生命周期定义为从创建到破坏的整个过程。这类似于Servlet生命周期,但需要一个额外的步骤才能将JSP编译为Servlet。

JSP遵循的路径

以下是JSP遵循的路径-

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

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

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()方法与Servlet的destroy方法等效。当您需要执行任何清理(如释放数据库连接或关闭打开的文件)时,请重写jspDestroy。

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

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