JSP的生命周期研究-阿里云开发者社区

开发者社区> -开发者助手-> 正文

JSP的生命周期研究

简介: JSP的生命周期研究
+关注继续查看

先看个简单的jsp例子:image.png浏览器打开该jsp,每F5刷新一次页面,发现复写的jspInit始终只被调用了一次,而serviceVar计数器每次刷新会加一。image.pngimage.png关于jsp的生命周期,可以参考w3c的教程:

https://www.w3cschool.cn/jsp/jsp-life-cycle.html


JSP 生命周期

理解JSP底层功能的关键就是去理解它们所遵守的生命周期。


JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。


以下是JSP生命周期中所走过的几个阶段:


编译阶段:servlet容器编译servlet源文件,生成servlet类


初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法


执行阶段:调用与JSP对应的servlet实例的服务方法


销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例


很明显,JSP生命周期的四个主要阶段和servlet生命周期非常相似,下面给出图示:


image.pngJSP编译

当浏览器请求JSP页面时,JSP引擎会首先去检查是否需要编译这个文件。如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。


编译的过程包括三个步骤:


解析JSP文件

将JSP文件转为servlet。

编译servlet。

JSP初始化

容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了,就像下面这样:

image.png一般来讲程序只初始化一次,servlet也是如此。通常情况下您可以在jspInit()方法中初始化数据库连接、打开文件和创建查询表。


JSP执行

这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。


当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。


_jspService()方法需要一个HttpServletRequest对象和一个HttpServletResponse对象作为它的参数,就像下面这样:

image.png_jspService()方法在每个request中被调用一次并且负责产生与之相对应的response,并且它还负责产生所有7个HTTP方法的回应,比如GET、POST、DELETE等等。


JSP清理

JSP生命周期的销毁阶段描述了当一个JSP网页从容器中被移除时所发生的一切。


jspDestroy()方法在JSP中等价于servlet中的销毁方法。当您需要执行任何清理工作时复写jspDestroy()方法,比如释放数据库连接或者关闭文件夹等等。


jspDestroy()方法的格式如下:

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理(3)
Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理(3)
4 0
Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理(1)
Apache APISIX 助力有赞云原生 PaaS 平台,实现全面微服务治理(1)
3 0
详解网商银行“三地五中心”数据部署架构(5)
详解网商银行“三地五中心”数据部署架构(5)
4 0
Netty执行流程
Netty执行流程
7 0
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(4)
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(4)
4 0
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(1)
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(1)
4 0
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(5)
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(5)
4 0
Netty 高效的Reactor线程模型
Netty 高效的Reactor线程模型
5 0
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(3)
万字长文:云原生底座之营造法式 | 平台供应商视角-第一部分(3)
7 0
Apache RocketMQ 4.9.1 高性能优化之路(上)
Apache RocketMQ 4.9.1 高性能优化之路(上)
6 0
2450
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载