JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期

JSP 生命周期

理解JSP底层功能的关键就是去理解它们所遵守的生命周期。

JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。

以下是JSP生命周期中所走过的几个阶段:

  • 编译阶段:

    servlet容器编译servlet源文件,生成servlet类

  • 初始化阶段:

    加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
  • 执行阶段:

    调用与JSP对应的servlet实例的服务方法
  • 销毁阶段:

    调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

很明显,JSP生命周期的四个主要阶段和servlet生命周期非常相似,下面给出图示:


JSP编译

当浏览器请求JSP页面时,JSP引擎会首先去检查是否需要编译这个文件。如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。

编译的过程包括三个步骤:

  • 解析JSP文件。
  • 将JSP文件转为servlet。
  • 编译servlet。

JSP初始化

容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了,就像下面这样:

public void jspInit(){
  // 初始化代码
}

一般来讲程序只初始化一次,servlet也是如此。通常情况下您可以在jspInit()方法中初始化数据库连接、打开文件和创建查询表。


JSP执行

这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。

当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。

_jspService()方法需要一个HttpServletRequest对象和一个HttpServletResponse对象作为它的参数,就像下面这样:

void _jspService(HttpServletRequest request,HttpServletResponse response)
{
   // 服务端处理代码
}

_jspService()方法在每个request中被调用一次并且负责产生与之相对应的response,并且它还负责产生所有7个HTTP方法的回应,比如GET、POST、DELETE等等。


JSP清理

JSP生命周期的销毁阶段描述了当一个JSP网页从容器中被移除时所发生的一切。

jspDestroy()方法在JSP中等价于servlet中的销毁方法。当您需要执行任何清理工作时复写jspDestroy()方法,比如释放数据库连接或者关闭文件夹等等。

jspDestroy()方法的格式如下:

public void jspDestroy()
{
   // 清理代码
}

原文地址:https://www.cnblogs.com/borter/p/9498908.html

时间: 2024-10-11 08:42:47

JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期的相关文章

JAVA知识积累 JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】

JSP全名为Java Server Pages,java服务器页面.JSP是一种基于文本的程序,其特点就是HTML和Java代码共同存在! 为什么需要JSP JSP是为了简化Servlet的工作出现的替代品,Servlet输出HTML非常困难,JSP就是替代Servlet输出HTML的. 简单使用一下JSP 在idea下生成一个JSP,我们来看一下JSP长什么样子 <%@ page contentType="text/html;charset=UTF-8" language=&q

Servlet生命周期,JSP对比

Servlet生命周期大致分三个阶段: 初始化阶段----调用init()方法 请求响应阶段----调用service()方法,根据请求不同调用不同的doPost()/doGet()方法 终止阶段----调用destroy()方法 Servlet 和 JSP 相同点/不同点: JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达.JSP编译后是"类servlet". Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来.

J2EE总结(三)——深入理解JSP开发工作原理

一.JSP及其工作原理 1.JSP(JavaServer page)Java服务器页面,从名字上看,它类似于ASP,并且是在服务端编写的一种技术. 2.用于开发动态web页面的技术 为什么它可以用来开发动态web页面呢?这与它在编写时用到的技术有关.它采用HTML来定义页面的结构,但是在jsp中允许编写Java代码,并且允许开发人员在页面中使用request,response,out等对象实现与浏览器的交互,所以jsp也是一种动态web页面开发技术. 举个例子: 输出当前的时间,在html中嵌套

jsp+mysql实现增加,查看功能

准备工作: (1)创建并使用数据库:create database student;   use test; (2)创建表:create table  ppp(sno char(7),sname  char(8)); (3)插入一条数据:insert   into   ppp  values(123,456); (4)显示数据:select*from ppp;(复习一下数据库知识) 开始: (1)打开Myeclipse. 新建web  project.(Mysql)  并在WebRoot建立一个

《Head First Servlets & JSP》-7-使用JSP

学习的知识点 JSP,最后会变成一个servlet JSP最终或变成一个完整的servlet在Web应用中运行,只不过这个servlet类会由容器写好. JSP中的scriptlet 所谓scriptlet就是放在<%-%>标记中的java代码.如: <% out.println(com.inspur.Counter.getCount()); %> JSP中的指令 JSP指令和scriptlet区别在于:多了一个@符号.注意中间无空格. 使用page指令导入包 导入一个包: <

Tip:JSP标签也称之为Jsp Action(JSP动作)元素

JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. ================ <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入.语法: <jsp:include page="relativeURL | <%=expression%>" flush=&

&lt;转&gt;ASP.NET学习笔记之理解MVC底层运行机制

ASP.NET MVC架构与实战系列之一:理解MVC底层运行机制 今天,我将开启一个崭新的话题:ASP.NET MVC框架的探讨.首先,我们回顾一下ASP.NET Web Form技术与ASP.NET MVC的异同点,并展示各自在Web领域的优劣点.在讨论之前,我对这两种技术都非常热衷,我个人觉得在实际的项目开发中,两者都能让我们受益匪浅,因此是目前Web领域两大平行和流行的技术.我们都知道,在传统的ASP.NET Web Form应用程序中,Microsoft已为我们设计了较为完整.简洁的开发

【jsp】Servlet与jsp之间的传值

Servlet与JSP 之间的传值有两种情况:JSP -> Servlet, Servlet -> JSP. 通过对象 request和 session (不考虑 application)完成传值. 一.JSP -> servlet JSP页面有3种方法向 servlet传值: form表单.URL <!-- JSP page --> ... <%...... session.setAttribute("testSession","Hell

JSP 最佳实践: 用 jsp:include 控制动态内容

在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页脚和导航组件之类的静态内容包含到 Web 页面中.和服务器端包含一样,JSP include 伪指令允许某个页面从另一个页面提取内容或数据.清单 1 重温了 include 伪指令. 清单 1. JSP include 伪指令 <![CDATA[ <%@ page language="java" contentType="text/html" %&g