JSP 教程 之 JSP 生命周期 4

简介: JSP生命周期包括编译、初始化、执行和销毁四个阶段。在编译阶段,JSP转换为servlet。初始化阶段加载并实例化servlet。执行阶段调用服务方法响应请求。销毁阶段调用销毁方法,如`jspDestroy()`,用于资源释放。示例代码展示了`jspInit()`、`_jspService()`和`jspDestroy()`方法在生命周期中的应用。浏览器显示初始化、服务请求和销毁的计数。

JSP 教程 之 JSP 生命周期 4

JSP 生命周期

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

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

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

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

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

执行阶段:
调用与JSP对应的servlet实例的服务方法

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

JSP清理

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

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

jspDestroy()方法的格式如下:

public void jspDestroy()
{
// 清理代码
}
实例
JSP生命周期代码实例如下所示:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>







<%!
private int initVar=0;
private int serviceVar=0;
private int destroyVar=0;
%>

<%!
public void jspInit(){
initVar++;
System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
}
public void jspDestroy(){
destroyVar++;
System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次");
}
%>

<%
serviceVar++;
System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求");

String content1="初始化次数 : "+initVar;
String content2="响应客户请求次数 : "+serviceVar;
String content3="销毁次数 : "+destroyVar;
%>

百度 JSP 测试实例


<%=content1 %>


<%=content2 %>


<%=content3 %>




浏览器打开该页面,输出结果为:

百度 JSP 测试实例
初始化次数:1
响应客户请求次数:1
销毁次数:0

目录
相关文章
|
19小时前
|
Java
JSP 教程 之 JSP 客户端请求 1
JSP教程介绍了客户端请求的HTTP信息头,如Accept(MIME类型)、Accept-Charset(字符集)、Accept-Encoding(编码类型)、Accept-Language(首选语言)、Authorization(用户认证)、Connection(持久连接)、Content-Length(POST数据长度)、Cookie(浏览器发送cookies)、Host(URL的主机名和端口)、If-Modified-Since(更新检查)、If-Unmodified-Since、Referer(引用页面URL)和User-Agent(浏览器标识)。这些头信息在Web编程中扮演重要角色。
6 0
|
2天前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 10
JSP隐式对象是预定义的Java对象,如request、response、out、session、application等,直接供开发者使用。out对象是JspWriter实例,用于向网页输出内容,类似PrintWriter但有缓存处理和抛出IOException。exception对象保存了页面的异常信息,用于错误处理。
11 3
|
2天前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 9
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括9大对象:request(HttpServletRequest)、response(HttpServletResponse)、out(JspWriter,用于输出到网页)、session(HttpSession)、application(ServletContext)、config(ServletConfig)、pageContext(PageContext,访问所有对象和命名空间)、page(页面实例,等同于Java的this)和Exception(异常对象)。
7 0
|
2天前
|
缓存 Java 对象存储
JSP 教程 之 JSP 隐式对象 8
JSP隐式对象是预定义的Java对象,如request、response、out等,无需声明即可直接使用。out对象是JspWriter实例,用于向response输出内容,支持print和println方法,可抛出IOException。pageContext对象代表整个JSP页面,提供访问页面信息和不同scope的对象,如request、response、session等,并有removeAttribute()方法管理页面属性。
8 0
|
3天前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 7
JSP隐式对象是预定义的Java对象,无需声明即可使用。包括9大对象:request、response、out、session、application、config、pageContext、page和Exception。其中,out对象用于输出内容到网页,基于JspWriter,支持print和println方法。config对象是ServletConfig的实例,提供访问Servlet初始化参数的途径,如获取servlet名称。
8 0
|
3天前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 6
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括:request(HttpServletRequest)、response(HttpServletResponse)、out(JspWriter,用于输出到网页)、session(HttpSession)、application(ServletContext)、config(ServletConfig)、pageContext(PageContext)、page(当前页面对象)和Exception。out对象基于JspWriter,用于内容输出,提供print和println方法。
8 0
|
3天前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 5
JSP教程介绍了九个隐式对象,如request、response、out、session、application等,无需声明即可直接使用。out对象是JspWriter实例,用于向网页输出内容,可配置是否缓存。它扩展了PrintWriter功能,处理缓存并可能抛出IOException。session对象基于HttpSession,用于跨客户端请求的会话跟踪。
8 1
|
3天前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 4
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括9大对象:request、response、out、session、application、config、pageContext、page和Exception。其中,out对象基于JspWriter,用于向response写入内容,具有缓存管理功能,并扩展了PrintWriter的方法。常用方法有print()、println()用于输出各种类型数据,以及flush()刷新输出流。
11 0
|
3天前
|
Java 开发者 容器
JSP 教程 之 JSP 隐式对象 3
JSP教程讲解了九个隐式对象,如request、response、out、session、application、config、pageContext、page和Exception。response对象是HttpServletResponse的实例,用于向客户端发送响应,包括设置HTTP头信息、添加cookie和状态码。
13 3
|
3天前
|
Java 开发者 容器
JSP 教程 之 JSP 隐式对象 2
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括9大对象:request(HttpServletRequest,处理客户端请求)、response(HttpServletResponse,响应输出)、out(JspWriter,输出到网页)、session(HttpSession,用户会话管理)、application(ServletContext,应用上下文)、config(ServletConfig,配置信息)、pageContext(PageContext,全局访问)、page(当前页面对象)和Exception(异常对象)。
13 3