在本章中,我们将讨论和了解JSP的生命周期。了解JSP低级功能的关键在于了解其遵循的简单生命周期。
JSP生命周期被定义为从创建到破坏的过程。这类似于一个Servlet生命周期,需要一个额外的步骤来将JSP编译成Servlet。
JSP执行过程
以下是JSP遵循的过程 -
- 编译
- 初始化
- 执行
- 清理
JSP生命周期的四个主要阶段与Servlet生命周期非常相似。以下描述了四个阶段 -
1.JSP编译
当浏览器请求JSP时,JSP引擎首先检查是否需要编译页面。如果页面从未被编译,或者JSP从上一次编译以来JSP文件代码已被修改,那么JSP引擎将会编译页面。
编译过程包括三个步骤 -
- 解析JSP。
- 将JSP转换为servlet。
- 编译servlet。
2.JSP初始化
当容器加载JSP时,它会在处理任何请求之前调用jspInit()
方法。 如果需要执行特定于JSP的初始化,那么可以覆盖jspInit()
方法 -
public void jspInit(){
// Initialization code...
}
通常,初始化仅执行一次,并且与servlet的init()
方法一样,一般会在jspInit()
方法中初始化数据库连接,打开文件和创建查找表。
3.JSP执行
JSP生命周期的这个阶段表示所有与请求的交互,直到JSP被销毁为止。
每当浏览器请求JSP并且页面已被加载和初始化时,JSP引擎将调用JSP中的_jspService()
方法。
_jspService()
方法以HttpServletRequest
和HttpServletResponse
为参数,如下所示:
void _jspService(HttpServletRequest request, HttpServletResponse response) {
// Service handling code...
}
根据请求调用JSP的_jspService()
方法。它负责生成请求的响应,此方法还负责生成对所有七种HTTP方法的响应,即GET
,POST
,DELETE
等。
4.JSP清理
JSP生命周期的清理阶段表示当JSP被容器从使用中移除时。
jspDestroy()
方法是等效于servlet的destroy
方法的JSP方法。当需要执行清理工作时,可以覆盖jspDestroy()
方法,如:释放数据库连接或关闭打开的文件。
jspDestroy()
方法具有以下形式 -
public void jspDestroy() {
// Your cleanup code goes here.
}
易百教程移动端:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"教程" 选择相关教程阅读或直接访问:http://m.yiibai.com 。
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加3个群。
- Java技术群: 227270512 (人数:2000,等级:LV5,免费:否)
- MySQL/SQL群: 418407075 (人数:2000,等级:LV5,免费:否)
- 大数据开发群: 655154550 (人数:2000,等级:LV5,免费:否)
- Python技术群: 287904175 (人数:2000,等级:LV5,免费:否)
- 人工智能深度学习: 456236082 (人数:2000,等级:LV5,免费:否)
- 测试工程师(新群): 415553199 (人数:1000,等级:LV1,免费:是)
- 前端技术群(新群): 410430016 (人数:1000,等级:LV1,免费:是)
- C/C++技术(新群): 629264796 (人数:1000,等级:LV1,免费:是)
- Node.js技术(新群): 621549808 (人数:1000,等级:LV1,免费:是)
- PostgreSQL数据库(新群): 539504187 (人数:1000,等级:LV1,免费:否)
- Linux技术: 479429477 (人数:2000,等级:LV5,免费:否)
- PHP开发者: 460153241 (人数:2000,等级:LV5,免费:是)
- Oracle数据库: 175248146 (人数:2000,等级:LV5,免费:是)
- C#/ASP.Net开发者: 579821706 (人数:2000,等级:LV5,免费:是)
- 数据分析师: 397883996 (人数:1000,等级:LV1,免费:是)R语言,Matlab语言等技术