第4章 JSP元素與隱含物件 4-1 JSP的腳本元素 4-2 JSP的指引元素 4-3 JSP的動作元素 4-4 JSP的隱含物件

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

第 4 章 JSP 内置对象 本章主要内容:  内置对象的概念  内置对象的作用域和生命期  内置对象的作用和关系  内置对象的使用方法.
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
Java Web 开发 授课人:张鸽. 第三讲 JSP 内置对象  JSP 有以下九种内置对象,包括:  ·request ,请求对象  ·response ,响应对象  ·pageContext ,页面上下文对象  ·session ,会话对象  ·application ,应用程序对象.
LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
第一單元 建立java 程式.
第7章 JSP的表單處理與Cookie 7-1 JSP狀態管理的基礎 7-2 URL參數傳遞 7-3 HTML表單欄位處理
計算機程式語言實習課.
第五章 JSP程式設計基礎.
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第19章 Java Servlet程式設計 19-1 Java的Web應用程式架構 19-2 Java Servlet的基礎
Ch08 ASP.NET的HTTP物件 網頁程式設計.
Hello World 體驗實作第一個JSP程式.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
专题4:JSP脚本和指令.
JDK 安裝教學 (for Win7) Soochow University
JAVA 程式設計與資料結構 第六章 輸出與輸入.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
Working with Databases (II) 靜宜大學資管系 楊子青
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
R教學 安裝RStudio 羅琪老師.
安裝JDK 安裝Eclipse Eclipse 中文化
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
網頁切換移轉 JS vs. ASP.NET.
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
系統設定 IE8相容性檢視
Java 程式設計 講師:FrankLin.
FTP檔案上傳下載 實務與運用.
網頁切換移轉 JS vs. ASP.NET.
表單(Form).
Topic Introduction—RMI
第一單元 建立java 程式.
VS.NET 2003 IDE.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
Ch20. 計算器 (Mac 版本).
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
第 19 章 XML記憶體執行模式.
HTML – 超連結與圖片 資訊教育.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
表格(HTML – FORM).
如何利用範本來製作網頁.
VS.NET 2003 IDE.
GridView.
如何使用Gene Ontology 網址:
探測工具:NetCat.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
MicroSim pspice.
利用 EditorConfig 自訂文字編輯器設定
表格(HTML – FORM)
挑戰C++程式語言 ──第7章 輸入與輸出.
MiRanda Java Interface v1.0的使用方法
陣列與結構.
Dreamweaver 進階網頁製作 B 許天彰.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
Brief Guide of FrontPage
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
第五章 自訂佈景主題與文字處理 講授者:詹雅愔.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
HTML表单 JSP借由标签所构成的表单区块中,取得用户在其中特定字段输入的数据內容 。 JSP 动态网页新技术.
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
Chapter 4 Multi-Threads (多執行緒).
第5章 表达式语言.
第4章 JSP动态网页设计基础 教学目标 教学重点 教学过程 2019年10月21日.
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
第四章 jsp语法 4.1 jsp页面的基本结构 一个jsp页面可由五种元素组合而成: 普通的html标记符
InputStreamReader Console Scanner
Presentation transcript:

第4章 JSP元素與隱含物件 4-1 JSP的腳本元素 4-2 JSP的指引元素 4-3 JSP的動作元素 4-4 JSP的隱含物件 4-5 Servlet相關的page和config物件 4-6 out物件的輸出與緩衝區處理 4-7 response物件的標頭和快取處理 4-8 物件範圍的變數存取

4-1 JSP的腳本元素 4-1-1 JSP腳本元素的基礎 4-1-2 Declarations元素 – 宣告變數 4-1-3 Declarations元素 – 宣告Java方法

4-1 JSP的腳本元素 JSP程式檔案的內容主要分為HTML標籤的範本本文和JSP元素兩大部分,如下所示: 範本本文(Template Text):這部分是直接送到客戶端瀏覽程式顯示的資料,主要是指靜態網頁內容的HTML標籤或一般文字內容,用來作為網頁內容的範本(因為我們是在HTML標籤中插入動態顯示的JSP元素)。 JSP元素(JSP Elements):JSP元素是JSP容器需要處理或翻譯成Servlet程式碼的部分,可以分為腳本元素(Scripting Elements)、指引元素(Directive Elements)和動作元素(Action Elements)三種。

