以下内容引用自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. Python学习 Day 12 调试 断言 logging pdb pdb.set_trace

    调试 第一种方法简单直接粗暴有效,就是用print把可能有问题的变量打印出来看看: >>> def foo(s): n= int(s) print '>>> n = ...

  2. java实现的单点登录

    摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO ...

  3. java格式化sql

    在日志分析中,经常会对记录的sql进行分析,所以将一整行sql格式化,进行多行缩就显得很有必要,许多数据库客户端都提供sql的格式化功能,但复杂的多层嵌套sql往往格式化的l还不够友好,所以就自己造了 ...

  4. JavaScript——class与原型对象

    原型对象的意义 通过new 一个构造函数,我们能够获得一个实例,在new 的过程中,程序会在内存中申请一块区域,同时我们可以加参数,所以每个对象都不一样. 原型对象则是同一个构造函数 new 出来的所 ...

  5. C++ 类、对象、class

    一.对象初始化 1.不能在类声明中对数据成员初始化,因为类只是一个抽象类型,不占存储空间,无处容纳数据. 2.若某类的数据成员都是public,则可以像结构体一样初始化,如 Time t={12,21 ...

  6. log4net小记

    log4net添加: Install-Package Log4net log4net.config配置: <?xml version="1.0" encoding=" ...

  7. ajax 分页点击数据缓存

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. ionic提供的配色方案

    .light #ffffff .stable #f8f8f8 .positive #387ef5 .calm #11c1f3 .balanced #33cd5f .energized #ffc900 ...

  9. mxnet.base.MXNetError: src/imperative/./imperative_utils.h:70: Check failed: inputs[i]->ctx().dev_mask() == ctx.dev_mask() (1 vs. 2)

    mxnet 训练错误: mxnet.base.MXNetError: [14:42:22] src/imperative/./imperative_utils.h:70: Check failed: ...

  10. linux学习系列博客地址汇总

    2018-09-28 16:03:43 CentOS7 yum命令:这是一个用来管理rpm包进行自动化安装的C/S模式的一个程序. CentOS7(无图形界面)支持中文显示的办法:系统安装好之后,有可 ...