Microsoft PowerPoint - 11-page-Directive-Chinese.ppt

Similar documents
エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

Microsoft Word - 01.DOC

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

新・解きながら学ぶJava

untitled

JSP基础编程

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

(CIP) Web /,. :, ISBN X.W T P393.4 CIP (2004) Web ( ) ( / ) : * 787

3.1 num = 3 ch = 'C' 2

Chapter 9: Objects and Classes

EJB-Programming-4-cn.doc

第十一届“21世纪杯”全国中小学生英语演讲比赛

060522達文西密碼_全_.PDF

基于CDIO一体化理念的课程教学大纲设计

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

A-1 HTML A-1-1 HTML 1 HTML JSP HTML HTML HTML JSP A HTML HTML HTML HTML HTML HTML HTML HTML.htm.html HTML Windows NotePad HTML IE [ / ] NotePad A-2

jsp

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Java

无类继承.key

Microsoft Word - ISPI_CATALOG_BOOKLETS_ _Final.doc

untitled

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

RUN_PC連載_8_.doc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

约 伯 记 : 约 伯 记 : 惟 有 我 一 人 逃 脱, 来 报 信 给 你 他 还 说 话 的 时 候, 又 有 人 来 说 : 你 的 儿 女 正 在 他 们 长 兄 的 家 里 吃 饭 喝 酒, 不 料, 有 狂 风 从 旷 野 刮 来, 击 打 房 屋 的 四 角, 房 屋 倒 塌 在

加 拉 太 书 :8 2 加 拉 太 书 2:4 8 过 了 三 年, 才 上 耶 路 撒 冷 去 见 矶 法, 和 他 同 住 了 十 五 天 9 至 于 别 的 使 徒, 除 了 主 的 兄 弟 雅 各, 我 都 没 有 看 见 20 我 写 给 你 们 的 不 是 谎 话, 这 是 我 在 神

D getinitparameternames() 9 下 列 选 项 中, 属 于 Servlet API 中 提 供 的 request 对 象 的 包 装 类 的 是 ( ) A HttpServletRequestWrapper B HttpServletRequest C HttpServ

秘密大乘佛法(下)

國立臺東高級中學102學年度第一學期第二次期中考高一國文科試題

Page 2 of 12

Microsoft Word - Sunday

鎶ョ焊0

!! :!!??!!?!??!!!... :... :'?'?! :' ' :'?' :'?' :'!' : :? Page 2

<D2B0D0C4D3C5D1C52DC8CED6BEC7BF202D20BCC7CAC2B1BE>

前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii

ch_code_infoaccess

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

( 总 第 1073 期 ) 浙 江 省 人 民 政 府 主 办 2015 年 3 月 17 日 出 版 省 政 府 令 省 政 府 文 件 目 录 浙 江 省 大 型 群 众 性 活 动 安 全 管 理 办 法 ( 浙 江 省 人 民 政 府 令 第 333 号 ) (3) 浙 江 省 人 民 政

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

untitled

RUN_PC連載_10_.doc

特 别 提 示 一 依 据 中 华 人 们 共 和 国 证 券 法 ( 以 下 简 称 证 券 法 ) 上 市 公 司 收 购 管 理 办 法 ( 以 下 简 称 收 购 办 法 ) 公 开 发 行 证 券 的 公 司 信 息 披 露 内 容 与 格 式 准 则 第 15 号 权 益 变 动 报 告

HK 08/ HK 09/ HK 03/ HK 01/ HK 05/ HK 05/ HK 05/

HK 05/ HK 08/ HK 11/ HK 03/ HK 09/ HK 03/ HK 09/

HK 11/ HK 01/ HK 07/ HK 07/ HK 08/ HK 03/ HK 11/

Servlet

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

强迫症毁灭天才

Microsoft Word - 第3章.doc

万 法 归 宗 :20 跟 随 守 正, 就 是 好, 反 正 能 捞 钱 就 是 好 万 法 归 宗 :13 今 天 我 知 道 要 收 回 去, 为 什 么, 看 看 东 方 财 富 和 乐 视 就 知 道 了, 要 有 说 法 了, 下 一

Microsoft Word - (web)_F.1_Notes_&_Application_Form(Chi)(non-SPCCPS)_16-17.doc

黔卫计发〔2015〕4号(两单位)(人事处)-网络版

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

RxJava

國家圖書館典藏電子全文

1

<4D F736F F D D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63>

xueshu004.doc

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

untitled

0704

Microsoft Word G...doc

Transcription:

2004 Marty Hall 控制所生成的 servlet 的结构 :JSP page 指令 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com Available in English, Chinese (simplified and traditional script), and 12 other languages 议程 page 指令的用途 指定导入类 指定页面的 MIME 类型 生成 Excel 电子表格 会话的共享 设置输出缓冲区的大小和行为 指定处理 JSP 错误的页面 控制线程的行为 3 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