4-1-1 JSP腳本元素的基礎-說明 JSP程式架構是為了方便我們開發Servlet程式,所以JSP程式需要翻譯成Servlet類別檔的程式碼,然後在Servlet容器編譯和執行,翻譯成的Servlet程式檔案是一個類別檔案,Resin是繼承自JavaPage類別,Tomcat是繼承自HttpJspBase類別,這兩個類別都實作Servlet介面。

4-1-1 JSP腳本元素的基礎-Servlet類別檔 JSP腳本元素(Scripting Elements)翻譯成Servlet類別檔的說明,如下所示: Expression和Scriptlets元素:Java程式碼片斷是翻譯成置於_jspService()方法之中的程式碼。 Declarations元素:翻譯成類別的實例變數和方法(或稱為物件屬性)。

4-1-1 JSP腳本元素的基礎-呼叫過程 Servlet類別的_jspService()方法並不能覆寫(Overridden),不過我們可以在Declarations元素宣告jspInit()和jspDestroy()方法來初始JSP和結束JSP的執行,如下圖所示:

4-1-1 JSP腳本元素的基礎-處理HTTP請求和回應 因為Servlet支援多執行緒,各執行緒的_jspService()方法都可以負責處理HTTP請求和回應,如下圖所示:

4-1-2 Declarations元素 – 宣告變數(說明) JSP的Declarations元素是位在"<%!"和"%>"符號之間的程式碼,Declarations元素並不會產生輸出,其宣告的變數將翻譯成Servlet的實例變數,如下所示: <%! int pageCount = 0; %>

4-1-2 Declarations元素 – 宣告變數(範圍) 對比在Scriptlets元素宣告的變數,以Servlet類別檔來說,如下所示: Declarations元素宣告的變數:Servlet實例的全域變數,所有提出請求同一頁JSP程式的每位使用者都可以存取這些變數。 Scriptlets元素宣告的變數:_jspService()方法的區域變數,只有請求JSP程式的這位使用者可以存取此變數。

4-1-3 Declarations元素 – 宣告Java方法(說明) JSP程式的Declarations元素還可以宣告Java方法(在Scriptlets元素不可以宣告方法,因為程式碼會轉換置於_jspService()方法),不過在使用上有一些限制,宣告的方法並不能直接存取本章後的JSP隱含物件,換句話說,我們只能用來建立JSP程式所需的一些工具函數。

4-1-3 Declarations元素 – 宣告Java方法(範例) 在Declarations元素宣告的方法是翻譯成Servlet的實例方法。例如:溫度轉換的convert()方法,如下所示: <%! double convert(double c) { double f; f = (9.0 * c) / 5.0 + 32.0; return f; } %>

4-2 JSP的指引元素 4-2-1 page指引元素 4-2-2 include指引元素 4-2-3 taglib指引元素

4-2 JSP的指引元素 JSP指引元素可以提供JSP程式的特殊資訊給伺服端的JSP容器,JSP提供多種指引元素:page、include和taglib等,其語法格式,如下所示: <%@ directive attribute1="value1" attribute2="value2" ……… attributeN="valueN"%> directive是指引元素指令,attribute1~N是指令的屬性,如有多個請以空白字元分隔,value1~N是對應的屬性值。

4-2-1 page指引元素-說明1 page指引元素是指定JSP程式的相關處理資訊,提供屬性設定JSP容器的相關參數,如下表:

4-2-1 page指引元素-說明2

4-2-1 page指引元素-說明3

4-2-1 page指引元素-contentType屬性 page指引元素常用的屬性有contentType和import屬性,對於中文內容的網頁,JSP程式可以使用contentType屬性指定網頁編碼為中文Big5,如下所示: <%@ page contentType="text/html; charset=Big5"%> 指定網頁編碼為Big5一般來說可解決大部分中文亂碼的問題,如果網頁中仍然顯示中文亂碼,請更改charset為微軟中文編碼MS950,如下: <%@ page contentType="text/html; charset=MS950"%>

