以下内容引用自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. 460在全志r16平台tinav3.0系统下使用i2c-tools

    460在全志r16平台tinav3.0系统下使用i2c-tools 2018/9/6 19:05 版本:V1.0 开发板:SC3817R SDK:tina v3.0 1.01原始编译全志r16平台ti ...

  2. Shiro 自定义登陆、授权、拦截器

    Shiro 登陆.授权.拦截 按钮权限控制 一.目标 Maven+Spring+shiro 自定义登陆.授权 自定义拦截器 加载数据库资源构建拦截链 使用总结: 1.需要设计的数据库:用户.角色.权限 ...

  3. iOS Programming Camera 1

     iOS Programming Camera  1 1 Displaying Images and UIImageView 1.1  put an instance of UIImageView o ...

  4. 一致性hash学习

    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单哈 ...

  5. JS 中的 JSON

    JSON是JavaScript Object Notation的缩写,它是一种数据交换格式. 在JSON出现之前,大家一直用XML来传递数据.因为XML是一种纯文本格式,所以它适合在网络上交换数据.X ...

  6. QQ感叹号是什么鬼?原来是服务器波动,腾讯官方来辟谣了

    今天晚上很多网友在用QQ发送消息的时候发现,自己发送的消息一直是感叹号❗到底是怎么回事呢?是消息都发不出去了吗?马浩周通过手机测试后发现,其实消息是可以发出去的,而官方手机QQ出来已经通知了,是服务器 ...

  7. Codeforces_B.Maximum Sum of Digits

    http://codeforces.com/contest/1060/problem/B 题意:将n拆为a和b,让a+b=n且S(a)+S(b)最大,求最大的S(a)+S(b). 思路:考虑任意一个数 ...

  8. Zend Studio 离线汉化包下载方法

    进入eclipse官网 语言包位置 http://www.eclipse.org/babel/downloads.php

  9. [转载]C++、C#写的WebService相互调用

    [转载]C++.C#写的WebService相互调用   首先感谢永和兄提供C++的WebService服务器端及客户端,并且陪我一起熬夜:然后是火石和我做接口的兄弟,虽然都不知道你叫什么,如果没有你 ...

  10. ios摇一摇功能

    在 UIResponder中存在这么一套方法 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_A ...