原始内容: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——生命周期(转)的更多相关文章

  1. JSP页面的生命周期

    JSP页面的生命周期:我们假设要访问的jsp页面是index.jsp.首先,用户发出请求index.jsp:服务器会判断是否是第一次请求:如果是的话,JSP引擎会把该JSP文件转换成为一个Servle ...

  2. JSP和selevt 生命周期详解(JSP的生命周期和select很像,jsp底层就是一个selevt)

    JSP: JSP的生命周期指从创建到销毁的整个过程.分为以下几个阶段: 1:编译阶段:servlet引擎编译servlet源文件,生成servlet类.当浏览器请求JSP页面时,JSP引擎会首先去检查 ...

  3. Java Web学习笔记-Servle生命周期

    Servlet会在服务器启动或第一次请求该Servlet的时候开始生命周期,在服务器停止的时候结束生命周期. 无论请求多少次Servlet,最多只有一个Servlet实例.多个客户端并发请求Servl ...

  4. JSP Servlet WEB生命周期

    [转载] JavaWeb的生命周期是由Servlet容器来控制的总的来说分为三个阶段1.启动阶段:加载web应用相关数据,创建ServletContext对象,对Filter和servlet进行初始化 ...

  5. Angular 5.x 学习笔记(2) - 生命周期钩子 - 暂时搁浅

    Angular 5.x Lifecycle Hooks Learn Note Angular 5.x 生命周期钩子学习笔记 标签(空格分隔): Angular Note on cnblogs.com ...

  6. [翻译]AKKA笔记 - ACTOR生命周期 - 基本 -5

    原文地址:http://rerun.me/2014/10/21/akka-notes-actor-lifecycle-basic/ (请注意这了讨论的生命周期并不包括 preRestart 或者pos ...

  7. android学习笔记 activity生命周期&任务栈&activity启动模式

    activity生命周期 完整生命周期 oncreate->onstart->onresume->onpause->onstop->ondestory 使用场景:应用程序 ...

  8. iOS学习笔记—ViewController/生命周期

    ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图.iOS的SDK中提供很多原生ViewController ...

  9. MVC学习笔记---MVC生命周期

    Asp.net应用程序管道处理用户请求时特别强调"时机",对Asp.net生命周期的了解多少直接影响我们写页面和控件的效率.因此在2007年和2008年我在这个话题上各写了一篇文章 ...

随机推荐

  1. 集合映射中的映射包(使用xml文件)

    如果持久类有List对象,我们可以通过列表或者bag元素在映射文件中映射. 这个包(bag)就像List一样,但它不需要索引元素. 在这里,我们使用论坛的场景: 论坛中一个问题有多个答案. 我们来看看 ...

  2. 易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试

    Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试. 它是一个典型的教科书式的mvc ...

  3. ThinkPHP带表情无限级评论回复

    今天就tp中(含表情)无限级评论回复做一个个人总结. 1.准备TP基本框架 2.数据库,数据表的建立 A.先说说数据库(表)的建立. a-1,数据库:blog a-2,数据表:bolg_comment ...

  4. sqoop1.4.4从oracle导数据到hive中

    sqoop从oracle定时增量导入数据到hive 感谢: http://blog.sina.com.cn/s/blog_3fe961ae01019a4l.htmlhttp://f.dataguru. ...

  5. setTimeout里无法调用鼠标事件的event

    问题的由来是下面这段代码: middleOnmouseLeave: function (event) { setTimeout(function () { event.currentTarget.st ...

  6. sqlserver tips

    方括号内的表示一个对象名(视图,存储过程,表 等).列名:正常使用时,加不加一样,但是如果对象名是保留字的话,比如cascade,就必须加:不过建议不用保留字作为对象名 if object_id('[ ...

  7. Android经常使用工具类DateUtils(二)

    在编写代码中,会经经常使用到时间Date这个类,小编整理了一些经常使用的时间工具类.供大家參考. import java.text.ParseException; import java.text.S ...

  8. log4j日志文件乱码问题的解决方法

    近日在AIX上用log4j打印日志,出现乱码,经过努力解决问题. 症状:在默认语言非中文(或者说默认语言不支持中文的)的Windows.Linux.Unix上,用log4j打印日志,出现乱码,常见的就 ...

  9. SQLServer中exists和except用法

    一.exists 1.1 说明 EXISTS(包括 NOT EXISTS)子句的返回值是一个BOOL值.EXISTS内部有一个子查询语句(SELECT ... FROM...),我将其称为EXIST的 ...

  10. 关于:before :after

    首先要明白一种思想:结构和样式分离. 结构和样式分离,就意味着:没有样式表,HTML文档也是一个完整的文档:没有样式表,也能正常阅读用HTML表达的所有内容.明白这种思想就能很好理解样式表中使用--- ...