4-2-1 page指引元素-import屬性 雖然JSP程式在編譯時即預設匯入一些常用的Java套件,所以JSP程式可以建立陣列、執行字串處理和使用Math類別,如果不是預設匯入的套件,在使用前,JSP程式需要匯入所需的Java套件,例如:日期/時間的Date類別需要匯入java.util.*套件,如下所示: <%@ page import="java.util.*"%> 上述程式碼是JSP的指引元素page,使用import屬性匯入java.util.*套件,如此在JSP程式就可以使用Date類別建立Date物件,如下所示: Date today = new Date();

4-2-2 include指引元素 JSP的include指引元素可以在JSP程式插入其它檔案,這是在翻譯成Servlet階段進行的檔案插入,通常是使用在網站共通部分的導覽、表格、標題列、頁首或頁尾,以便網站擁有一致的網頁外觀。 include指引元素主要是用來取代SSI(Server Side Include)指令#include。例如:在首尾插入版權宣告的網頁,副檔名通常是.jspf、.jsf或.inc,如下所示:. <%@ include file="copyright.inc"%> <%@ include file="navigation.jsp"%>

4-2-3 taglib指引元素 JSP的taglib指引元素可以指定JSP程式使用的自訂標籤庫,標籤庫是用來定義自訂標籤(Custom Tags),這是JSP 1.1版新增的功能,可以讓JSP程式的開發者隱藏複雜的程式碼,直接使用自訂的XML標籤來執行相關功能,其基本語法如下所示: <%@ taglib uri="標籤庫的URI" prefix="標籤字首"%>

4-3 JSP的動作元素 4-3-1 JavaBeans的動作元素 4-3-2 <jsp:include>與<jsp:param>元素 4-3-3 <jsp:forward>與<jsp:param>元素 4-3-4 <jsp:plugin>、<jsp:params>和<jsp:fallback>元素

4-3 JSP的動作元素 JSP的動作元素在JSP 2.0版新增到二十多個,依版本和功能可以分為數種,如下所示: 標準動作元素(Standard Action Elements):標準動作元素是JSP 1.2版就存在的動作元素。 JSP文件(JSP Document)的動作元素:JSP文件的動作元素是用來建立XML格式的JSP程式,這是使用XHTML和JSP元素所建立的JSP程式。 標籤檔(Tag File)的動作元素:標籤檔的動作元素是只能在標籤檔使用的動作元素,這也是JSP 2.0版新增的元素。

4-3-1 JavaBeans的動作元素- <jsp:useBean>元素 JavaBeans的動作元素是用來存取JavaBeans元件,在這一節筆者只準備簡易說明其基本語法,詳細的使用說明請參閱第10章。 <jsp:useBean>動作元素可以在JSP程式宣告和初始化JavaBeans元件,其基本語法如下所示: <jsp:useBean id="name" class="package.class" scope="page"/> 上述元素屬性id是參考JavaBean的變數名稱,class屬性指定JavaBean的完整套件名稱,scope屬性指定物件範圍。

4-3-1 JavaBeans的動作元素- <jsp:setProperty>元素 <jsp:setProperty>動作元素可以指定JavaBean的屬性值,其基本語法如下所示: <jsp:setProperty name="beans_name" property="property_name" value="property_value"/> 上述元素屬性name是對應<jsp:useBean>元素載入JavaBeans的id屬性,property屬性是指定的屬性名稱,value是屬性值。

4-3-1 JavaBeans的動作元素- <jsp:getProperty>元素 <jsp:getProperty>動作元素可以取得JavaBean指定的屬性值,其基本語法如下所示: <jsp:getProperty name="beans_name" property="property_name"/> 上述元素屬性name是對應<jsp:useBean>元素載入JavaBeans的id屬性,property屬性是取得的屬性名稱。

4-3-2 <jsp:include>與<jsp:param>元素-說明

4-3-2 <jsp:include>與<jsp:param>元素-語法 <jsp:include page="relative URL | <%=Expression%>" flush="true | false"/> 上述<jsp.include>動作元素擁有2個屬性,page是相對路徑的URL網址或Expression元素,flush屬性值在JSP 1.2版前一定是true,2.0版可以是true或false,true表示當緩衝區已滿時,送出緩衝區內容。

