- JSP 基础教程
- JSP - 首页
- JSP - 概述
- JSP - 环境搭建
- JSP - 架构
- JSP - 生命周期
- JSP - 语法
- JSP - 指令
- JSP - 动作
- JSP - 隐式对象
- JSP - 客户端请求
- JSP - 服务器响应
- JSP - HTTP 状态码
- JSP - 表单处理
- JSP - 编写过滤器
- JSP - Cookie 处理
- JSP - 会话跟踪
- JSP - 文件上传
- JSP - 日期处理
- JSP - 页面重定向
- JSP - 点击计数器
- JSP - 自动刷新
- JSP - 发送邮件
- JSP 高级教程
- JSP - 标准标签库
- JSP - 数据库访问
- JSP - XML 数据
- JSP - JavaBean
- JSP - 自定义标签
- JSP - 表达式语言
- JSP - 异常处理
- JSP - 调试
- JSP - 安全性
- JSP - 国际化
- JSP 有用资源
- JSP - 问答
- JSP - 快速指南
- JSP - 有用资源
- JSP - 讨论
JSP - 生命周期
本章将讨论 JSP 的生命周期。理解 JSP 底层功能的关键在于理解它们遵循的简单生命周期。
JSP 生命周期定义为从创建到销毁的过程。这类似于 servlet 生命周期,但增加了一个步骤,即需要将 JSP 编译成 servlet。
JSP 的执行路径
JSP 的执行路径如下:
- 编译
- 初始化
- 执行
- 清理
JSP 生命周期的四个主要阶段与 Servlet 生命周期非常相似。四个阶段描述如下:
JSP 编译
当浏览器请求 JSP 时,JSP 引擎首先检查是否需要编译页面。如果页面从未被编译过,或者自上次编译以来 JSP 已被修改,则 JSP 引擎将编译页面。
编译过程包括三个步骤:
- 解析 JSP。
- 将 JSP 转换成 servlet。
- 编译 servlet。
JSP 初始化
当容器加载 JSP 时,它会在服务任何请求之前调用jspInit()方法。如果需要执行 JSP 特定的初始化,请覆盖jspInit()方法:
public void jspInit(){ // Initialization code... }
通常,初始化只执行一次,与 servlet 的 init 方法一样,通常在 jspInit 方法中初始化数据库连接、打开文件和创建查找表。
JSP 执行
JSP 生命周期中的这一阶段表示与请求的所有交互,直到 JSP 被销毁。
每当浏览器请求 JSP 并且页面已被加载和初始化时,JSP 引擎就会调用 JSP 中的_jspService()方法。
_jspService() 方法接受HttpServletRequest和HttpServletResponse作为参数,如下所示:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // Service handling code... }
JSP 的 _jspService() 方法是根据请求调用的。它负责为该请求生成响应,并且该方法还负责为所有七种 HTTP 方法生成响应,即GET、POST、DELETE等。
JSP 清理
JSP 生命周期中的销毁阶段表示容器正在移除 JSP 的使用。
jspDestroy()方法是 servlet 的 destroy 方法在 JSP 中的等效方法。当需要执行任何清理工作时,例如释放数据库连接或关闭打开的文件,请覆盖 jspDestroy。
jspDestroy() 方法具有以下形式:
public void jspDestroy() { // Your cleanup code goes here. }