page 指令的用途 为根据 JSP 页面生成的 servlet 指定高层的信息 能够控制 导入哪些类 该 servlet 扩展哪个类 产生哪种 MIME 类型 如何处理多线程 servlet 是否共享会话 输出缓冲区的大小的行为 由哪个页面来处理意外的错误 4 JSP/servlet/Struts/JSF training: http://www.coreservlets.com import 属性 <%@ page import="package.class" <%@ page import="package.class1,...,package.classn" 在 servlet 定义的顶部生成导入语句 尽管 JSP 页面几乎可以放在服务器的任何位置, 但由 JSP 使用的类必须放在常规的 servlet 目录中 例如 : /WEB-INF/classes 或 /WEB-INF/classes/directoryMatchingPackage 由 JSP 使用的实用工具类一定要使用包! 5 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

使用包的重要性 系统会认为 SomeHelperClass 和 SomeUtilityClass 在哪个包中呢?... public class SomeClass { public String somemethod(...) { SomeHelperClass test = new SomeHelperClass(...); String somestring = SomeUtilityClass.someStaticMethod(...);... } } 6 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 使用包的重要性 ( 续 ) 系统会认为 SomeHelperClass 和 SomeUtilityClass 在哪个包中呢?... <% SomeHelperClass test = new SomeHelperClass(...); String somestring = SomeUtilityClass.someStaticMethod(...); 7 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

import 属性 : 示例 ( 代码 ) <H2>The import Attribute</H2> <%@ page import="java.util.*,coreservlets.*" <%! private String randomid() { int num = (int)(math.random()*10000000.0); return("id" + num); } private final String NO_VALUE = "<I>No Value</I>"; <% String oldid = CookieUtilities.getCookieValue(request, "userid", NO_VALUE); if (oldid.equals(no_value)) { String newid = randomid(); Cookie cookie = new LongLivedCookie("userID", newid); response.addcookie(cookie); } This page was accessed on <%= new Date() with a userid cookie of <%= oldid. </BODY></HTML> 8 JSP/servlet/Struts/JSF training: http://www.coreservlets.com import 属性 : 示例 ( 结果 ) 9 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

contenttype 和 pageencoding 属性 <%@ page contenttype="mime-type" <%@ page contenttype="mime-type; charset=character-set" <%@ page pageencoding="character-set" 指定由 JSP 页面生成的 servlet 生成的页面的 MIME 类型 属性值不能在请求期间计算得出 常见 MIME 类型的表格, 参见介绍响应报头的章节 10 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 生成 Excel 电子表格 First Last Email Address Marty Hall hall@coreservlets.com Larry Brown brown@coreservlets.com Steve Balmer balmer@ibm.com Scott McNealy mcnealy@microsoft.com <%@ page contenttype="application/vnd.ms-excel" <%-- There are tabs, not spaces, between cols. -- 11 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

条件性地生成 Excel 电子表格 不能使用 contenttype 属性完成这项任务, 因为我们不能根据条件生成 contenttype 下面的代码产生的一定是 Excel MIME 类型 <% boolean usingexcel = checkuserrequest(request); <% if (usingexcel) { <%@ page contenttype="application/vnd.ms-excel" <% } 解决方案 : 使用常规的 JSP scriptlet, response.setcontenttype 语句 12 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 条件性地生成 Excel 电子表格 ( 代码 ) <BODY> <CENTER> <H2>Comparing Apples and Oranges</H2> <% String format = request.getparameter("format"); if ((format!= null) && (format.equals("excel"))) { response.setcontenttype("application/vnd.ms-excel"); } <TABLE BORDER=1> <TR><TH></TH> <TH>Apples<TH>Oranges <TR><TH>First Quarter <TD>2307 <TD>4706 <TR><TH>Second Quarter<TD>2982 <TD>5104 <TR><TH>Third Quarter <TD>3011 <TD>5220 <TR><TH>Fourth Quarter<TD>3055 <TD>5287 </TABLE> </CENTER></BODY></HTML> 13 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

条件性地生成 Excel 电子表格 ( 结果 ) 14 JSP/servlet/Struts/JSF training: http://www.coreservlets.com session 属性 <%@ page session="true" <%-- Default -- <%@ page session="false" 指定页面不是会话的一部分 默认地, 它是属于会话 如果网站的流量较大, 可以节省服务器端的内存 要想真正起到作用, 所有的相关网页都必须这样做 15 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

