JSP 与 S e r v l e t 第 1 章 JSP 技术简介 第 2 章 搭建开发环境 第 3 章 JSP 语法详解 第 4 章 JSP 内置对象详解 第 5 章 在 JSP 中使用 J avabe an 第 6 章 Se r v l e t技术应用 第 7 章 过滤器 第 8 章 监听器
JSP 技 术 简 介 第 1 章 随 着 Internet 技 术 的 迅 猛 发 展 与 Java 语 言 的 不 断 完 善 优 化, 越 来 越 多 的 Web 程 序 员 义 无 反 顾 地 踏 上 了 Java Web 应 用 开 发 之 路 那 么 什 么 是 JSP? 什 么 是 Servlet? 它 们 与 Java 语 言 有 什 么 关 系 呢? 下 面 我 们 就 开 始 JSP 技 术 的 学 习 之 路 本 章 要 点 : 常 用 的 动 态 网 页 介 绍 Java JSP Servlet 的 联 系 JSP 工 作 原 理 为 什 么 使 用 JSP 开 发 第 一 个 JSP 页 面 1.1 什 么 是 JSP JSP 全 称 是 JavaServerPages, 是 由 Sun 公 司 倡 导 许 多 公 司 参 与, 于 1999 年 推 出 的 一 种 动 态 网 页 技 术 标 准 在 传 统 的 网 页 HTML 文 件 (.htm,.html) 中 加 入 Java 程 序 片 段 (Scriptlet) 和 JSP 标 记 (Tag), 就 构 成 了 JSP 网 页 (.jsp) 网 页 一 般 又 称 HTML 文 件, 是 一 种 可 以 在 WWW 上 传 输 能 被 浏 览 器 认 识 和 翻 译 成 页 面 并 显 示 出 来 的 文 件 目 前 网 页 根 据 生 成 方 式, 大 致 可 以 分 为 静 态 网 页 和 动 态 网 页 两 种 JSP 是 基 于 JavaServlet 以 及 整 个 Java 体 系 的 Web 开 发 技 术, 利 用 这 一 技 术 可 以 建 立 安 全 跨 平 台 的 先 进 动 态 网 站 JSP 以 Java 技 术 为 基 础, 又 在 许 多 方 面 做 了 改 进, 具 有 动 态 页 面 与 静 态 页 面 分 离 能 够 脱 离 硬 件 平 台 的 束 缚, 以 及 编 译 后 运 行 等 优 点 到 目 前 为 止,JSP 技 术 已 经 逐 渐 成 为 Internet 上 的 主 流 开 发 技 术 需 要 强 调 的 一 点 是 : 要 想 真 正 地 掌 握 JSP 技 术, 必 须 有 较 好 的 Java 语 言 基 础, 以 及 HTML 语 言 方 面 的 知 识 下 面 是 一 个 比 较 简 单 的 JSP 网 页 <%@ pagecontenttype="text/html;charset=gb2312"%> <%@ pageimport="java.util. "%> <HTML> <BODY> <P> 现 在 的 时 间 是 : <% Datedate=new Date();%> <BR>
4 Web 应 用 开 发 实 训 教 程 JSP+Struts2 <%=date%> </BODY> </HTML> 1.2 动 态 网 页 技 术 这 里 说 的 动 态 网 页, 与 网 页 上 的 各 种 动 画 滚 动 字 幕 等 视 觉 上 的 动 态 效 果 没 有 直 接 关 系 动 态 网 页 可 以 是 纯 文 字 内 容 的, 也 可 以 是 包 含 各 种 动 画 的 内 容, 这 些 只 是 网 页 具 体 内 容 的 表 现 形 式 无 论 网 页 是 否 具 有 动 态 效 果, 采 用 动 态 网 站 技 术 生 成 的 网 页 都 称 为 动 态 网 页 动 态 网 页 技 术 有 以 下 几 个 特 点 (1) 交 互 性 即 网 页 会 根 据 用 户 的 要 求 和 选 择 而 动 态 改 变 和 响 应, 将 浏 览 器 作 为 客 户 端 界 面, 这 将 是 今 后 WEB 发 展 的 大 势 所 趋 (2) 自 动 更 新 即 无 须 手 动 更 新 HTML 文 档, 便 会 自 动 生 成 新 的 页 面, 可 以 大 大 节 省 工 作 量 (3) 因 时 因 人 而 变 即 当 不 同 的 时 间 不 同 的 人 访 问 同 一 网 址 时 会 产 生 不 同 的 页 面 目 前, 最 常 用 的 三 种 动 态 网 页 技 术 有 ASP(ActiveServerPages) JSP(JavaServer Pages) PHP(PHP:HypertextPreprocessor) 下 面, 我 们 分 别 从 技 术 和 商 业 的 角 度 来 简 单 介 绍 这 些 动 态 网 页 技 术 1.ASP (1) 技 术 角 度 1 简 介 :ASP 又 被 称 为 服 务 器 端 的 VBScript, 所 以 采 用 我 们 非 常 熟 悉 的 VB 语 法 2 公 司 特 征 : 由 Microsoft 公 司 推 出 3 难 易 程 度 : 由 于 采 用 Basic 语 法, 只 要 熟 悉 Basic 语 言, 有 点 HTML 基 础, 要 学 习 掌 握 ASP 是 很 简 单 的 事 情 4 代 码 隐 藏 性 : 不 需 要 编 译, 直 接 运 行, 所 以 代 码 可 视 5 编 写 工 具 : 任 何 文 本 编 辑 器 都 可 以 进 行 编 辑 6 封 装 性 : 能 很 好 地 结 合 MS 的 COM+ 技 术, 可 以 将 比 较 复 杂 的 事 务 处 理 工 作 封 装 在 COM+ 中, 而 且 能 非 常 好 地 进 行 调 用 7 扩 充 性 : 由 于 MS 本 身 的 ActiveX 技 术 具 有 无 限 可 扩 充 性, 所 以 能 很 好 地 结 合 其 他 语 言 编 写 的 组 件 8 数 据 库 : 采 用 MS 的 ODBC 接 口 技 术, 所 以, 几 乎 所 有 的 数 据 库 都 可 以 结 合 9 平 台 性 : 遗 憾 的 是, 对 于 我 们 目 前 流 行 的 两 种 最 主 流 的 网 络 操 作 系 统 (UNIX/ Linux 和 Windows), 它 却 只 能 在 Windows 平 台 上 受 到 很 好 的 支 持 (2) 商 业 角 度 1 平 台 成 本 : 可 以 选 择 WindowsServer+ IS+ASP+MSSQLServer 方 案, 因 为 这 些 都 是 ASP 母 公 司 的 产 品, 所 以, 从 性 能 方 面 考 虑, 对 于 ASP 肯 定 是 最 佳 的 方 案, 但 这 些 产 品 中, 几 乎 都 是 要 支 付 一 定 的 费 用, 对 于 一 个 小 型 公 司 来 说, 建 设 一 个 ASP 的 网 站 是 比 较 贵 的
第 1 章 JSP 技 术 简 介 5 2 人 工 成 本 :ASP 技 术 简 单,ASP 人 才 几 乎 到 处 可 见, 所 以, 开 发 一 个 ASP 网 站 维 护 一 个 ASP 网 站, 单 从 人 工 成 本 上 来 说, 是 不 需 要 太 多 费 用 的 2.JSP (1) 技 术 角 度 1 简 介 :JSP 全 名 JavaServerPages, 采 用 Java 语 法,Java 体 系 的 任 何 东 西 都 是 需 要 JDK 支 持 的, 同 样,JSP 也 离 不 开 JDK 2 公 司 特 征 : 由 Sun 公 司 推 出 3 难 易 程 度 : 由 于 采 用 Java 语 法, 而 Java 具 有 高 度 的 面 向 对 象 和 灵 活 性, 所 以, 比 Basic 稍 微 要 难 点 4 代 码 隐 藏 性 : 要 编 译 成 Servlet, 在 服 务 器 端 运 行, 所 以 代 码 不 可 视 5 编 写 工 具 : 任 何 文 本 编 辑 器 都 可 以 进 行 编 辑, 但 是, 却 需 要 JDK 先 编 译 好 6 封 装 性 : 能 很 好 地 结 合 JavaBean 技 术, 可 以 将 复 杂 的 事 务 处 理 工 作 封 装 在 Bean 中, 而 JSP 能 非 常 好 地 进 行 调 用 7 数 据 库 : 采 用 Java 结 合 数 据 库 技 术, 即 JDBC 技 术, 也 是 一 个 统 一 的 数 据 库 接 口 技 术 8 平 台 性 : 对 于 目 前 流 行 的 两 种 最 主 流 的 网 络 操 作 系 统 (UNIX/Linux 和 NT/ Windows2000), 都 能 得 到 很 好 的 支 持 (2) 商 业 角 度 1 平 台 成 本 : 有 很 多 可 以 考 虑 的 非 常 优 秀 的 方 案, 但 是, 这 些 非 常 优 秀 的 方 案 中, 其 中 的 价 格 也 是 非 常 昂 贵 的 当 然, 也 可 以 采 用 一 些 不 需 要 支 付 任 何 费 用 的 方 案, 如 Linux+Tomcat+JSP+MySQL 等 2 人 工 成 本 : 从 目 前 来 看, 由 于 JSP 的 诞 生 没 有 多 长 时 间, 而 且, 要 真 正 将 Java 体 系 掌 握 清 楚, 并 不 是 短 时 间 就 能 做 到 的, 所 以, 目 前 JSP 人 才 相 对 来 说, 应 该 要 比 ASP 和 PHP 人 才 少 得 多, 从 商 业 角 度 分 析, 成 本 也 要 贵 不 少 3.PHP (1) 技 术 角 度 1 语 法 :PHP, 采 用 类 似 C 的 语 法 2 难 易 程 度 : 由 于 采 用 C 语 言 语 法, 所 以 要 学 习 掌 握 PHP 也 是 比 较 简 单 的 事 情 3 代 码 隐 藏 性 : 不 需 要 编 译, 直 接 运 行, 所 以 代 码 可 视 但 是, 可 以 通 过 Zend 的 编 译 器 将 其 代 码 加 密 处 理, 以 隐 藏 源 代 码 4 编 写 工 具 : 任 何 文 本 编 辑 器 都 可 以 进 行 编 辑 5 封 装 性 : 能 结 合 MS 的 COM+ 技 术, 也 能 结 合 JavaBean, 将 某 些 复 杂 的 事 务 处 理 工 作 封 装 在 COM+ 和 JavaBean 中, 但 是, 性 能 当 然 没 有 像 ASP 结 合 COM+ 和 JSP 结 合 JavaBean 那 么 原 版, 也 就 是 速 度 和 性 能 肯 定 没 有 后 者 好 6 公 司 特 征 :PHP 是 开 源 的, 所 以, 你 可 以 得 到 它 的 源 代 码, 并 可 以 重 新 编 译, 甚 至 加 入 自 己 的 特 征 7 数 据 库 : 对 于 目 前 流 行 的 数 据 库, 几 乎 都 有 支 持 但 是, 它 却 不 是 像 ASP JSP 那 样 有 个 统 一 的 接 口, 对 于 每 种 数 据 库 几 乎 都 有 一 个 不 同 的 接 口
6 Web 应 用 开 发 实 训 教 程 JSP+Struts2 8 平 台 性 : 对 于 目 前 流 行 的 两 种 最 主 流 的 网 络 操 作 系 统 (UNIX/Linux 和 Windows), 它 都 可 以 得 到 很 好 的 支 持, 而 且 根 本 不 用 修 改 任 何 代 码 (2) 商 业 角 度 1 平 台 成 本 : 可 以 考 虑 Linux+Apache+PHP+ MySQL 方 案, 因 为 这 个 方 案 是 PHP 的 最 佳 选 择 而 且 令 人 兴 奋 的 是, 这 些 都 是 开 放 源 代 码 的 产 品 也 就 是 说, 可 以 不 向 任 何 人 支 付 任 何 费 用 就 可 以 做 到 的 2 人 工 成 本 : 从 目 前 来 看, 由 于 PHP 目 前 也 是 非 常 流 行 的, 所 以,PHP 的 人 才 也 非 常 多 而 且, 开 发 速 度 也 是 非 常 快, 所 以 从 这 个 方 面 考 虑, 成 本 也 是 不 高 的 4. 前 景 分 析 对 于 比 较 大 型 的 网 站, 比 如 对 事 务 处 理 和 负 载 均 衡 要 求 比 较 高 的 站 点, 采 用 JSP 和 ASP 的 比 较 多 从 成 本 上 考 虑, 比 较 经 济 的 站 点 采 用 PHP 应 该 是 最 好 的 选 择 由 于 三 种 语 言 各 有 自 己 的 长 处, 所 以, 都 有 相 当 的 支 持 者, 在 今 后 相 当 一 段 时 间 内, 都 不 会 被 对 方 所 淘 汰 1.3 Java Servlet 和 JSP 的 联 系 本 节 将 要 简 单 介 绍 Java Servlet 和 JSP 的 发 展 及 联 系 1.Java Java 是 一 种 可 以 撰 写 跨 平 台 应 用 软 件 的 面 向 对 象 的 程 序 设 计 语 言, 是 由 Sun Microsystems 公 司 于 1995 年 5 月 推 出 的 Java 程 序 设 计 语 言 和 Java 平 台 ( 即 JavaSE JavaEE JavaME) 的 总 称 Java 技 术 具 有 卓 越 的 通 用 性 高 效 性 平 台 移 植 性 和 安 全 性, 广 泛 应 用 于 个 人 PC 数 据 中 心 游 戏 控 制 台 科 学 超 级 计 算 机 移 动 电 话 和 互 联 网, 同 时 拥 有 全 球 最 大 的 开 发 者 专 业 社 群 在 全 球 云 计 算 和 移 动 互 联 网 的 产 业 环 境 下,Java 更 具 备 了 显 著 优 势 和 广 阔 前 景 与 传 统 程 序 不 同,Sun 公 司 在 推 出 Java 之 际 就 将 其 作 为 一 种 开 放 的 技 术 全 球 数 以 万 计 的 Java 开 发 公 司 被 要 求 所 设 计 的 Java 软 件 必 须 相 互 兼 容 Java 语 言 靠 群 体 的 力 量 而 非 公 司 的 力 量 是 Sun 公 司 的 口 号 之 一, 并 获 得 了 广 大 软 件 开 发 商 的 认 同 这 与 微 软 公 司 所 倡 导 的 注 重 精 英 和 封 闭 式 的 模 式 完 全 不 同 Sun 公 司 对 Java 编 程 语 言 的 解 释 是 :Java 编 程 语 言 是 个 简 单 面 向 对 象 分 布 式 解 释 性 稳 健 安 全 与 系 统 无 关 可 移 植 高 性 能 多 线 程 和 动 态 的 语 言 Java 平 台 是 基 于 Java 语 言 的 平 台, 这 样 的 平 台 目 前 非 常 流 行 因 此, 微 软 公 司 推 出 了 与 之 竞 争 的.NET 平 台 以 及 模 仿 Java 的 C# 语 言 2.Servlet Servlet 是 一 种 服 务 器 端 的 Java 应 用 程 序, 具 有 独 立 于 平 台 和 协 议 的 特 性, 可 以 生 成 动 态 的 Web 页 面 它 担 当 客 户 请 求 (Web 浏 览 器 或 其 他 HTTP 客 户 程 序 ) 与 服 务 器 响 应 (HTTP 服 务 器 上 的 数 据 库 或 应 用 程 序 ) 的 中 间 层 Servlet 是 位 于 Web 服 务 器 内 部 的 服 务 器 端 的 Java 应 用 程 序, 与 传 统 的 从 命 令 行 启 动 的 Java 应 用 程 序 不 同,Servlet 由 Web 服 务 器 进 行 加 载, 该 Web 服 务 器 必 须 包 含 支 持 Servlet 的 Java 虚 拟 机
第 1 章 JSP 技 术 简 介 7 服 务 器 上 需 要 一 些 程 序, 常 常 是 根 据 用 户 输 入 访 问 数 据 库 的 程 序 这 些 通 常 是 使 用 公 共 网 关 接 口 (CommonGatewayInterface,CGI) 应 用 程 序 完 成 的 在 通 信 量 大 的 服 务 器 上,JavaServlet 的 优 点 在 于, 它 们 的 执 行 速 度 更 快 于 CGI 程 序 各 个 用 户 请 求 被 激 活 成 单 个 程 序 中 的 一 个 线 程, 而 不 必 创 建 单 独 的 进 程, 这 意 味 着 服 务 器 端 处 理 请 求 的 系 统 开 销 将 明 显 降 低 JavaServlet 是 Java 语 言 的 一 部 分, 提 供 了 用 于 服 务 器 编 程 的 API 用 JavaServlet 编 写 的 Java 程 序, 称 为 一 个 Servlet Servlet 通 过 HTML 与 客 户 交 互 信 息 Servlet 的 最 大 缺 点 是, 不 能 有 效 地 管 理 页 面 的 逻 辑 部 分 和 页 面 的 输 出 部 分, 导 致 Servlet 代 码 非 常 混 乱, 用 Servlet 来 管 理 网 站 变 成 一 件 很 困 难 的 事 情 为 了 克 服 Servlet 的 缺 点,SUN 公 司 用 JavaServlet 作 为 基 础, 推 出 了 JavaServerPages, 即 JSP 3.JSP JSP 是 由 Sun Microsystems 公 司 倡 导 许 多 公 司 参 与 一 起 建 立 的 一 种 动 态 网 页 技 术 标 准 JSP 提 供 了 Servlet 的 几 乎 所 有 好 处, 当 一 个 客 户 请 求 一 个 JSP 页 面 时,JSP 引 擎 根 据 JSP 页 面 生 成 一 个 Java 文 件, 即 一 个 Servlet 用 JSP 支 持 JavaBean 这 一 特 点, 可 以 有 效 地 管 理 页 面 的 逻 辑 部 分 和 页 面 的 输 出 部 分 另 外,JSP 也 可 以 和 Servlet 有 效 地 结 合, 分 离 页 面 的 逻 辑 部 分 和 页 面 的 输 出 部 分 JSP 技 术 有 点 类 似 ASP 技 术, 它 是 在 传 统 的 网 页 HTML 文 件 (.htm.html) 中 插 入 Java 程 序 段 (Scriptlet) 和 JSP 标 记 (Tag), 从 而 形 成 JSP 文 件 (.jsp) 用 JSP 开 发 的 Web 应 用 是 跨 平 台 的, 既 能 在 Linux 下 运 行, 也 能 在 其 他 操 作 系 统 上 运 行 JSP 技 术 具 有 如 下 特 点 (1) 一 次 编 写, 到 处 运 行 除 了 系 统 之 外, 代 码 不 用 做 任 何 更 改 (2) 系 统 的 多 平 台 支 持 基 本 上 可 以 在 所 有 平 台 上 的 任 意 环 境 中 开 发, 在 任 意 环 境 中 进 行 系 统 部 署, 在 任 意 环 境 中 扩 展 相 比 ASP/.NET 的 局 限 性 是 显 而 易 见 的 (3) 强 大 的 可 伸 缩 性 从 只 有 一 个 小 的 Jar 文 件 就 可 以 运 行 Servlet/JSP, 到 由 多 台 服 务 器 进 行 集 群 和 负 载 均 衡,Java 显 示 了 巨 大 的 生 命 力 (4) 多 样 化 和 功 能 强 大 的 开 发 工 具 支 持 这 一 点 与 ASP 很 像,Java 已 经 有 了 许 多 非 常 优 秀 的 开 发 工 具, 而 且 许 多 可 以 免 费 得 到, 并 且 其 中 许 多 已 经 可 以 顺 利 地 运 行 于 多 种 平 台 之 下 (5) 支 持 服 务 器 端 组 件 Web 应 用 需 要 强 大 的 服 务 器 端 组 件 来 支 持, 开 发 人 员 需 要 利 用 其 他 工 具 设 计 实 现 复 杂 功 能 的 组 件 供 Web 页 面 调 用, 以 增 强 系 统 性 能 JSP 可 以 使 用 成 熟 的 JavaBean 组 件 来 实 现 复 杂 的 商 务 功 能 1.4 JSP 工 作 原 理 JSP 工 作 原 理 如 图 1.1 所 示 当 服 务 器 上 的 一 个 JSP 页 面 被 第 一 次 请 求 执 行 时, 服 务 器 上 的 JSP 引 擎 首 先 将 JSP 页 面 文 件 转 译 成 一 个 Java 文 件, 再 将 这 个 Java 文 件 编 译 生 成 字 节 码 文 件, 然 后 通 过 执 行 字 节 码 文 件 响 应 客 户 的 请 求, 而 当 这 个 JSP 页 面 再 次 被 请 求 执 行 时,JSP 引 擎 将 直 接 执 行 这 个 字 节 码 文 件 来 响 应 客 户, 这 也 是 JSP 比 ASP 速 度
8 Web 应 用 开 发 实 训 教 程 JSP+Struts2 快 的 一 个 原 因 而 JSP 页 面 的 首 次 执 行 往 往 由 服 务 器 管 理 者 来 执 行 这 个 字 节 码 文 件 的 主 要 工 作 如 下 (1) 把 JSP 页 面 中 普 通 的 HTML 标 记 符 号 ( 页 面 的 静 态 部 分 ) 交 给 客 户 的 浏 览 器 负 责 显 示 (2) 执 行 <% 和 %> 之 间 的 Java 程 序 段 (JSP 页 面 中 的 动 态 部 分 ), 并 把 执 行 结 果 交 给 客 户 的 浏 览 器 显 示 (3) 当 多 个 客 户 请 求 同 一 个 JSP 页 面 时,JSP 引 擎 为 每 个 客 户 启 动 一 个 线 程 而 不 是 启 动 一 个 进 程, 这 些 线 程 由 JSP 引 擎 服 务 器 来 管 理, 与 传 统 的 CGI 为 每 个 客 户 启 动 一 个 进 程 相 比 较, 效 率 要 高 得 多 图 1.1 JSP 工 作 原 理 当 客 户 端 向 一 个 JSP 页 面 发 出 请 求 时,WebContainer( 容 器 ) 将 JSP 转 化 成 Servlet 的 源 代 码 ( 只 在 第 一 次 请 求 时 ), 然 后 编 译 转 化 后 的 Servlet 并 加 载 到 内 存 中 执 行, 执 行 的 结 果 Response( 响 应 ) 到 客 户 端 JSP 只 在 第 一 次 执 行 的 时 候 会 转 化 为 Servlet, 以 后 每 次 执 行 Web 容 器 都 是 直 接 执 行 编 译 后 的 Servlet, 所 以 JSP 和 Servlet 只 是 在 第 一 次 执 行 的 时 候 不 一 样,JSP 慢 一 点, 以 后 的 执 行 都 是 相 同 的 下 面 是 被 请 求 的 JSP 文 件 (sum.jsp) 及 其 在 JSP 引 擎 里 生 成 的 对 应 的 Java 文 件, 并
第 1 章 JSP 技 术 简 介 9 把 JSP 引 擎 交 给 客 户 端 显 示 的 内 容 做 了 注 释 sum.jsp 源 文 件 如 下 : <%@ pagecontenttype="text/html;charset=gb2312" %> <HTML> <BODYBGCOLOR=cyan> <FONTSize=1> <P> 这 是 一 个 简 单 的 JSP 页 面 <%inti,sum=0; for(i=1;i<=100;i++) {sum=sum+i; %> <P> 1 到 100 的 连 续 和 是 : <BR> <%=sum %> </FONT> </BODY> </HTML> sum.jsp 在 JSP 引 擎 里 生 成 的 对 应 的 Java 文 件 如 下 : packageorg.apache.jsp; importjavax.servlet. ; importjavax.servlet.htp. ; importjavax.servlet.jsp. ; importorg.apache.jasper.runtime. ; publicclassfirst1$jspextendshtpjspbase{ static{ publicfirst1$jsp(){ privatestaticboolean _jspx_inited = false; publicfinalvoid _jspx_init()throwsorg.apache.jasper.runtime.jspexception{ publicvoid _jspservice(htpservletrequestrequest,htpservletresponse response) throwsjava.io.ioexception,servletexception{ JspFactory_jspxFactory = nul; PageContextpageContext= nul; HtpSessionsession = nul; ServletContextapplication = nul; ServletConfigconfig = nul; JspWriterout= nul; Objectpage= this; String _value= nul; try{ if(_jspx_inited == false){ synchronized(this){ if(_jspx_inited == false){ _jspx_init(); _jspx_inited = true;
10 Web 应 用 开 发 实 训 教 程 JSP+Struts2 _jspxfactory = JspFactoryġetDefaultFactory(); response.setcontenttype("text/html;charset=gb2312"); pagecontext= _jspxfactoryġetpagecontext(this,request,response,"",true,8192,true); application = pagecontextġetservletcontext(); config = pagecontextġetservletconfig(); session = pagecontextġetsession(); out= pagecontextġetout(); ( ) out.write("\r\n<html>\r\n<body>\r\n<p> 这 是 一 个 简 单 的 JSP 页 面 \r\n"); inti,sum=0; for(i=1;i<=100;i++) {sum=sum+i; ( ) out.write("\r\n<p> 1 到 100 的 连 续 和 是 :\r\n<br>\r\n "); ( ) outṗrint(sum); ( ) out.write("\r\n</body>\r\n<html>\r\n"); catch(throwablet){ if(out!= nul&& outġetbufersize()!= 0) out.clearbufer(); if(pagecontext!= nul)pagecontext.handlepageexception(t); finaly{ if(_jspxfactory!= nul) _jspxfactory.releasepagecontext(pagecontext); 1.5 实 践 任 务 : 用 记 事 本 开 发 第 一 个 JSP 应 用 1. 任 务 说 明 编 写 一 个 简 单 的 HTML 文 件 count.html, 这 个 HTML 中 包 含 一 个 Form 表 单, 这 个 表 单 可 以 接 收 用 户 输 入 的 数 字, 然 后 把 这 个 数 字 发 送 到 Web 服 务 器 Tomcat 端 的 heloword.jsp heloword.jsp 根 据 接 收 的 参 数 决 定 显 示 内 容 重 复 的 次 数, 如 图 1.2 所 示 图 1.2 count.html 显 示 的 结 果