4-3-2 <jsp:include>與<jsp:param>元素-傳遞參數 <jsp:include page="included.jsp" flush="true"> <jsp:param name="cols" value="6" /> <jsp:param name="rows" value="4" /> </jsp:include>

4-3-2 <jsp:include>與<jsp:param>元素-取得參數 <jsp:param>動作元素傳遞的參數是使用request隱含物件的getParameter()方法來取得參數值的字串,如下所示: int rows = Integer.parseInt( request.getParameter("rows")); int cols = Integer.parseInt( request.getParameter("cols")); 上述程式碼getParameter()方法的參數字串就是參數名稱,Integer.parseInt()是Math類別的類別方法,可以將字串轉換成整數。

4-3-3 <jsp:forward>與<jsp:param>元素 <jsp:forward>動作元素可以將網頁請求轉址到其它HTML文件或JSP程式,也就是任何合法的URL網址,其基本語法如下所示: <jsp:forward page="relative URL | <%=Expression%>"/> 同樣的,<jsp:forward>動作元素也可以使用<jsp:param>動作元素來傳遞參數,如下所示: <jsp:forward page="included.jsp"> <jsp:param name="cols" value="6" /> <jsp:param name="rows" value="4" /> </jsp:forward>

4-3-4 <jsp:plugin>、<jsp:params>和<jsp:fallback>元素-說明 <jsp:plugin>動作元素可以在瀏覽程式插入物件,通常是用來插入Java Applet或JavaBeans,相當於是HTML的<OBJECT>、<APPLET>或<EMBED>標籤。

4-3-4 <jsp:plugin>、<jsp:params>和<jsp:fallback>元素-語法 <jsp:plugin type="bean | applet" code="物件的檔案名稱路徑" codebase="物件的基礎路徑" align="對齊方式" archive="其它相關檔案的清單" height="顯示高度" hspace="水平間距" vspace="垂直間距" width="顯示寬度" jversion="JRE的版本" name="物件名稱" nspluginurl="Netscapte需要使用的Plugin下載位址" iepluginurl="IE需要使用的Plugin下載位址"> <jsp:params> <jsp:param name="參數名稱1" value="參數值1"/> ……….. <jsp:param name="參數名稱N" value="參數值N"/> </jsp:params> <jsp:fallback>瀏覽程式並不支援物件的顯示</jsp:fallback> </jsp:plugin>

4-3-4 <jsp:plugin>、<jsp:params>和<jsp:fallback>元素-範例 在JSP程式插入TestApplet.class的Java Applet,傳遞Inc和Offset參數,如下所示: <jsp:plugin type="applet" code="TestApplet.class" width="300" height="160"> <jsp:params> <jsp:param name="Inc" value="20"/> <jsp:param name="Offset" value="25"/> </jsp:params> <jsp:fallback>載入Java Applet失敗....</jsp:fallback> </jsp:plugin>

4-4 JSP的隱含物件 4-4-1 隱含物件(Implicit Objects) 4-4-2 物件範圍(Object Scope)

4-4-1 隱含物件-說明 在JSP 2.0版定義9種隱含物件(Implicit Objects) :application、session、page、pageContext、out、request、response、config和exception。 JSP的隱含物件可以直接在Expression和Scriptlets元素的Java程式碼使用,而不用自行建立這些物件,這是因為JSP程式在翻譯成Servlet類別檔時,_jspService()方法預設傳入隱含物件request和response參數,並且在方法開頭依序取得這些隱含物件的變數。

4-4-1 隱含物件-物件說明

4-4-2 物件範圍-說明 JSP程式的物件範圍(Object Scope)簡稱範圍(Scope),這是JSP組織Web應用程式各種資料(物件)的方法,大部分是指上一節建立的隱含物件或第5章的EL隱含物件。例如:有些物件屬於整個Web應用程式的Application範圍,有些物件是使用者專屬的Session範圍。 在JSP程式的物件可能是使用者以Java程式碼建立、JSP指引元素或動作元素等所建立的物件,例如:<jsp:include>和<jsp:forward>元素傳遞的參數就會建立request物件。

4-4-2 物件範圍-圖例 在JSP程式的物件依其生命周期(Life-Cycles)區分為四種物件範圍:Application、Session、Request和Page範圍,如下圖所示:

