原始内容: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. layout折叠后显示标题

    Easyui的layout折叠后显示怎样可以显示标题 //在layout的panle全局配置中,增加一个onCollapse处理title$.extend($.fn.layout.paneldefau ...

  2. c++标准库之thread

    class thread是对线程的抽象.以下分别介绍thread是如何表示线程的大部分特征的. 执行体 线程的执行体由一个可执行(callable)对象来表示.这个执行体可以在thread创建的时候指 ...

  3. 嵌入式开发之davinci--- 8168 总的roi 编码

    http://bbs.61dsp.com/forum.php?mod=viewthread&tid=767

  4. 使用sqoop1.4.4从oracle导入数据到hive中错误记录及解决方案

    在使用命令导数据过程中,出现如下错误 sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.29.16:1521/testdb ...

  5. iOS-tableview【终极方案】精准获取webView内容高度,自适应高度

    关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...

  6. 分享一个编译期输出TODO,FIXME列表的宏

    效果,双击能跳到相应位置: >------ Build started: Project: TestVS2013, Configuration: Debug Win32 ------ > ...

  7. EditText相关属性设置

    1.默认不弹出软件盘 在AndroidManifest.xml设置: <activity            android:name="com.demo.Activity" ...

  8. 实现 iPhone 电子书的分页显示功能的代码

     本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6650497 原文地址:实现 iPhone 电子书的分页显示功能的代码作者:醉吻 ...

  9. Building Shops

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submissi ...

  10. 原生JavaScript写AJAX

    前端JavaScript: function ajaxGet(url, obj) { var request; if(window.XMLHttpRequest) { request = new XM ...