JSP介绍中我们说过web容器或Servlet容器负责将JSP页面转换为Servlet。所以JSP不会将内容直接输出到浏览器。而是由服务器端处理端将JSP文件转换为JSP Page类 Servlet。然后,Servlet将处理所有由JSP发出的请求。
JSP的生命周期如下图所示:
JSP生命周期可以分为四个阶段:转换、初始化、运行和结束。
在转换阶段,JSP引擎检查JSP 语法,如果语法正确,则将JSP页面文件转换为它的页面实现类源文件。这个类实际上是一个标准的Java servlet。之后,JSP引擎将源文件编译成一个可以使用的类文件。
当容器接收到请求时,它会检查自上次转换后JSP页面文件是否被更改。如果没有进行任何更改,它只加载servlet;否则将重新进行语法检查、转换和编译的过程。
在转换阶段之后,JSP引擎加载类文件并创建servlet的实例来处理初始化请求。JSP引擎将调用jspInit()方法来初始化servlet。jspInit()方法是在转换阶段生成的,它通常用于初始化应用程序级的参数和资源。我们可以使用声明来覆盖此方法。
jspInit()
<%!
public
void
jspInit(){
// 你的初始化代码
}
%>
在初始化阶段之后,web容器调用方法_jspService()来处理请求并向客户端返回响应。
_jspService()
处理的每个请求都是一个单独的线程。我们写的所有的Scriptlet(小脚本 在helloworld我们有提到)和表达式都在这个方法中结束。声明(比如jspInit())和后面我们学到的JSP指令,因为他们应用于整个页面,所以它们在此方法之外结束。
Scriptlet
在最后阶段,web容器调用方法jspDestroy()。此方法用于清理内存和资源。与jspInit()方法一样,您也可以覆盖jspdestroy()方法来完成所有的清理工作,比如释放在初始化阶段加载的资源。
jspDestroy(){
// 用来清理资源的代码
原文链接:https://codingdict.com/