4-4-2 物件範圍-範圍說明1 Application範圍(Application Scope):Application範圍的物件只需屬於同一個Web應用程式的生命周期,直到卸除Web應用程式或JSP容器關機前的JSP程式都可以存取,這是最大的物件範圍。JSP的application隱含物件所建立的變數就屬於此範圍,關於Web應用程式的說明請參閱第8章。 Session範圍(Session Scope):Session範圍的物件只需屬於同一個交談期(Session)生命周期的JSP程式都可以存取。JSP的session隱含物件所建立的變數就是屬於此範圍,關於交談期的進一步說明請參閱第8章。

4-4-2 物件範圍-範圍說明2 Request範圍(Request Scope):HTTP請求所產生的物件,因為HTTP請求是從一頁JSP程式到另一個JSP程式(例如:<jsp:include>和<jsp:forward>動作元素),所以其生命周期可以跨越2頁JSP程式,之後就消失,除非持續使用HTTP請求,如此才能跨過多頁JSP程式。JSP的request隱含物件屬於此範圍。 Page範圍(Page Scope):在目前JSP程式所建立的物件,也只有目前JSP程式可以存取,這是最小的物件範圍。JSP的page、pageContext、response、out、config和exception隱含物件都屬於此範圍。

4-5 Servlet相關的page和config物件

4-5-1 page隱含物件 JSP的page隱含物件代表翻譯成Servlet類別檔的Servlet類別,在Tomcat伺服器是java.lang.Object類別的物件,Resin伺服器是javax.servlet.Servlet類別的物件。 在JSP程式很少會直接使用page物件,我們通常只會使用page物件的getServletInfo()方法來取得page指引元素的info屬性值,如下所示: <%= page.getServletInfo() %>

4-5-2 config隱含物件-說明 JSP的config隱含物件可以取得JSP程式轉換成Servlet初始資訊的相關參數,屬於javax.servlet.ServletConfig類別的物件。 目前JSP程式並沒有辦法直接取得Servlet初始資訊的相關參數,除非先編譯JSP程式成為Servlet,然後將它註冊成為Servlet容器的Servlet程式。如此,編譯成Servlet的JSP程式才能夠取得Servlet初始資訊的參數。

4-5-2 config隱含物件-方法 config隱含物件的相關方法說明,如下表所示:

4-6 out物件的輸出與緩衝區處理-說明 JSP的out隱含物件是Java I/O輸出串流,這是javax.jsp.JspWriter物件,屬於page範圍,可以將資料輸出到客戶端瀏覽程式顯示和執行緩衝區處理。

4-6 out物件的輸出與緩衝區處理-輸出 out物件可以將資料輸出到客戶端瀏覽程式顯示,即之前在JSP程式使用的print()和println()方法,其說明如下所示:

4-6 out物件的輸出與緩衝區處理-緩衝區處理(說明) out物件另一項功能是緩衝區處理,JSP容器在執行JSP程式碼時,可以選擇將處理的結果馬上輸出到客戶端的瀏覽程式顯示,或是先輸出到暫放的緩衝區,等到JSP程式執行完或緩衝區已滿,才送到瀏覽程式顯示,如下圖所示:

4-6 out物件的輸出與緩衝區處理-緩衝區處理(輸出內容) JSP程式可以直接將輸出內容送到瀏覽程式顯示,或將輸出結果先輸出到緩衝區,當遇到下列情況才將輸出的內容送到瀏覽程式,如下所示: 執行完JSP程式後。 如果page指引元素的autoFlush屬性為true,當緩衝區已滿自動送出緩衝區內容。 執行到的out.close()方法關閉輸出串流時,此時已執行部分就會送出。 執行到out..flush()方法馬上將緩衝區的內容送出。

4-6 out物件的輸出與緩衝區處理-緩衝區處理(方法)

4-7 response物件的標頭和快取處理 4-7-1 使用Refresh標頭定時更新網頁 4-7-2 Cache-Control標頭的快取處理 4-7-3 轉址到其它的網頁或JSP程式 4-7-4 設定輸出文件的資料類型

