非常棒的jsp初学者幻灯片教程课件

上传人:san****019 文档编号:25642750 上传时间:2021-07-29 格式:PPT 页数:191 大小:2MB
收藏 版权申诉 举报 下载
非常棒的jsp初学者幻灯片教程课件_第1页
第1页 / 共191页
非常棒的jsp初学者幻灯片教程课件_第2页
第2页 / 共191页
非常棒的jsp初学者幻灯片教程课件_第3页
第3页 / 共191页
资源描述:

《非常棒的jsp初学者幻灯片教程课件》由会员分享,可在线阅读,更多相关《非常棒的jsp初学者幻灯片教程课件(191页珍藏版)》请在装配图网上搜索。

1、 2 3 4 复 习 JSP的 概 念n Java Server Pagen Servlet简 化 设 计 , 逻 辑 与 界 面 设 计 分 开 ,开 发 更 方 便 ;n HTML语 法 的 java 扩 展 , 加 入 新 的 标 签(,);n 强 大 的 组 件 ( Java Bean) 支 持 功 能 ; 5 JSP文 件 结 构 及 主 要 标 签. 其 他 HTML 语 言 其 他 HTML 语 言 6 JSP示 例 (Hello.jsp) % for ( int i=0; i 你 好 你 好 你 好 7 JSP执 行 过 程n *.jsp *.java *.classreque

2、stresponse 执行jsp parser JSDKservlet servlet 分 析 器 8 JSPn 执 行 过 程 查 找 对 应 的 JSP文 件是 否 存 在Y N是 否 是 修 改 或 创 建后 第 一 次 调 用 Y调 用 Jsp Parser将 其编 译 成 Servlet程 序调 用 JSDK将 对 应 的 Servlet 程 序 编 译 成 Servlet字 节 码执 行 (若 未 载 入 则 先 载 入 )已 有 的 对 应 的 Java字 节 码 N 9 JSP示 例 (Hello_Date.jsp) 你 好 ,今 天 是 号 , 星 期 import java

3、.util.*;response.setContentType(text/html; charset=gb2312);out = pageContext.getOut();out.write(“rnrnrn rn你 好 ,今 天 是 rn); Date today=new Date();out.print(today.getDate();out.write(号 , 星 期 );out.print(today.getDay();out.write( rn rnrn );JSP文 件 servlet文 件 10 JSP示 例 (浏 览 结 果 ) 11 JSP语 法 概 述n JSP原 始 代 码

4、 中 包 含 了 JSP元 素 和Template(模 板 ) data两 类 n Template data指 的 是 JSP引 擎 不 处 理 的 部分 , 即 标 记 以 外 的 部 分 , 例如 代 码 中 的 HTML的 内 容 等 , 这 些 数 据会 直 接 传 送 到 客 户 端 的 浏 览 器n JSP元 素 则 是 指 将 由 JSP引 擎 直 接 处 理 的部 分 , 这 一 部 分 必 须 符 合 JSP语 法 , 否 则会 导 致 编 译 错 误 。 12 jsp例 子 (hi.jsp)n Hi-JSP实 验 Template dataJSP元 素 13 JSP语 法

5、n JSP语 法 分 为 三 种 不 同 的 类 型 编 译 器 指 令 (DIRECTIVE) 例 如 : 脚 本 语 法 (SCRIPTING)动 作 语 法 (ACTION) 例 如 : , 14 脚 本 语 法n 脚 本 语 法 包 括n “ HTML注 释 ” :n “ 隐 藏 注 释 ” :n “ 声 明 ”n “ 表 达 式 ” n “ 脚 本 段 ” 15 编 译 器 指 令n 编 译 器 指 令 包 括 “ 包 含 指 令 ” , “ 页 指令 ” 和 “ taglib指 令 ” n 它 们 包 含 在 “ ” 卷 标 里 。 n 两 个 主 要 的 指 令 是 page与

6、include。 16 动 作 语 法n 动 作 语 法 包 括 , , , 和 。 17 HTML注 释 n JSP 语 法 格 式 如 下 :n !- comment - 或n !- 注 释 -n 这 种 注 释 发 送 到 客 户 端 , 但 不 直 接 显 示 ,在 源 代 码 中 可 以 查 看 到 。 18 HTML注 释 (peixun2.1.jsp) HTML注 释 未 显 示 上 一 行 的 注 释 。 19 HTML注 释 20 HTML注 释 (peixun2.2.jsp)要 多 加 练 习 !-This page was loaded on - 在 源 文 件 中 包

7、括 当 前 时 间 。 21 HTML注 释 22 IE中 的 源 程 序 有 注 释 23 隐 藏 注 释 n JSP 语 法 格 式 如 下 : n 不 发 送 到 客 户 端 。 24 隐 藏 注 释 (peixun2.3.jsp) A Comment Test A Test of Comments 25 隐 藏 注 释 26 在 IE中 查 看 源 代 码 27 声 明n JSP 语 法 格 式 如 下 :n 或n 28 声 明 (test2.4.jsp) test2.4.jsp 29 表 达 式n 用 于 在 页 面 上 输 出 信 息 , 语 法 格 式 如 下 :n 或n 30

8、表 达 式 (peixun2.4.jsp) test 31 表 达 式 a=b=c= 32 peixun2.4.jsp执 行 结 果 33 脚 本 段 n JSP 语 法 格 式 如 下 :n 或n 34 脚 本 段 (peixun2.5.jsp) test 35 % condition=1;switch(condition)case 0:out.println(You must select condition 0!+); break; case 1: out.println(You must select condition 1!+); 36 break; case 2: out.prin

9、tln(You must select condition 2!+); break; default: out.println(Your select not in 0,1,2,select again!+);% 转 义 符 : 双 引 号 “ , 单 引 号 , 反 斜 杠 , 回 车 r, 换 行 n, 制 表符 t, 退 格 b 37 脚 本 段 执 行 结 果 38 包 含 指 令n include指 令 : 向 当 前 页 中 插 入 一 个 静 态 文 件的 内 容 。n JSP 语 法 格 式 如 下 :n 或n 39 包 含 指 令 (peixun2.6.jsp) test T

10、he current date and time are 40 “ peixun2.6.1.jsp” 41 包 含 指 令 42 Page指 令n “ Page” 指 令 用 于 定 义 JSP文 件 中 的 全 局 属 性 。JSP 语 法 格 式 如 下 : 44 Page指 令n 属 性 :1 language=java 声 明 脚 本 语 言 的 种 类 , 目 前 只 能 用 java 。2.import=package.class | package.* ,. 需 要 导 入 的 Java包 的 列 表 , 这 些 包 作 用 于 程 序段 , 表 达 式 , 以 及 声 明 。

11、下 面 的 包 在 JSP编 译 时已 经 导 入 了 , 所 以 就 不 需 要 再 指 明 了 : java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.* 45 3 errorPage=relativeURL 设 置 处 理 异 常 事 件 的 JSP文 件 。 4 isErrorPage=true | false 设 置 此 页 是 否 为 出 错 页 , 如 果 被 设 置 为true,你 就 能 使 用 exception对 象 46 page指 令 详 说n “ ” 指 令 作 用 于 整 个 JSP

12、页 面 , 同 样 包 括静 态 的 包 含 文 件 。 但 是 “ ” 指 令 不 能 作 用于 动 态 的 包 含 文 件 , 比 如 “ ” 。n 可 以 在 一 个 页 面 中 用 上 多 个 “ ” 指 令 , 但是 其 中 的 属 性 只 能 用 一 次 , 不 过 也 有 例 外 , 那 就 是import属 性 。 因 为 import属 性 和 Java中 的 import语 句类 似 (参 照 Java Language, import语 句 引 入 得 是 Java语 言 中 的 类 ), 所 以 此 属 性 就 能 多 用 几 次 。 n 无 论 把 “ ” 指 令 放

13、 在 JSP的 文 件 的 哪 个 地方 , 它 的 作 用 范 围 都 是 整 个 JSP页 面 。 不 过 , 为 了 JSP程 序 的 可 读 性 , 以 及 好 的 编 程 习 惯 , 最 好 还 是 把 它 放在 JSP文 件 的 顶 部 。 47 page指 令 ( peixun2.7.jsp) test3Test for using Page. 48 page指 令 例 子 运 行 结 果 49 taglib指 令n JSP语 法 n 用 于 引 入 定 制 标 签 库 50 taglib指 令n 属 性n 1 uri=URIToTagLibrary n Uniform Reso

14、urce Identifier (URI)根 据 标 签 的前 缀 对 自 定 义 的 标 签 进 行 唯 一 的 命 名 , URI可 以 是以 下 的 内 容 :n Uniform Resource Locator (URL), 由 RFC 2396 定 义 , 可 以 从 以 下 位 置 查 看 (http:/www.hut.fi/u /jkorpela/rfc/2396/full.html)。 n Uniform Resource Name (URN), 由 RFC 2396定 义 n 一 个 相 对 或 绝 对 的 路 径 n 可 以 是 标 签 库 描 述 文 件 51 n 2 p

15、refix=tagPrefix n 表 示 标 签 在 JSP中 的 名 称 。n 在 自 定 义 标 签 之 前 的 前 缀 , 比 如 , 在中 的 public, 如 果 这 里 不 写public, 那 么 这 就 是 不 合 法 的 。 请 不 要 用jsp, jspx, java, javax, servlet, sun, 和 sunw做 为 你 的 前 缀 , 这 些 已 被 Sun公 司 声明 保 留 。 52 Tablib指 令 ( peixun2.8.jsp) test 53 n JSP 语 法 格 式 如 下 :1 jsp:forward page=relativeURL

16、 | / 2 jsp:forward page=relativeURL | jsp:param name=parameterName value=parameterValue | / ( “ ” 指 可 以 有 多 个 “ ”标 记 。 ) 54 属 性 :n 1、 page=relativeURL | n 这 里 是 一 个 表 达 式 或 是 一 个 字 符 串 用 于说 明 你 将 要 定 向 的 文 件 或 URL。 这 个 文 件可 以 是 JSP,程 序 段 , 或 者 其 它 能 够 处 理request对 象 的 文 件 (如 asp,cgi,php)。 55 n 2 jsp:

17、param name=parameterName value=parameterValue | /n 向 一 个 动 态 文 件 发 送 一 个 或 多 个 参 数 ,这 个 文 件 必 须 是 动 态 文 件 。 如 果 想 传 递多 个 参 数 , 可 以 在 一 个 JSP文 件 中 使 用 多个 “ ” ; “ name” 指 定 参 数名 , “ value” 指 定 参 数 值 。 56 注 意n “ ” 标 签 从 一 个 JSP文 件向 另 一 个 文 件 传 递 一 个 包 含 用 户 请 求 的request对 象 。 “ ” 标 签以 后 的 代 码 , 将 不 能 执

18、行 。 57 例 子 ( peixun2.9.jsp)test 58 forwardTo.jsp 59 运 行 结 果 ( TOMCAT) 60 n 包 含 一 个 静 态 或 动 态 文 件 . n JSP 语 法 格 式 如 下 :1 jsp:include page=relativeURL | flush=true / 2 jsp:include page=relativeURL | flush=true jsp:param name=parameterName value=parameterValue | / ( “ ” 指 可 以 有 多 个 “ ” 标 记 。 ) 61 的 属 性

19、1 page=relativeURL | 参 数 为 一 相 对 路 径 , 或 者 是 代 表 相 对 路 径 的 表 达 式 。2 flush=true 这 里 必 须 使 用 flush=true, 不 能 使 用 false值 。 而 缺省 值 为 false 。 62 3 jsp:param name=parameterName value=parameterValue | /“ ” 用 来 传 递 一 个 或 多 个 参 数到 指 定 的 动 态 文 件 , 能 在 一 个 页 面 中 使用 多 个 “ ” 来 传 递 多 个 参 数 , 63 例 子 (peixun2.10.js

20、p)peixun.2.10.jsp 64 peixun2.10.1.jsp%String username;username=request.getParameter(User);out.println(Username is +username+);% 65 运 行 结 果 ( TOMCAT) 66 n 使 用 “ ” 插 入 一 个 applet或 Bean,必 要 的 话 还 要 下 载 一 个 Java插 件 用 于 执 行 它 。n n JSP 语 法 格 式 如 下 : 68 jsp:param name=parameterName value=parameterValue | /

21、 + text message for user 69 属 性1 type=bean | applet 将 被 执 行 的 插 件 对 象 的 类 型 , 你 必 须 得 指 定 这 个是 Bean还 是 applet,因 为 这 个 属 性 没 有 缺 省 值 。2 code=classFileName 将 会 被 Java插 件 执 行 的 Java Class的 名 字 , 必 须以 .class结 尾 。 这 个 文 件 必 须 存 在 于 codebase属 性 指 定 的 目 录 中 。 70 n 3 codebase=classFileDirectoryName n 将 会 被

22、执 行 的 Java Class文 件 的 目 录 ( 或 者 是路 径 ) , 如 果 你 没 有 提 供 此 属 性 , 那 么 使 用的 jsp文 件 的 目 录 将 会 被 使 用 。n n 4 name=instanceName n 这 个 Bean或 applet实 例 的 名 字 , 它 将 会 在 Jsp其 它 的 地 方 调 用 。 71 例 子 Unable to load applet 72 n 创 建 一 个 Bean实 例 并 指 定 它 的 名 字 和 作 用范 围 。 n JSP 语 法 格 式 如 下 :jsp:useBean id=beanInstanceNa

23、me scope=page | request | session | application class=package.class | 73 type=package.class | c l a s s = p a c k a g e . c l a s s type=package.class | beanName=package.class | type=package.class / | other elements 74 属 性 以 及 用 法n 1 id=beanInstanceNamen 在 所 定 义 的 范 围 中 确 认 Bean的 变 量 , 使 之 能 在后 面 的

24、程 序 中 使 用 此 变 量 名 来 分 辨 不 同 的Bean , 这 个 变 量 名 对 大 小 写 敏 感 , 必 须 符 合所 使 用 的 脚 本 语 言 的 规 定 , 这 个 规 定 在 Java Language 规 范 已 经 写 明 。 如 果 Bean已 经 在 别的 “ ” 标 记 中 创 建 , 则 当 使 用这 个 已 经 创 建 过 Bean时 , id的 值 必 须 与 原 来 的那 个 id值 一 致 ; 否 则 则 意 味 着 创 建 了 同 一 个 类的 两 个 不 同 的 对 象 。 75 n 2 scope=page | request | sessi

25、on | application n Bean存 在 的 范 围 以 及 id变 量 名 的 有 效 范围 。 缺 省 值 是 page, 以 下 是 详 细 说 明 : n page - 能 在 包 含 “ ” 元 素 的JSP文 件 以 及 此 文 件 中 的 所 有 静 态 包 含 文 件中 使 用 这 个 Bean,直 到 页 面 执 行 完 毕 向 客 户端 发 回 响 应 或 转 到 另 一 个 文 件 为 止 。 76 n request - 在 任 何 执 行 相 同 请 求 的 Jsp文 件 中使 用 这 个 Bean, 直 到 页 面 执 行 完 毕 向 客 户 端 发回

26、响 应 或 转 到 另 一 个 文 件 为 止 。 能 够 使 用R e q u e s t 对 象 访 问 这 个 B e a n , 比 如request.getAttribute(beanInstanceName)。 n session - 从 创 建 Bean开 始 , 就 能 在 任 何 使 用相 同 session的 jsp文 件 中 使 用 这 个 Bean。 这 个Bean存 在 于 整 个 Session生 存 周 期 内 , 任 何 在分 享 此 Session的 Jsp文 件 都 能 使 用 同 一 Bean。注 意 在 创 建 这 个 Bean的 Jsp文 件 中 “

27、” 指 令 中 必 须 指 定 “ session=true” 。 77 n application - 从 创 建 Bean开 始 , 就 能在 任 何 使 用 相 同 application的 Jsp文 件中 使 用 Bean。 这 个 Bean存 在 于 整 个application生 存 周 期 内 , 任 何 在 分 享 此application的 Jsp文 件 都 能 使 用 同 一Bean. 78 n 3 class=package.class n 使 用 new关 键 字 以 及 class构 造 器 从 一 个 class中 实例 化 一 个 bean。 这 个 class不

28、 能 是 抽 象 的 , 必 须 有一 个 公 用 的 , 没 有 参 数 的 构 造 器 。 这 个 package的名 字 区 别 大 小 写 。 n 4 type=package.class n 如 果 这 个 Bean已 经 在 指 定 的 范 围 中 存 在 , 那 么 赋 予这 个 Bean一 个 的 数 据 开 库 类 型 。 如 果 使 用 type属性 的 同 时 没 有 使 用 class或 beanName, Bean将 不 会被 实 例 化 。 注 意 package和 class的 名 称 区 分 大 小 写 。 79 n 5 beanName=package.cla

29、ss | type=package.class n 使 用 java.beans.Beans.instantiate方 法 来 从 一 个class或 串 行 化 的 模 板 中 实 例 化 一 个 Bean, 同 时 指定 Bean的 类 型 。 Beans.instantiate方 法 将 检 查 此名 称 是 否 表 示 一 个 类 或 一 个 串 行 化 模 板 。 如 果 这 个Bean是 被 串 行 化 的 , 那 么 Beans.instantiate方 法将 通 过 使 用 一 个 类 装 载 器 读 取 串 行 化 格 式 ( 类 似package.class.ser) 。

30、80 n beanName可 以 是 package和 class, 也 可以 是 表 达 式 , 它 的 值 会 传 给Beans.instantiate方 法 。 type的 值 可 以和 Bean相 同 , 也 可 以 是 它 的 基 类 , 或 者是 它 所 实 现 的 接 口 。 package和 class 名 字 区 分 大 小 写 。 81 n JSP 语 法 格 式 如 下 : 属 性 :1 name=beanInstanceName bean的 名 字 , 由 指 定 。 2 property=propertyName 所 指 定 的 Bean的 属 性 名 。 82 例

31、子/声 明 引 用 的 beantest Calendar of 83 n 设 置 Bean的 属 性 值 . n JSP 语 法 格 式 如 下 :jsp:setProperty name=beanInstanceName property= * | property=propertyName param=parameterName | property=propertyName value=string | / 84 属 性n 1 name=beanInstanceName n 表 示 已 经 在 “ ” 中 创 建 的Bean实 例 的 名 字 。n 2 property=* n 储 存

32、 用 户 在 jsp输 入 的 所 有 值 , 用 于 匹 配Bean中 的 属 性 。 85 n 3 property=propertyName param=parameterName n 用 一 个 参 数 值 来 指 定 Bean中 的 一 个 属 性 值 ,一 般 情 况 下 是 从 request对 象 中 获 得 的 。 其中 property指 定 Bean的 属 性 名 , param指 定request中 的 参 数 名 。 86 n 4 property=propertyName value=string | n 使 用 指 定 的 值 来 设 定 Bean属 性 。 这

33、个 值 可 以 是 字 符串 , 也 可 以 是 表 达 式 。 如 果 这 个 字 符 串 , 那 么 它 就会 被 转 换 成 Bean属 性 的 类 型 ( 转 换 方 法 见 表 4.1) 。如 果 是 一 个 表 达 式 , 那 么 它 的 类 型 就 必 须 和 将 要 设定 的 属 性 值 的 类 型 一 致 。 n 如 果 参 数 值 为 空 值 , 那 么 对 应 的 属 性 值 也 不 会 被 设定 。 此 外 , 不 能 在 同 一 个 “ ”中 同 时 使 用 param和 value参 数 。 87 package rmg;public class student p

34、rivate long classNo; private String name; private int age; private boolean sexy; public student() /构 造 函 数 classNo=970431; name=ZZZl; age=34; sexy=true; 例 : /建 立 类 rmg.student 88 public long getClassNo() return classNo; public void setClassNo(long no) this.classNo=no; public String getName() return

35、name; public void setName(String name) this.name=name; 89 public int getAge() return age; public void setAge(int age) this.age=age; public boolean getSexy() return sexy; public void setSexy(boolean sexy) this.sexy=sexy; 90 91 92 第 一 次 运 行 结 果 93 以 后 运 行 结 果 第 一 行 发 生 变 化 94 测 试 session作 用 域 95 96 运

36、行 结 果 97 小 结 与 习 题n 本 局 面 集 中 介 绍 了 JSP的 各 种 语 法 , 掌 握 这 些 语 法 使 读者 进 行 JSP开 发 的 基 本 要 求 , 于 一 般 的 网 页 开 发 不 同 ,JSP对 大 小 写 是 敏 感 的 , 这 一 点 要 注 意 , 尤 其 是 对 曾 使用 过 其 他 开 发 语 言 的 读 者 。n 与 Bean相 关 的 几 种 语 法 的 使 用 将 在 “ Bean的 使 用 ” 一章 中 专 门 进 行 讲 解 , 因 此 可 对 照 学 习 。 熟 练 使 用 这 些语 法 是 必 须 的 , 因 此 读 者 应 该 多

37、 加 练 习 , 观 察 不 同 用法 所 产 生 的 效 果 上 的 差 异 。 对 于 给 出 的 例 子 最 好 是 自己 敲 入 文 件 并 观 察 执 行 结 果 。 n 随 后 的 几 章 将 各 有 重 点 的 讲 述 与 语 法 相 关 的 一 些 问题 。 98 习 题n 1 举 例 说 明 HTML注 释 与 隐 藏 注 释 有 何 异 同 。n 2 试 写 一 个 JSP文 件 , 包 含 所 有 JSP语 法 元 素n 3 Scriptlet中 应 遵 循 什 么 样 的 语 法 规 则 ?n 4 元 素 包 含 静 态 文 件 与 包 含 动态 文 件 处 理 上 有

38、 何 不 同 ?n 5 起 到 什 么 样 的 作 用 ? 使 用 时有 哪 些 注 意 事 项 ? n 6 page指 令 能 起 到 那 些 作 用 ? 有 效 范 围 有 多大 ? 99 100 n JSP 有 以 下 九 种 内 置 对 象 , 包 括 :n request, 请 求 对 象n response, 响 应 对 象n pageContext, 页 面 上 下 文 对 象n session, 会 话 对 象n application, 应 用 程 序 对 象n out, 输 出 对 象n config, 配 置 对 象n page, 页 面 对 象 n exception,

39、 例 外 对 象 101 重 点 介 绍n request, 请 求 对 象n session, 会 话 对 象n application, 应 用 程 序 对 象 102 综 述n 有 几 种 对 象 看 起 来 和 ASP的 内 置 对 象 差 不多 , 功 能 也 类 似 , 这 是 因 为 这 些 内 置 对象 的 构 建 基 础 是 标 准 化 的 HTTP协 议 。 如果 使 用 过 ASP, 又 对 Java有 一 定 的 了 解 的话 , 那 么 对 这 几 种 JSP内 置 对 象 的 使 用 应该 能 迅 速 掌 握 。 需 要 注 意 的 问 题 是 对 象名 的 写 法

40、 , 包 括 这 些 对 象 方 法 的 调 用 时也 要 书 写 正 确 , 因 为 Java语 言 本 身 是 大小 写 敏 感 的 。 103 n 从 本 质 上 讲 , JSP的 这 些 内 置 对 象 其 实 都是 由 特 定 的 Java类 所 产 生 的 , 在 服 务 器运 行 时 根 据 情 况 自 动 生 成 , 所 以 如 果 你有 较 好 的 Java基 础 , 可 以 参 考 相 应 的 类说 明 , 表 3.1给 出 了 他 们 的 对 应 关 系 。 更进 一 步 的 讲 解 将 会 在 讲 解 Servlet的 一 章中 展 开 , 如 果 你 的 Java基

41、础 不 太 好 , 可以 先 熟 悉 在 这 一 章 里 所 介 绍 的 各 种 方 法的 使 用 。 104 105 request和 responsen “ request” 对 象 代 表 的 是 来 自 客 户 端 的 请 求 ,例 如 我 们 在 FORM表 单 中 填 写 的 信 息 等 , 是 最常 用 的 对 象 。 关 于 它 的 方 法 使 用 较 多 的 是getParameter、 getParameterNames和getParameterValues, 通 过 调 用 这 几 个 方 法 来获 取 请 求 对 象 中 所 包 含 的 参 数 的 值n “ respo

42、nse” 对 象 代 表 的 是 对 客 户 端 的 响 应 ,也 就 是 说 可 以 通 过 “ response”对 象 来 组 织 发 送到 客 户 端 的 数 据 。 但 是 由 于 组 织 方 式 比 较 底 层 ,所 以 不 建 议 普 通 读 者 使 用 , 需 要 向 客 户 端 发 送文 字 时 直 接 使 用 “ out” 对 象 即 可 。 106 request对 象 示 例 姓 名 107 request对 象 示 例 ( Hello_req.jsp 你 好 , , 今 天 是 号 , 星 期 108 request对 象 示 例 ( 输 出 结 果 ) 你 好 ,独

43、 孤 求 败 , 今 天 是 9号 , 星 期 1 109 pageContextn “ pageContext” 对 象 直 译 时 可 以 称 作 “ 页面 上 下 文 ” 对 象 , 代 表 的 是 当 前 页 面 运 行 的 一些 属 性 , 常 用 的 方 法 包 括 findAttribute、getAttribute、 getAttributesScope和getAttributeNamesInScope, 一 般 情 况 下“ pageContext” 对 象 用 到 得 也 不 是 很 多 , 只 有在 项 目 所 面 临 的 情 况 比 较 复 杂 的 情 况 下 , 才

44、会利 用 到 页 面 属 性 来 辅 助 处 理 。 n 110 session对 象n “ session” 对 象 代 表 服 务 器 与 客 户 端 所建 立 的 会 话 , 当 需 要 在 不 同 的 JSP页 面 中保 留 客 户 信 息 的 情 况 下 使 用 , 比 如 在 线购 物 、 客 户 轨 迹 跟 踪 等 。 “ session” 对象 建 立 在 cookie的 基 础 上 , 所 以 使 用 时 应注 意 判 断 一 下 客 户 端 是 否 打 开 了 cookie。常 用 的 方 法 包 括 getId、 getValue、 getValueNames和 putV

45、alue等 。 111 session对 象n 概 要n HTTP是 无 状 态 ( stateless) 协 议 ;n Web Server 对 每 一 个 客 户 端 请 求 都 没 有 历 史 记 忆 ;n Session用 来 保 存 客 户 端 状 态 信 息 ;n 由 Web Server 写 入 ;n 存 于 客 户 端 ;n 客 户 端 的 每 次 访 问 都 把 上 次 的 session记 录 传 递 给Web Server;n Web Server读 取 客 户 端 提 交 的 session来 获 取 客 户端 的 状 态 信 息 ; 112 session对 象 示

46、例 (Form表 单 Logon_session.html) 姓 名 113 session对 象 示 例 Logon_session.jsp 你 的 名 字 已 经 写 入 session check 114 session对 象 示 例 (Check_session.jsp) 您 还 未 登 录 已 经 登 录 115 application对 象n “ application” 对 象 负 责 提 供 应 用 程 序 在服 务 器 中 运 行 时 的 一 些 全 局 信 息 , 常 用的 方 法 有 getMimeType和 getRealPath等 。 116 outn “ out”

47、对 象 代 表 了 向 客 户 端 发 送 数 据 的 对 象 ,与 “ response” 对 象 不 同 , 通 过 “ out” 对 象 发送 的 内 容 将 是 浏 览 器 需 要 显 示 的 内 容 , 是 文 本一 级 的 , 可 以 通 过 “ out” 对 象 直 接 向 客 户 端 写一 个 由 程 序 动 态 生 成 HTML文 件 。 常 用 的 方 法除 了 pirnt和 println之 外 , 还 包 括 clear、clearBuffer、 flush、 getBufferSize和getRemaining, 这 是 因 为 “ out” 对 象 内 部 包 含了

48、 一 个 缓 冲 区 , 所 以 需 要 一 些 对 缓 冲 区 进 行 操作 的 方 法 。 117 config、 page、 exceptionn “ config” 对 象 提 供 一 些 配 置 信 息 , 常 用 的 方 法有 getInitParameter和 getInitParameterNames,以 获 得 Servlet初 始 化 时 的 参 数 。n “ page” 对 象 代 表 了 正 在 运 行 的 由 JSP文 件 产生 的 类 对 象 , 不 建 议 一 般 读 者 使 用 。n “ exception” 对 象 则 代 表 了 JSP文 件 运 行 时 所

49、产 生 的 例 外 对 象 , 此 对 象 不 能 在 一 般 JSP文 件中 直 接 使 用 , 而 只 能 在 使 用 了 “ ”的 JSP文 件 中 使 用 118 request请 求 对 象n 1 getAttributen 原 型 : public java.lang.Object getAttribute(java.lang.String name)n 说 明 : 以 对 象 的 形 式 返 回 特 定 名 称 的 属性 值 。 这 个 方 法 允 许 Servlet引 擎 给 出 一个 客 户 请 求 的 特 定 信 息 。 ( Servlet为 服务 器 端 小 程 序 ,

50、所 有 JSP页 面 都 事 先 翻 译成 Servlet后 才 执 行 ) 119 request请 求 对 象n 如 果 所 给 名 称 的 属 性 不 存 在 将 返 回 空 值 。n 属 性 名 应 该 遵 循 和 包 命 名 方 式 同 样 的 约定 , 不 要 采 用 如 “ java.*”、 “ javax.*”及 “ sun.*”.这 样 的 命 名 。n 参 数 : name 一 个 标 示 属 性 名 的 字 符 串n 返 回 值 : 一 个 包 含 属 性 值 的 对 象 , 当 属性 不 存 在 是 为 空 。 120 request对 象 使 用 示 例 ( peix

51、un2.11.jsp )request 用 户 登 录 用 户 名 : 密 码 : 121 浏 览 器 类 型 : IE Netscape 资 料 选 项 : 标 题 详 细 122 Post.jsp代 码test%out.println(用 户 名 : +request.getParameter(User)+);out.println(密 码 : +request.getParameter(pwd)+);out.println(浏 览 器 : +request.getParameter(radio)+);out.println(标 题 : +request.getParameter(chec

52、k1)+);out.println(详 细 : +request.getParameter(check2)+);out.println(隐 含 : +request.getParameter(hidden)+); out.println(getContentLength()=+request.getContentLength()+); 123 out.println(getContentType()=+request.getContentType()+);out.println(getRequestURI()=+request.getRequestURI()+);out.println(get

53、ServerPort()=+request.getServerPort()+);out.println(getServerName()=+request.getServerName()+);out.println(getProtocol()=+request.getProtocol()+);out.println(getRemoteAddr()=+request.getRemoteAddr()+);out.println(getHeaderNames()=+request.getHeaderNames()+);out.println(getMethod()=+request.getMethod

54、()+);out.println(getServletPath()=+request.getServletPath()+);out.println(isRequestedSessionIdValid()=+request.isRequestedSessionIdValid()+ );% 124 运 行 结 果 125 126 session对 象 示 例session请 输 入 您 的 姓 名 : 127 post1.jsppost.jsp 您 的 姓 名 是 : 您 最 喜 欢 的 娱 乐 是 : 128 post11.jsppost1.jsp您 的 姓 名 是 : 您 喜 欢 的 娱 乐

55、是 : 129 运 行 结 果 130 提 交 后 131 输 入 值 132 再 次 提 交 ( 保 存 名 字 ) 133 application对 象 运 行 示 例application% out.println(Java Servlet API Version +application.getMajorVersion()+.+application.getMinorVersion()+);out.println(peixun2.13.jsps MIME type is:+application.getMimeType(peixun2.13.jsp)+);out.println(URL

56、 of peixun2.13.jsp is: +application.getResource(“/peixun2.13.jsp)+);out.println(getServerInfo()=+application.getServerInfo()+);out.println(application.getRealPath( );application.log(Add a Record to log_file); % 134 运 行 结 果 135 application对 象 实 现 网 页 计 数 器网 页 计 数 器 您 是 第 位 访 问 者 ! 136 运 行 结 果 (第 一 次

57、访 问 ) 137 刷 新 一 次 138 exception对 象 示 例Error page loginAn error occured in the bean. Error Message is: 139 内 置 对 象 小 结n 全 面 介 绍 了 JSP的 几 种 内 置 对 象 。 熟 练 使用 这 些 内 置 对 象 是 开 发 JSP应 用 程 序 的 基本 要 求 , 尤 其 是 对 于 request、 session和application对 象 更 是 必 须 要 掌 握 的 。n 会 使 用 对 象 所 具 有 的 方 法 , 能 熟 练 使 用每 一 种 对 象 的

58、 几 种 常 用 方 法 。 140 141 Web运 行 原 理 1n 客 户 端 同 Web服 务 器 之 间 的 协 议 为 httpn HTTP为 超 文 本 传 输 协 议n HTPP协 议 为 “ 请 求 和 响 应 ” 协 议n 客 户 端 请 求 包 括 : 请 求 行 、 头 、 信 息 体n 客 户 端 请 求 的 方 法 n GET、 POST、 HEADn DELETE、 TRACE、 PUTn 提 交 表 单 的 方 法 : GET、 POST 142 Web运 行 原 理 2n 服 务 器 接 收 到 请 求 后 , 返 回 HTTP响 应n 每 个 响 应 : 状

59、 态 行 、 头 、 信 息 体n 常 见 状 态n 404 所 请 求 的 文 件 不 存 在n 500 服 务 器 程 序 出 错 n 200 OK 成 功n 信 息 体 用 于 浏 览 器 显 示 143 页 面 访 问 失 败 144 HTML表 单n 表 单 是 具 有 输 入 域 、 文 本 域 的 页 面n 用 于 客 户 端 同 服 务 器 端 交 互n 用 户 在 客 户 端 填 写 表 单 , 然 后 “ 提 交 ”n 表 单 中 的 信 息 发 送 到 服 务 器n 服 务 器 返 回 处 理 情 况 145 HTML表 单 标 记n 表 单 主 标 记n n 表 单 中

60、 的 标 记n n n n n 是 表 单 开 始 标 记 , 结 束 146 表 单 的 例 子 ( peixun2.15.jsp)表 单 用 户 登 录 用 户 名 : 密 码 : 147 运 行 结 果 148 form标 记n 描 述 表 单 的 特 性 , 语 法n method表 单 传 输 方 法n GET方 法 将 表 单 信 息 在 URL后 传 输n POST方 法 将 表 单 信 息 作 为 信 息 体 传 输n action为 表 单 处 理 方 式 , 通 常 为 一 个 URLn enctype为 编 码 方 式 149 标 记n 表 单 中 输 入 信 息 的 区

61、 域n 属 性n type 类 型n name 名 称n id 标 识n maxlength 最 大 字 符 数 n size 输 入 域 宽 度n value 域 的 初 始 值n button 按 钮 用 javascript响 应 150 的 类 型n text 文 本n passwowrd 口 令 方 式n checkbox 多 选 框 name相 同n radio 单 选 按 钮 name相 同n image 图 片n hidden 隐 藏 表 单 发 送 数 据n submit 提 交 按 钮 向 服 务 器 提 交 表 单 n reset 复 位 按 钮 将 表 单 充 置 为

62、初 始 状 态 151 文 本 框 : TEXTAREAn 多 行 文 本 域 : n 参 数n COLS: 宽 度n ROWS: 高 度n NAME: 名 称CPU PIV 1500 Memory 512M 152 下 拉 框 : SELECTn 定 义 列 表 框 : n 参 数n MULTIPLE 可 同 时 选 取 多 行n NAME 名 称n SIZE 可 见 项 目 数n 每 个 项 目 用 option标 记 n 属 性 SELECTED出 现 在 option表 示 选 中 153 select的 例 子 北 京 天 津 上 海 重 庆 154 表 单 提 交n 提 交 方 式

63、 :n submit类 型 按 钮 提 交 表 单n 通 过 普 通 按 钮 的 javascript函 数n 传 输 方 法 依 据 中 的 methodn 推 荐 使 用 POSTn 传 输 编 码 依 据 中 的 enctype n 处 理 方 式 依 据 中 的 action 155 表 单 清 除n reset按 钮 重 置 表 单 为 初 始 值 156 综 合 例 子表 单 用 户 注 册用 户 名 : 密 码 : 你 喜 欢 : 足 球 篮 球 157 性 别 : 男 女 你 的 计 算 机 CPU PIV 1500Memory 512M 你 计 算 机 的 操 作 系 统 1

64、58 你 所 在 地 : 北 京 天 津 上 海 重 庆 159 运 行 结 果 160 表 单 的 确 认n 客 户 端 确 认n 减 少 服 务 器 负 载n 缩 短 用 户 等 待 时 间n 兼 容 性 难n 服 务 器 端 确 认 n 统 一 确 认n 兼 容 性 强n 服 务 器 负 载 重 161 客 户 端 确 认n 采 用 javascript进 行 确 认n 常 用 函 数n isBetweenn isDaten isTime n isDigitn isEmailn isEmptyn isIntn isReal 162 客 户 端 确 认 例 子客 户 端 确 认 用 户 登

65、 录 用 户 名 : 密 码 : 163 function checkform(frm)var flag=true;if(frm.name.value=) alert(姓 名 不 能 为 空 , 请 输 入 值 ! ); frm.name.focus(); flag=false; return flag; 164 运 行 结 果 165 166 167 n 可 以 获 得 文 本 框 、 文 本 区 域 、 单 选 、 多选 的 值n 表 单 中 各 元 素 的 NAME属 性 是 它 的 唯 一 标识 , 用 它 获 取 参 数 。n 参 考 peixun2.11.jsp及 post.jso

66、request.getParameter(User); 168 向 客 户 端 输 出n 使 用 内 置 对 象 outout.println(content)n 使 用 “ =”n 参 看 peixun2.11.jsp和 post.jspout.println(用 户 名 : +User+); n 参 看 peixun2.14.jsp您 是 第 位 访 问 者 ! 169 表 单 的 服 务 器 端 确 认n 在 客 户 端 不 能 用 JSP进 行 确 认n 分 工 : 数 据 处 理 在 服 务 器 端n 实 效 性 : 客 户 端 得 到 服 务 器 确 认 后 表 明数 据 已 经 到 达 服 务 器n 客 户 端 兼 容 性 好n 缺 点 : 加 大 服 务 器 负 载 和 用 户 等 待 时 间 170 服 务 器 端 确 认 方 法n 采 用 Java类 对 表 单 数 据 进 行 复 杂 的 检 查n 采 用 JSP进 行 确 认 171 服 务 器 端 确 认 的 例 子服 务 器 端 确 认 用 户 登 录 用 户 名 : 密 码 : 172 loginActio

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!