以下内容引用自http://wiki.jikexueyuan.com/project/jsp/life-cycle.html

JSP生命周期可以被定义为从创建到销毁的整个过程,这类似于一个Servlet的生命周期与一个额外的步骤,该步骤将一个JSP编译成Servlet。

以下是JSP执行步骤:

  • 编译

  • 初始化

  • 执行

  • 清理

JSP生命周期的四个主要阶段非常类似于Servlet生命周期,它们如下所示:

一、JSP编译

当浏览器请求一个JSP,JSP引擎首先检查是否需要编译页面。如果页面从未被编译,或者JSP自上次编译后被修改了,那么JSP引擎就会编译页面。

编译过程包括三个步骤:

  • 解析JSP

  • 将JSP转换为Servlet。

  • 编译Servlet。

二、JSP初始化

当容器加载JSP时,在响应任何请求之前它会调用jspInit()方法。如果需要执行JSP-specific初始化,那么就覆盖jspInit()方法:

public void jspInit(){
// Initialization code...
}

通常初始化只执行一次,Servlet init方法也是只执行一次。一般初始化数据库连接,打开文件,并在jsplnit方法中创建查找表。

四、JSP执行

JSP生命周期的这个阶段代表所有的交互请求,直到JSP被摧毁。

当浏览器请求一个JSP页面时并且该页面被加载并初始化,JSP引擎就会在JSP中调用_jspService()方法。

_jspService()方法接受一个HttpServletRequest和一个HttpServletResponse作为其参数,如下所示:

void _jspService(HttpServletRequest request,  HttpServletResponse response)
{
// Service handling code...
}

每次请求时JSP的_jspService()方法都会被调用,且该方法负责生成请求的响应,并且该方法还负责生成所有七个HTT 方法的反应,即GET、POST、DELETE等。

五、JSP清理

JSP生命周期的破坏阶段代表JSP从容器中删除。

jspDestroy()方法是JSP的相当于Servlet的销毁方法。当需要执行任何清理时,覆盖jspDestroy,比如释放数据库链接或关闭打开的文件。

jspDestroy()方法具有以下形式:

public void jspDestroy()
{
// Your cleanup code goes here.
}

JSP的生命周期的更多相关文章

  1. Servlet的生命周期和Jsp的生命周期

    Servlet的生命周期: 1)构造方法(第1次访问) 2)init方法(第1次访问) 3)service方法 4)destroy方法 Jsp的生命周期 1)翻译: jsp->java文件 2) ...

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

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

  3. JSP入门 生命周期

    我们之前使用的都是javax.servlet.http.HttpServlet,这个类实现了javax.servlet.Servlet接口,而这个接口中定义的三个方法是所有servlet都必须实现的. ...

  4. JSP Servlet WEB生命周期

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

  5. jsp生命周期和工作原理

    jsp的工作原理jsp是一种Servlet,但是与HttpServlet的工作方式不太一样.httpservlet是先由源代码编译为class文件后部署到服务器下的,先编译后部署.而jsp则是先部署后 ...

  6. JSP笔记05——生命周期(转)

    原始内容:https://www.tutorialspoint.com/jsp/jsp_life_cycle.htm 在这一章中,我们将讨论JSP的生命周期. 理解JSP低层次功能的关键在于——理解它 ...

  7. 001jsp的基本知识-包括生命周期,怎么编译等等

    4 Jsp基础 4.1 Jsp引入 Servlet的作用: 用java语言开发动态资源的技术!!! Jsp的作用:用java语言(+html语言)开发动态资源的技术!!! Jsp就是servlet!! ...

  8. JSP复习整理(五)JavaBean生命周期

    一.创建一个JavaBean UserBean.java package jsp.test; public class UserBean { private String userName; priv ...

  9. JSP生命周期

    1.编译阶段:servlet容器编译servlet源文件,生成servlet类.观察一个JSP页面在第一次访问的时候会由servlet容器会生成.java文件,最终编译成.class字节码文件,如果打 ...

随机推荐

  1. Prim算法以及Kruskal算法

    Prim算法主要用于计算最小生成树.算法在选取最小路径的时候需要优化,算法思路:从某个顶点开始,假设v0,此时v0属于最小生成树结点中的一个元素,该集合假设V,剩下的点待选择的点为U,然后找寻V中的点 ...

  2. Android学习笔记(十一) Intent

    一.Intent对象的基本概念 -Intent是Android应用程序组件之一 -Intent对象在Android系统当中表示一种意图 -Intent当中最重要的内容是action与data 二.In ...

  3. 输入域名网站访问不了,ping与ftp都正常,这情况有可能域名被墙

    被墙的风险 1.首先域名没有备案,而且服务器是国外的服务器, 2.域名解析到国外服务器 总结:以上两点有很大几率被墙的风险 被墙的解决方案: 1.换新域名并备案(不换新域名走第二步,域名一定要备案) ...

  4. Codeforces Round #460 (Div. 2)_D. Substring_[dp][拓扑排序]

    题意:一个有向图,每个结点 被赋予一个小写字母,一条路径的value等与这条路径上出现次数最多的字母的数目,求该图的最大value 比赛时,用dfs超时,看官方题解用的dp和拓扑排序,a--z用0-2 ...

  5. HDU_1710_二叉树前序中序确定后序

    2018-3-6 按照王道机试书上的思路再做了一遍,先根据先序和中序建树,然后后序遍历. 静态分配数组用于建树,可以返回数组地址当作结点指针. #include<iostream> #in ...

  6. 用Python控制摄像头拍照并发邮件

    概述前言 工具 思路 安装及导入包 设置参数 实现拍照 构造邮件内容 发送邮件 判断网络连接 开机自启 后记 o1 前言为什么会有写这个程序的想法呢? 最初的想法是写一个可以用电脑前置摄像头拍照的程序 ...

  7. hibernate inverse属性

    修改街道对应的区道信息: 修改后会发现程序执行了两次修改操作: 原因: 区道与街道是一对多的关系: 由于Hibernate是双向维护外键,所以当修改区道中的街道时,会修改一次外键:在修改街道中的区道时 ...

  8. flutter 实现圆角头像的2种方法

    圆角头像在开发中应用太普遍了,我总结了2种实现方法,分享给大家 方法一: 使用Container组件的decoration可以实现 Container( width: 40, height: 40, ...

  9. Java IO(一)--File类

    File类不是单指文件,它既可以代表一个文件名称,又可以代表一个目录下的一组文件.可以用来创建.删除.遍历文件等 public static void main(String[] args) { St ...

  10. B5. Concurrent JVM 锁优化

    [概述] 高效并发是从 JDK1.5 到 JDK 1.6 的一个重要改进,HotSpot 虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spining ...