4-7-1 使用Refresh標頭定時更新網頁 response.的setIntHeader()和setHeader()方法可以使用Refresh標頭來指定間隔時間,以便定時更新網頁內容,如下所示: response.setIntHeader("Refresh", 2); 如果想在一定的間隔時間後,轉址到其它網址或JSP程式,此時的第2個參數就是加上URL網址的字串,如下所示: response.setHeader("Refresh", "2;url=Ch4_1_3.jsp"); 上述第2個參數字串的url參數指定網址或其它JSP程式,在2秒後,就會自動轉址到此URL網址。

4-7-2 Cache-Control標頭的快取處理-說明 在客戶端電腦啟動瀏覽程式瀏覽網頁時,伺服端、客戶端電腦或Proxy伺服器都會將網頁內容保留在指定快取空間的資料夾或磁碟,以便加速網頁的瀏覽。 當客戶端重複瀏覽同一頁網頁時,瀏覽程式會先到客戶端和Proxy伺服器的快取找找看是否檔案已經存在,如果有,就直接由快取取出網頁內容,而不是每次都連結到伺服端快取或網站重新下載網頁內容,如此,可以節省下載檔案時間,提高網頁瀏覽的效率。

4-7-2 Cache-Control標頭的快取處理-設定 不過對於一些需要輸入保密資料的網頁,為了安全原因或是希望每次都連結網頁下載網頁內容,所以並不能將網頁內容保留在快取之中,或是只讓它保留一段指定的時間。JSP程式可以使用setHeader()方法指定Cache-Control標頭的快取處理,如下所示: response.setHeader("Cache-Control", "no-cache"); 上述程式碼指定Cache-Control標頭值為no-cache,也就是關閉快取功能,這是HTTP 1.1版支援的標頭。

4-7-2 Cache-Control標頭的快取處理-參數值

4-7-2 Cache-Control標頭的快取處理-另一種方法 JSP程式除了可以指定快取處理的參數外,我們還可以使用Expires標頭指定保留在快取的時間(max-age只適用在HTTP 1.1版),如下所示: response.setDateHeader("Expires", 0); 上述程式碼的第2個參數是保留在快取的毫秒數,0表示不保留在快取。

4-7-3 轉址到其它的網頁或JSP程式 轉址功能是指在執行JSP程式時,可以轉址到其它URL網址或網站的其它網頁或JSP程式。在response物件sendRedirect()方法的參數可以指定轉址的URL網址,如下所示: response.sendRedirect(“Ch4_1_2.jsp"); 上述程式碼轉址到同一個目錄的Ch4_1_2.jsp,參數可以是完整URL網址或同一個網站的相對路徑,也可以是HTML文件,如下所示: response.sendRedirect("http://www.hinet.net"); response.sendRedirect(“../Ch03/Ch3_2_1.jsp");

4-7-4 設定輸出文件的資料類型 JSP程式除了可以使用page指引元素的contentType屬性指定HTTP通訊協定傳送資料到瀏覽程式的MIME資料類型外,response物件的setContentType()方法也一樣可以指定MIME資料類型,如下所示: response.setContentType("text/xml"); 上述程式碼指定Content-type型態為text/xml,表示傳送的內容是XML文件。

4-8 物件範圍的變數存取-存取方法 在JSP物件範圍對應的request、session、application和pageContext物件都擁有的一組通用方法,可以存入和取出物件屬性,也就是儲存在物件的變數值,其相關方法的說明,如下表所示:

4-8 物件範圍的變數存取-建立範圍變數 在JSP程式可以使用pageContext、request、session和application隱含物件的setAttribute()方法來建立Page、Request、Session和Application物件範圍的變數,如下所示: pageContext.setAttribute("name", "陳會安"); request.setAttribute("name", "陳會安"); session.setAttribute("name", "陳會安"); application.setAttribute("name", "陳會安");

4-8 物件範圍的變數存取-取得變數值 同樣的,我們可以使用pageContext、request、session和application物件的getAttribute()方法取得各範圍的變數值,如下所示: Page範圍: <%=pageContext.getAttribute("name")%><br> Request範圍: <%=request.getAttribute("name")%><br> Session範圍: <%=session.getAttribute("name")%><br> Application範圍: <%=application.getAttribute("name")%><br>