JSP笔记05——生命周期(转)
原始内容:https://www.tutorialspoint.com/jsp/jsp_life_cycle.htm
在这一章中,我们将讨论JSP的生命周期。
理解JSP低层次功能的关键在于——理解它们所遵循的、最简单的生命周期。
JSP的生命周期就是指“它从创建到销毁”的这一过程。
这个过程和servlet的生命周期很相似,
只不过增加了额外的一步,需要先把JSP编译成servlet。
JSP所遵循的路径
下面就是JSP所遵循的路径 −
- 汇编
- 初始化
- 执行
- 清理
JSP生命周期的4个主要阶段与servlet的生命周期十分相似。4个阶段如下图所示 −

汇编
当一个浏览器请求一个JSP页面的时候,JSP引擎首先检查它是否需要编译这个页面。如果这个页面从未被编译,或者,这个页面已经被修改,JSP引擎将编译这个页面。
这个汇编过程包括以下三步 -
- 解析JSP.
- 把JSP转化为一个servlet.
- 编译servlet.
JSP的初始化
当容器加载一个JSP的时候,最先被调用的是 jspInit() 方法。如果你需要在这个时候做点什么,请重写这个方法 -
public void jspInit(){
// Initialization code...
}
通常,初始化只会被执行一次,在这个时候,你可以:初始化数据库连接、打开某些文件、建立“查询表”等
JSP的执行
这一阶段,JSP将与请求打交道。
每当浏览器请求一个已经被初始化的JSP页面的时候,
JSP引擎将在调用在JSP中的 _jspService() 方法,该方法接收一个 HttpServletRequest 和一个 HttpServletResponse 作为参数,如下所示 -
void _jspService(HttpServletRequest request, HttpServletResponse response) {
// Service handling code...
}
JSP的 _jspService() 方法基于特定的HTTP请求生成相应的响应。这些HTTP请求可能是 GET、POST、DELETE等等。
JSP的清除
当JSP不再被使用的时候,就会被容器移除。
你可以通过覆盖 方法,在JSP清除的时候做点什么,比如说关闭数据库连接,关闭文件啊,诸如此类 -
public void jspDestroy() {
// Your cleanup code goes here.
}
JSP笔记05——生命周期(转)的更多相关文章
- JSP页面的生命周期
JSP页面的生命周期:我们假设要访问的jsp页面是index.jsp.首先,用户发出请求index.jsp:服务器会判断是否是第一次请求:如果是的话,JSP引擎会把该JSP文件转换成为一个Servle ...
- JSP和selevt 生命周期详解(JSP的生命周期和select很像,jsp底层就是一个selevt)
JSP: JSP的生命周期指从创建到销毁的整个过程.分为以下几个阶段: 1:编译阶段:servlet引擎编译servlet源文件,生成servlet类.当浏览器请求JSP页面时,JSP引擎会首先去检查 ...
- Java Web学习笔记-Servle生命周期
Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器停止的时候结束生命周期. 无论请求多少次Servlet,最多只有一个Servlet实例.多个客户端并发请求Servl ...
- JSP Servlet WEB生命周期
[转载] JavaWeb的生命周期是由Servlet容器来控制的总的来说分为三个阶段1.启动阶段:加载web应用相关数据,创建ServletContext对象,对Filter和servlet进行初始化 ...
- Angular 5.x 学习笔记(2) - 生命周期钩子 - 暂时搁浅
Angular 5.x Lifecycle Hooks Learn Note Angular 5.x 生命周期钩子学习笔记 标签(空格分隔): Angular Note on cnblogs.com ...
- [翻译]AKKA笔记 - ACTOR生命周期 - 基本 -5
原文地址:http://rerun.me/2014/10/21/akka-notes-actor-lifecycle-basic/ (请注意这了讨论的生命周期并不包括 preRestart 或者pos ...
- android学习笔记 activity生命周期&任务栈&activity启动模式
activity生命周期 完整生命周期 oncreate->onstart->onresume->onpause->onstop->ondestory 使用场景:应用程序 ...
- iOS学习笔记—ViewController/生命周期
ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图.iOS的SDK中提供很多原生ViewController ...
- MVC学习笔记---MVC生命周期
Asp.net应用程序管道处理用户请求时特别强调"时机",对Asp.net生命周期的了解多少直接影响我们写页面和控件的效率.因此在2007年和2008年我在这个话题上各写了一篇文章 ...
随机推荐
- 集合映射中的映射包(使用xml文件)
如果持久类有List对象,我们可以通过列表或者bag元素在映射文件中映射. 这个包(bag)就像List一样,但它不需要索引元素. 在这里,我们使用论坛的场景: 论坛中一个问题有多个答案. 我们来看看 ...
- 易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试
Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试. 它是一个典型的教科书式的mvc ...
- ThinkPHP带表情无限级评论回复
今天就tp中(含表情)无限级评论回复做一个个人总结. 1.准备TP基本框架 2.数据库,数据表的建立 A.先说说数据库(表)的建立. a-1,数据库:blog a-2,数据表:bolg_comment ...
- sqoop1.4.4从oracle导数据到hive中
sqoop从oracle定时增量导入数据到hive 感谢: http://blog.sina.com.cn/s/blog_3fe961ae01019a4l.htmlhttp://f.dataguru. ...
- setTimeout里无法调用鼠标事件的event
问题的由来是下面这段代码: middleOnmouseLeave: function (event) { setTimeout(function () { event.currentTarget.st ...
- sqlserver tips
方括号内的表示一个对象名(视图,存储过程,表 等).列名:正常使用时,加不加一样,但是如果对象名是保留字的话,比如cascade,就必须加:不过建议不用保留字作为对象名 if object_id('[ ...
- Android经常使用工具类DateUtils(二)
在编写代码中,会经经常使用到时间Date这个类,小编整理了一些经常使用的时间工具类.供大家參考. import java.text.ParseException; import java.text.S ...
- log4j日志文件乱码问题的解决方法
近日在AIX上用log4j打印日志,出现乱码,经过努力解决问题. 症状:在默认语言非中文(或者说默认语言不支持中文的)的Windows.Linux.Unix上,用log4j打印日志,出现乱码,常见的就 ...
- SQLServer中exists和except用法
一.exists 1.1 说明 EXISTS(包括 NOT EXISTS)子句的返回值是一个BOOL值.EXISTS内部有一个子查询语句(SELECT ... FROM...),我将其称为EXIST的 ...
- 关于:before :after
首先要明白一种思想:结构和样式分离. 结构和样式分离,就意味着:没有样式表,HTML文档也是一个完整的文档:没有样式表,也能正常阅读用HTML表达的所有内容.明白这种思想就能很好理解样式表中使用--- ...