Microsoft PowerPoint - 06-Response-Headers-Chinese.ppt

Similar documents
Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt

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

Microsoft PowerPoint - 04-Request-Headers-Chinese.ppt

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

Servlet

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

ebook4-12

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

一 专 业 名 称 专 业 名 称 : 会 计 二 入 学 要 求 与 基 本 学 制 入 学 要 求 : 初 中 毕 业 生 基 本 学 制 : 三 年 ; 其 中 前 二 年 为 在 校 学 习 时 间, 最 后 一 年 为 企 业 实 习 时 间 层 次 : 中 职 三 培 养 目 标 本 专

教学内容(含课程内容体系结构;教学内容组织方式与目的;实践性教学的设计思想与效果)

Microsoft PowerPoint - 10-JSP-Scripting-Elements-Chinese.ppt

Microsoft PowerPoint - 08-Session-Tracking-Chinese.ppt

untitled

Microsoft PowerPoint - 07-Cookies-Chinese.ppt

Microsoft Word - 01.DOC

untitled

jsp

XXXXXXXX

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

文化局-黃龜理數位博物館建置之探討

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

内刊5期.FIT)

因 應 碩 士 班 報 名 費 減 收 情 形, 擬 訂 酌 減 招 生 試 務 工 作 費 配 套 措 施, 提 送 招 生 委 員 會 討 論 四 法 規 增 修 訂 案 : 1. 運 動 績 優 生 輔 導 管 理 辦 法 ( 訂 定 ) 2. 磨 課 師 (MOOCs) 計 畫 推 動 小

JavaIO.PDF

Microsoft Word 样章.dot

Microsoft PowerPoint - 09-JSP-Intro-Chinese.ppt

<4D F736F F D A67EB2C438A6B8ACF9B875B9B5A448ADFBBAC2B8D5C2B2B3B9A15DA5BBC2B2B3B9A477BA49A4EEB3F8A657A15E>

TopTest_Adminstrator.doc

<4D F736F F D B77CC4B3ACF6BFFD2DB0D3B77EC2B2B3F8C2BEBAD82E646F63>

中国证券业协会远程培训系统

ebook42-13

EJB-Programming-4-cn.doc

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

SCTWhiteBoard V1

一、单项共29题,每小题2分,共58分.

设计模式 Design Patterns

使 用 本 说 明 书 感 谢 您 购 买 三 星 手 机 本 手 机 基 于 三 星 的 高 科 技 和 高 标 准, 为 您 提 供 高 品 质 的 移 动 通 信 和 娱 乐 享 受 本 使 用 说 明 书 专 门 用 于 指 导 您 了 解 手 机 的 功 能 与 特 性 使 用 手 机 之

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

4-4

Microsoft Word - 12.doc

LiveBOS产品白皮书

F477

2 SGML, XML Document Traditional WYSIWYG Document Content Presentation Content Presentation Structure Structure? XML/SGML 3 2 SGML SGML Standard Gener

英语专业(中英文)

新疆医科大学

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

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

Microsoft Word htm

第壹拾篇

EJB-Programming-3.PDF

ebook40-16