iselignored 属性 <%@ page iselignored="false" <%@ page iselignored="true" 控制是否应该忽略 JSP 2.0 表达式语言 (EL)(true), 还是应该正常求值 (false) 如果您的 web.xml 指定 servlets 2.3( 对应 JSP 1.2) 或更早的版本, 默认值为 true 但改变默认值依旧是合法的 在 JSP-2.0- 兼容的服务器上, 不管 web.xml 的版本如何, 都可以使用这个属性 如果您的 web.xml 指定 servlets 2.4( 对应 JSP 2.0) 或更新的版本, 默认值为 false 16 JSP/servlet/Struts/JSF training: http://www.coreservlets.com buffer 属性 <%@ page buffer="sizekb" <%@ page buffer="none" 指定 out 变量所使用的缓冲区的大小 通过缓冲, 我们甚至能够在某些页面内容已经生成后再去设置 HTTP 报头 ( 只要缓冲区没有被充满或被显式地清空 ) 服务器可以使用比请求的大小更大的缓冲区, 但不会小于所请求的大小 默认值和系统相关, 但至少 8kb 17 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

errorpage 属性 <%@ page errorpage="relative URL" 指定一个 JSP 页面, 抛出的任何异常如果未在当前页面内被捕获, 则由该页面进行处理 指定的错误处理页面可以通过 exception 变量来访问所抛出的异常 web.xml 文件允许我们指定适用于整个应用的错误页面, 当任何确定的异常或确定的 HTTP 状态代码产生时, 都会使用该页面来处理 errorpage 属性仅用于指定特定页面的错误页面 18 JSP/servlet/Struts/JSF training: http://www.coreservlets.com iserrorpage 属性 <%@ page iserrorpage="true" <%@ page iserrorpage="false" <%-- Default -- 标示当前页面是否可以作为其他 JSP 页面的错误页面 名为 exception 的新预定义变量会被创建, 并能够在错误页面中对其进行访问 只能将其作为紧急备份 ; 明确地处理尽可能多的各种异常 不要忘记一定要检查查询数据中的值是否缺失或异常 19 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

错误页面 : 示例 <BODY> <%@ page errorpage="/web-inf/speederrors.jsp" <TABLE BORDER=5 ALIGN="CENTER"> <TR><TH CLASS="TITLE">Computing Speed</TABLE> <%! private double todouble(string value) { return(double.parsedouble(value)); } <% double furlongs = todouble(request.getparameter("furlongs")); double fortnights = todouble(request.getparameter("fortnights")); double speed = furlongs/fortnights; <UL> <LI>Distance: <%= furlongs furlongs. <LI>Time: <%= fortnights fortnights. <LI>Speed: <%= speed furlongs per fortnight. </UL> </BODY></HTML> 20 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 错误页面 : 示例 ( 续 ) <BODY> <%@ page iserrorpage="true" <TABLE BORDER=5 ALIGN="CENTER"> <TR><TH CLASS="TITLE"> Error Computing Speed</TABLE> <P> ComputeSpeed.jsp reported the following error: <I><%= exception </I>. This problem occurred in the following place: <PRE> <%@ page import="java.io.*" <% exception.printstacktrace(new PrintWriter(out)); </PRE> </BODY></HTML> 21 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

错误页面 : 结果 22 JSP/servlet/Struts/JSF training: http://www.coreservlets.com isthreadsafe 属性 <%@ page isthreadsafe="true" <%-- Default -- <%@ page isthreadsafe="false" 用来告诉系统什么时候您的代码不是线程安全的, 从而, 系统能够阻止并发的访问 一般用以告诉 servlet 实现 SingleThreadModel 要尽可能避免这种用法 某些情况下会带来性能上的损失 另一些情况可能会得到不正确的结果 23 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

非线程安全代码的例子 (ID 必须惟一 ) 下面的代码有什么问题呢? <%! private int idnum = 0; <% String userid = "userid" + idnum; out.println("your ID is " + userid + "."); idnum = idnum + 1; 24 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 此处需要 isthreadsafe 吗? 不需要! <%! private int idnum = 0; <% synchronized(this) { String userid = "userid" + idnum; out.println("your ID is " + userid + "."); idnum = idnum + 1; } 在高业务量环境中可以获得较好的性能 如果服务器使用实例共享的方案, 则 isthreadsafe="false" 会完全失败 25 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

extends 属性 <%@ page extends="package.class" 指定由 JSP 页面转换而成的 servlet 的父类 使用时要极端小心 可能阻止系统使用高性能的定制超类 (superclasses) 典型的目的是让用户扩展由服务器供应商提供的类 ( 举例来说, 为支持个性化的特性而提供的类 ), 而不是扩展您自己的类 26 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 小结 import 属性 改变由 JSP 页面生成的 servlet 导入的类 实用工具类一定要使用包! contenttype 属性 指定结果的 MIME 类型 不能根据条件来使用 要想条件性地设置 MIME 类型, 请使用 <% response.setcontenttype(...); errorpage 和 iserrorpage 属性 指定 紧急情况 错误处理页面 isthreadsafe 属性 关闭并行访问 请使用显式的同步, 而非这个属性 27 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

2004 Marty Hall 问题? JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 28 JSP and Servlet Books from Sun Press: http://www.coreservlets.com Available in English, Chinese (simplified and traditional script), and 12 other languages