以下内容引用自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. Selenium--Python环境部署

    本文引读:一二为python环境安装:三为selenium安装同时介绍了pip:四为PyCharm安装:五为验证SE可以正常使用 一.下载python安装包 我这里安装的是python3.6.5,官网 ...

  2. jquery 序列化form表单

    1.为什么要将form表单序列化? ajax上传form表单的原始方式,是将form表单中所需要的键值对先获取,然后再组装成数据(两种方式:http:localhost:8080/test.do?pe ...

  3. R in action读书笔记(21)第十六章 高级图形进阶(上)

    16.1 R 中的四种图形系统 基础图形函数可自动调用,而grid和lattice函数的调用必须要加载相应的包(如library(lattice)).要调用ggplot2函数需下载并安装该包(inst ...

  4. R Programming week1-Reading Data

    Reading Data There are a few principal functions reading data into R. read.table, read.csv, for read ...

  5. centos7 安装后,意外出现Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]

    安装完成centos7后出现如下提示: Initial setup of CentOS Linux 7 (core) 1) [x] Creat user 2) [!] License informat ...

  6. php腾讯云短信验证码

    腾讯云短信控制台:https://console.cloud.tencent.com/sms 腾讯云短信 PHP SDK:https://github.com/qcloudsms/qcloudsms_ ...

  7. oracle char 多位,引发的问题

    我在表字有一字段type 类型为char(1),一开始用的还好,后来,char(1)不够用了,于是将char(1),变为char(2). 我做了一个字典表,来对应type,可是,总是查不到数据,最后, ...

  8. css + 和 ~的区别

    <style type="text/css"> h1 + p { margin-top:50px; color:red; } </style> <p& ...

  9. CSS工具、CSS重置(CSS Reset)

    样式重置的目的是减少浏览器的不一致性,例如line-height,margin,标题的font-size大小等等.样式重置经常在CSS框架中出现. 这里的重置样式故意写的很一般,例如没有为body元素 ...

  10. sh与bash执行语法严谨问题

    在Linux中,我们知道有几种方式可以运行.sh脚本 通过sh或者bash命令来运行 通过source来运行 通过./xxx.sh来运行(这种方式要求对脚本文件有r和x权限才行) 今天在写脚本的过程中 ...