03 最 新 計 算 機 概 論 3-1 文 字 表 示 法 (multimedia) (text) (image) (audio) (video) (text) (bit pattern) ASCII (American Standard Code for In

Microsoft PowerPoint - ch6 [相容模式]

untitled

1. ( B ) IT (A) (B) (C) (D) 2. ( A ) (A) (B) (C) (D) 3. ( B ) (A) GPS (B) GIS (C) ETC (D) CAI 4. ( D ) (A) (B) (C) (D) 5. ( B ) (Stored Program) (A) H

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

JSP基础编程

前言 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

目 录 1. 业 务 流 程 系 统 开 发 面 临 的 挑 战 与 机 遇 业 务 流 程 管 理 新 一 代 开 源 业 务 流 程 开 发 平 台 BPMX BPMX3 是 什 么 为 什 么 要 优 先 采 用 BPMX

WinMDI 28

AUCWA0501p00A.indd

epub 61-2

經濟統計資料庫管理資訊系統

untitled

Guava学习之Resources

Microsoft PowerPoint - 03-Form-Data-Chinese.ppt

(Microsoft Word - \304\365\251j\261M\246\322\274\320\267\307_\245\376__9708.doc)

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的

中華民國九十三年 月 日


附件1

OpenOffice.org OpenOffice.org OpenOffice OpenOffice OOo OpenOffice.org 1. Writer MS Word.odt 2. Calc MS Excel.ods 3. Impress MS PowerPoint.odt 4. Base

p.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2.

1. 2. Flex Adobe 3.

百色人才网事业单位百色市中级人民法院2013年招聘人员工作公告招聘

第 3 章 数 据 在 计 算 机 中 的 表 示 43 在 进 位 计 数 制 中 有 数 码 数 位 ( 位 置 ) 基 数 和 位 权 等 用 语 数 码 是 在 一 个 计 数 制 中 用 来 表 示 数 值 的 符 号 ; 数 位 是 指 数 码 在 一 个 数 中 所 处 的 位 置 ;

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

RUN_PC連載_8_.doc

使用 Scene7 Media Portal

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

Microsoft Word - 04.doc

ebook65-20

F477

上海市教育考试院关于印发新修订的

認識visio2000

大连理工大学专业学位硕士学位论文

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

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

無障礙網頁開發規範二版(草案)

2 从 事 道 工 程 专 教 道 工 程 工 程 测 量 轨 道 交 通 工 程 道 桥 土 木 工 程 本 科 30 ; ; 本 科 毕 生 要 求 具 有 2 年 及 岗 位 所 需 专 中 级 及 专 称 具 有 本 专 二 级 及 建 造 师 执 资 格 证 书 者 优 先, 需 要 经

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

ebook70-19

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

前言

LiveBOS产品白皮书

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>


学 院 人 才 培 养 分 项 自 评 报 告 结 果 汇 总 表 主 要 评 估 指 标 关 键 评 估 要 素 自 评 等 级 1.1 学 校 事 业 发 展 规 划 合 格 1. 领 导 作 用 1.2 办 学 目 标 与 定 位 合 格 1.3 对 人 才 培 养 重 视 程 度 合 格 1

Transcription:

2004 Marty Hall 服务器响应的生成 : HTTP 响应报头 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 议程 HTTP 响应的格式 设置响应报头 响应报头适用于什么用途 构建 Excel 电子表格 动态生成 JPEG 图像 向浏览器发送增量更新 3 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

HTTP 请求 / 响应 请求 响应 GET /servlet/somename HTTP/1.1 Host:... Header2:...... HeaderN: (Blank Line) HTTP/1.1 200 OK Content-Type: text/html Header2:...... HeaderN:... (Blank Line) <!DOCTYPE...> <HTML> <HEAD>...</HEAD> <BODY>... </BODY></HTML> 4 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 任意响应报头的设置 public void setheader(string headername, String headervalue) 设定任意的报头 public void setdateheader(string name, long millisecs) 将自 1970 年以来的毫秒数转换成 GMT 格式日期字符串 public void setintheader(string name, int headervalue) 可以省去在调用 setheader 之前将 int 转换成字符串的麻烦 addheader, adddateheader, addintheader 增加新报头, 而非替换已有的报头 5 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

普通响应报头的设置 setcontenttype 设定 Content-Type 报头 servlet 几乎总会用到这个报头 参见常见 MIME 类型的表格 setcontentlength 设定 Content-Length 报头 用于持续性 HTTP 连接 参见 Connection 请求报头 addcookie 为 Set-Cookie 报头增加一个值 参见介绍 cookie 的部分 sendredirect 设定 Location 报头 ( 以及改变状态代码 ) 6 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 常见 MIME 类型 类型 含意 application/msword Microsoft Word document application/octet-stream Unrecognized or binary data application/pdf Acrobat (.pdf) file application/postscript PostScript file application/vnd.ms-excel Excel spreadsheet application/vnd.ms-powerpoint Powerpoint presentation application/x-gzip Gzip archive application/x-java-archive JAR file application/x-java-vm Java bytecode (.class) file application/zip Zip archive audio/basic Sound file in.au or.snd format audio/x-aiff AIFF sound file audio/x-wav Microsoft Windows sound file audio/midi MIDI sound file text/css HTML cascading style sheet text/html HTML document text/plain Plain text text/xml XML document image/gif GIF image image/jpeg JPEG image image/png PNG image image/tiff TIFF image video/mpeg MPEG video clip video/quicktime QuickTime video clip 7 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

常见 HTTP 1.1 响应报头 Cache-Control (1.1) 和 Pragma (1.0) no-cache 值阻止浏览器缓存页面 Content-Disposition 通过这个报头, 可以请求浏览器询问用户将响应存储到磁盘上给定名称的文件中 Content-Disposition: attachment; filename=file-name Content-Encoding 文档的编码方式 参见之前压缩的例子 Content-Length 响应中的字节数 参见前面幻灯片中的 setcontentlength 使用 ByteArrayOutputStream 在发送文档前对文档进行缓冲, 这样才能够确定数据的大小 参见有关 Connection 请求报头的讨论 8 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 常见 HTTP 1.1 响应报头 ( 续 ) Content-Type 返回文档时所采用的 MIME 类型 使用 setcontenttype 设置这个报头 Expires 特定的一段时间, 这段时间后应该将文档认作是过期, 不应该再继续缓存 使用 setdateheader 设置这个报头 Last-Modified 文档最后被改动的时间 不要直接设置这个报头 ; 而应该提供 getlastmodified 方法 参见书中的博彩数字的例子 ( 第 3 章 ) 9 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

常见 HTTP 1.1 响应报头 ( 续 ) Location 浏览器应该重新连接到的 URL 不要直接设置这个报头, 而要使用 sendredirect 进行设定 Refresh 多少秒后浏览器应该重新载入页面 同时还可以包括应该连接到的 URL 参见后面的例子 Set-Cookie 浏览器应该记下来的 cookie 不要直接设置这个报头 ; 而应该使用 addcookie 参见下一节 WWW-Authenticate 授权的类型和范围需要在 Authorization 报头中给出 参见 More Servlets & JSP 中有关安全的章节 10 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 构建 Excel 电子表格 public class ApplesAndOranges extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype ("application/vnd.ms-excel"); PrintWriter out = response.getwriter(); out.println("\tq1\tq2\tq3\tq4\ttotal"); out.println ("Apples\t78\t87\t92\t29\t=SUM(B2:E2)"); out.println ("Oranges\t77\t86\t93\t30\t=SUM(B3:E3)"); 11 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

构建 Excel 电子表格 12 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 处理长时间运行的 servlet 时我们需要下述内容 : 不同请求间存储数据的方式 对于不专门针对任意某个客户的数据, 可以将它存储在 servlet 的字段中 ( 实例变量 ) 对于专属于某个用户的数据, 则要将它存储在 HttpSession 对象中 参见随后有关会话跟踪的课程 对于需要为其他 servlet 或 JSP 页面访问的数据 ( 和用户无关 ), 可将其存储到 ServletContext 中 在响应发送给用户之后, 保持计算继续运行的方法 这项任何比较简单 : 启动一个线程 唯一要注意的是 : 将线程的优先级设为比较低的值, 这样才不会拖慢整个服务器的运行 在更新结果就绪后将它们发送给浏览器的方法 使用 Refresh 报头告诉浏览器, 让它请求更新 13 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

servlet 状态的持续以及页面的自动重载 : 示例 计划 : 生成大质数 ( 比如 150 位数字 ) 的列表 在计算结束之前显示不完全的结果 让新的客户能够使用其他客户已有的结果 演示 Refresh 报头的应用 展示对于 servlet 来说跨请求维护状态是多么容易 在传统的 CGI 中很难做到 同时阐明 servlet 能够处理多个同时发生的连接 每个请求在单独的线程中处理 14 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 查找公钥密码学使用的质数 public class PrimeNumberServlet extends HttpServlet { private ArrayList primelistcollection = new ArrayList(); private int maxprimelists = 30; public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { int numprimes = ServletUtilities.getIntParameter(request, "numprimes", 50); int numdigits = ServletUtilities.getIntParameter(request, "numdigits", 120); PrimeList primelist = findprimelist(primelistcollection, numprimes, numdigits); 15 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

查找公钥密码学使用的质数 if (primelist == null) { primelist = new PrimeList(numPrimes, numdigits, true); // Multiple servlet request threads share the instance // variables (fields) of PrimeNumbers. So // synchronize all access to servlet fields. synchronized(primelistcollection) { if (primelistcollection.size() >= maxprimelists) primelistcollection.remove(0); primelistcollection.add(primelist); ArrayList currentprimes = primelist.getprimes(); int numcurrentprimes = currentprimes.size(); int numprimesremaining = (numprimes - numcurrentprimes); boolean islastresult = (numprimesremaining == 0); if (!islastresult) { response.setintheader("refresh", 5); 16 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 查找公钥密码学使用的质数 17 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

查找公钥密码学使用的质数 18 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 使用 servlet 生成 JPEG 图像 1. 创建一个 BufferedImage 2. 在 BufferedImage 上绘制内容 3. 设置 Content-Type 响应报头 response.setcontenttype("image/jpeg"); 4. 获取输出流 OutputStream out = response.getoutputstream 5. 以 JPEG 格式将 BufferedImage 发送到输出流 try { ImageIO.write(image, "jpg", out); catch(ioexception ioe) { System.err.println("Error writing JPEG file: " + ioe); 19 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

使用 servlet 生成 JPEG 图像 20 JSP/servlet/Struts/JSF training: http://www.coreservlets.com 使用 servlet 生成 JPEG 图像 21 JSP/servlet/Struts/JSF training: http://www.coreservlets.com

小结 许多 servlet 任务只能通过使用 HTTP 响应报头来完成 响应报头的设置 : 一般地, 使用 response.setheader 进行设定 特殊情况下, 使用 response.setcontenttype, response.setcontentlength,response.addcookie, 和 response.sendredirect 直接设置的一些最重要的响应报头 : Cache-Control 和 Pragma Content-Disposition Content-Encoding Content-Length Expires Refresh WWW-Authenticate 22 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 23 JSP and Servlet Books from Sun Press: http://www.coreservlets.com Available in English, Chinese (simplified and traditional script), and 12 other languages