版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章 JSP對(duì)象,JSP,有效范圍,9個(gè)隱含對(duì)象,本章內(nèi)容,1. 對(duì)象有效范圍2. 隱含對(duì)象3. COOKIE對(duì)象4. JSP對(duì)象應(yīng)用實(shí)例,頁(yè)內(nèi)有效,請(qǐng)求有效,會(huì)話有效,應(yīng)用有效,§4.1 對(duì)象有效范圍,對(duì) 象,JSP頁(yè)面在處理請(qǐng)求時(shí),可以訪問java對(duì)象,這些對(duì)象有些是隱含的,有些則是使用行為元素或腳本代碼創(chuàng)建的。,§3.1.1 頁(yè)內(nèi)有效,對(duì)象創(chuàng)建后只能在當(dāng)前JSP頁(yè)面內(nèi)被訪問,所有頁(yè)內(nèi)有效對(duì)象的引
2、用存儲(chǔ)在頁(yè)面上下文對(duì)象中。,pageContext,,,可見,一個(gè)頁(yè)面內(nèi),通過pageContext設(shè)置對(duì)象可以傳遞數(shù)據(jù)。,Go>>,,,,Go>>,通過本例可見,屬性只能在同一個(gè)JSP頁(yè)面內(nèi)獲得,其他頁(yè)面不能獲取。,§4.1.2 請(qǐng)求有效,在處理同一個(gè)請(qǐng)求時(shí),不同JSP頁(yè)面創(chuàng)建的對(duì)象在這些頁(yè)面內(nèi)都是可以訪問的,這些對(duì)象就是請(qǐng)求有效的對(duì)象。如果請(qǐng)求轉(zhuǎn)向到同一運(yùn)行時(shí)的其他資源,這些對(duì)象依然有效。請(qǐng)求有
3、效的對(duì)象在請(qǐng)求處理結(jié)束時(shí)就會(huì)失效。,requestScopeSet.jsp,,,,,Go>>,§4.1.3 會(huì)話有效,會(huì)話:指客戶端和服務(wù)之間持續(xù)連接的一段時(shí)間在這段時(shí)間內(nèi),當(dāng)需要多次和服務(wù)器交互信息時(shí),可以將有關(guān)信息存入session對(duì)象中,這些信息就是會(huì)話有效的,在與服務(wù)器斷線后,這些屬性就會(huì)失效。,sessionScopeSet.jsp,,,,,Go>>,§4.1.4 應(yīng)用有效,應(yīng)
4、用的作用范圍是從Web應(yīng)用服務(wù)器一開始執(zhí)行服務(wù)一直到Web應(yīng)用服務(wù)器結(jié)束服務(wù)為止,范圍最大,影響最大,在實(shí)際使用時(shí)注意不要使用過多 ,以免造成服務(wù)器負(fù)載過大。對(duì)于同一個(gè)Web應(yīng)用中,不同JSP頁(yè)面中創(chuàng)建的對(duì)象,若這些對(duì)象在所有頁(yè)面內(nèi)都是可用的,應(yīng)用有效的對(duì)象,,,,,Go>>,§4.1.5 屬性操作,除了pageContext,PAGE_SCOPEREQUEST_SCOPESESSION_SCOPEAPP
5、LICATION_SCOPE,§4.2 隱含對(duì)象,§4.2.1 request 對(duì)象,Request對(duì)象是HttpServletRequest類的實(shí)現(xiàn)實(shí)例,在request對(duì)象中除了包含請(qǐng)求有效的數(shù)據(jù)外,還包含客戶端請(qǐng)求的相關(guān)信息。常用的方法有:請(qǐng)求有效的屬性操作獲取HTTP Header信息獲取HTTP請(qǐng)求參數(shù),如HTML表單提交的參數(shù)信息獲取服務(wù)器端相關(guān)信息,包括服務(wù)器名字、地址和端口等獲取客戶端相關(guān)信
6、息,包括客戶端名字、地址和端口等獲取協(xié)議版本、協(xié)議獲取數(shù)據(jù)及數(shù)據(jù)相關(guān)信息的操作會(huì)話相關(guān)方法,Public void removeAttribute(String name),Public String getHeader(String name),Public String getParameter(String name),Public String getServerName(),Public String getRemote
7、Host(),Public String getProtocol(),Public String getPathInfo(),Public String getRequestedSessionId(),§4.2.1 request 對(duì)象,使用request對(duì)象獲取并顯示客戶端發(fā)出HTTP請(qǐng)求時(shí)發(fā)送的HTTPHeader中包含的全部信息,,,,是否有更多元素可提取,返回枚舉中的下一個(gè)對(duì)象,Go>>,例:使用reque
8、st對(duì)象獲取并顯示客戶端發(fā)出HTTP請(qǐng)求時(shí)發(fā)送的請(qǐng)求頭中包含的全部信息。,request對(duì)象幾個(gè)獲取信息的方法,,,,requestGet.jsp>>,§4.2.2 responses 對(duì)象,HTTP Header信息處理設(shè)置數(shù)據(jù)內(nèi)容的類型和長(zhǎng)度setContentType()。在設(shè)置數(shù)據(jù)類型時(shí),也會(huì)設(shè)置字符編碼。例如,類型設(shè)置為"text/html; charset=ISO-8859-4“獲取輸
9、出流。字符數(shù)據(jù)getWriter() 二進(jìn)制數(shù)據(jù)應(yīng)使用getOutputStream()本地化相關(guān)操作,如字符編碼、貨幣符號(hào)等,將服務(wù)器端的數(shù)據(jù)發(fā)送回瀏覽器端,Public String getCharacterEncoding( ),§4.2.2 responses 對(duì)象,緩沖控制瀏覽器重定向:sendRedirect(URL) 先返回瀏覽器,然后由瀏覽器發(fā)送重定向的URL請(qǐng)求,參數(shù)中的URL可以是其他服務(wù)器的UR
10、L資源。 響應(yīng)狀態(tài)控制當(dāng)需要在會(huì)話中存儲(chǔ)數(shù)據(jù)而瀏覽器不支持Cookies時(shí),使用encodeURL會(huì)將會(huì)話ID附加到URL后。向?yàn)g覽器發(fā)送Cookie,Public void setBufferSize(int bufferSize),?,Public void setStatus(int statusCode),Public String endodeURL(String url),Public void addCookie(C
11、ookie cookie),將頁(yè)面返回內(nèi)容以Word文檔格式返回瀏覽器,,Response1.jsp>>,,§4.2.2 responses 對(duì)象,,緩沖區(qū),,Response.setIntHeader(“Refresh”,”10;URL=http//www.beijing2008.org”),,使用response對(duì)象的setHeader( )方法設(shè)置Html header參數(shù)nocache可以避免這種情況出現(xiàn)。
12、,除此之外,response對(duì)象的setHeader( ) 方法設(shè)置頁(yè)面的自動(dòng)刷新時(shí)間間隔,實(shí)現(xiàn)每30秒重新加載本身頁(yè)面的語(yǔ)句格式為。,Response.setIntHeader(“Refresh”, “30”),下列語(yǔ)句設(shè)定在10秒后,瀏覽器加載新頁(yè)面http://www.beijing2008.org,使用no-cache和自動(dòng)刷新機(jī)制顯示當(dāng)前時(shí)間,,,,設(shè)置應(yīng)答頭的名字和值,設(shè)置包含日期和整數(shù)值的應(yīng)答頭,Response2.jsp
13、,§4.2.3 out 對(duì)象,JSP文件模板數(shù)據(jù)在轉(zhuǎn)換成Servlet實(shí)現(xiàn)類時(shí),會(huì)自動(dòng)生成out.print()或out.println()語(yǔ)句來輸出數(shù)據(jù)。Out對(duì)象包含方法:print()、println()、newLine()、write()、flush() 、clear() 等,向?yàn)g覽器端輸出數(shù)據(jù),確保緩沖區(qū)內(nèi)容發(fā)送到瀏覽器,Out對(duì)象實(shí)現(xiàn)不同語(yǔ)言文字的輸出,,,Unicode表示,out.jsp,§4.2
14、.4 session 對(duì)象,存儲(chǔ)某個(gè)用戶的會(huì)話狀態(tài),Login,session,Cookie,I D,在會(huì)話中存儲(chǔ)的信息,在瀏覽器發(fā)出后續(xù)請(qǐng)求時(shí)可以獲取這些會(huì)話有效的數(shù)據(jù)。,§4.2.4 session 對(duì)象,session對(duì)象的常用方法存儲(chǔ)和獲取會(huì)話有效的屬性對(duì)象getAttribute()、setAttribute()、removeAttribute()、 getAttributeNames()會(huì)話控制invalida
15、te ()、 getMaxInactiveInterval ()、 setMaxInactiveInterval () 會(huì)話狀態(tài)getId ()、 isNew ()、 getCreationTime ()、 getLastAccessedTime ()獲取會(huì)話相關(guān)的Servlet上下文getServletContext (),,,,,,,,,,session.jsp,§4.2.5 application 對(duì)象,可以在同一個(gè)
16、Web應(yīng)用的不同Servlet和JSP頁(yè)面中共享信息 如:數(shù)據(jù)庫(kù)連接池具體的JSP頁(yè)面或Servlet屬于哪個(gè)Web應(yīng)用是由JSP容器自動(dòng)管理,application對(duì)象的常用方法 :,存儲(chǔ)和獲取應(yīng)用有效的屬性對(duì)象獲取服務(wù)器信息返回web 應(yīng)用名獲取服務(wù)器支持的Java Servlet API 版本返回指定文件的MIME類型。,public String getServerInfo( ),public Str
17、ing getServletContextName( ),public int getMajorVersion( ),public int getMimeType(String file ),public Object getAttribute(String name ),application對(duì)象的常用方法 :,獲取參數(shù)指定的Servlet上下文對(duì)象獲取初始參數(shù)獲取指定path的實(shí)際路徑獲取資源日志管理,public Serv
18、etContext getContext(String uripath ),public String getInitParameter(String name ),public String getRealPath(String path ),public URL getResource(String path ),public void log(String msg ),,,{Tomcat}\logs\localhost.xxxx-
19、xx-xx.log),,,§4.2.6 pageContext 對(duì)象,JSP頁(yè)面利用頁(yè)面上下文對(duì)象獲取頁(yè)面所有相關(guān)的信息。該對(duì)象在Servlet實(shí)現(xiàn)JSP頁(yè)面時(shí)被創(chuàng)建,在頁(yè)面結(jié)束時(shí)消失。通過對(duì)象pageContext可以得到當(dāng)前頁(yè)面中所有其他的JSP隱含對(duì)象,pageContext對(duì)象可以訪問所有范圍的屬性和屬性名。包含include( )和forward( )方法,初始化隱含對(duì)象的變量,pageContext對(duì)象方法,
20、獲取當(dāng)前頁(yè)面的其它JSP隱含對(duì)象getXxx():頁(yè)內(nèi)有效屬性的相關(guān)操作所有范圍的屬性操作頁(yè)面重定向 forward( ) 頁(yè)面包含其它頁(yè)面操作 include ( )例:pageContext.jsp,訪問不同范圍的屬性,request、response、out、session、application、config、page、exception,getAttribute() setAttribute() removeA
21、ttribute(),PAGE_SCOPE REQUEST_SCOPESESSION_SCOPEAPPLICATION_SCOPE,§4.2.7 config 對(duì)象,JSP容器會(huì)自動(dòng)配置JSP頁(yè)面,獲取Web應(yīng)用配置描述文件web.xml的相關(guān)信息,1. Web應(yīng)用配置描述文件,使用Web應(yīng)用配置描述文件(web.xml)來定義和映射JSP頁(yè)面,{Tomcat}\webapps\helloBeijing\WEB-INF,J
22、SP,,,指定頁(yè)面文件,映射到指定的URL,1. Web應(yīng)用配置描述文件,例: web.xml,將application.jsp映射到/application,… application/application.jsp application /application…,application.jsp,2. config對(duì)象的常用方法,,,,web.xml,,,,§4.2.8 page 對(duì)象,pag
23、e對(duì)象是JSP頁(yè)面對(duì)應(yīng)的Servlet類的實(shí)現(xiàn)對(duì)象,占用內(nèi)存多,,,§4.2.9 exception對(duì)象,只在錯(cuò)誤處理頁(yè)(頁(yè)面的page指令中isErrorPage屬性值為true的頁(yè)面)中使用,代表發(fā)生錯(cuò)誤的JSP頁(yè)面中對(duì)應(yīng)的異常信息。輸出錯(cuò)誤信息 getLocalizedMessage() getMessage() toString() 輸出詳細(xì)錯(cuò)誤信息 printStackTrace(
24、),§3.2.9 exception對(duì)象,JSP頁(yè)面定義為錯(cuò)誤處理頁(yè),本頁(yè)發(fā)生異常也是自己處理,使用throw產(chǎn)生異常,利用exception對(duì)象處理異常示例 exception.jsp,,§4.3 Cookie對(duì)象,用于在瀏覽器端保存會(huì)話過程中的一些參數(shù),用戶名、會(huì)話ID,cookie,Cookie對(duì)象屬性,§4.3 Cookie對(duì)象,Cookie對(duì)象創(chuàng)建時(shí)需要指定名稱和值Cookie對(duì)象的域是發(fā)送C
25、ookie去向的服務(wù)器Cookie發(fā)送到瀏覽器端保存時(shí),可指定有效時(shí)間Cookie以不加密的文件形式保存在瀏覽器端,Cookie對(duì)象方法,創(chuàng)建新Cookie:Cookie(String name,String value)獲取已有Cookie的信息:getName(), getValue()改變Cookie的值:setValue(String newValue) 域的獲取和設(shè)置: getDomain()
26、 setDomain(String newDomain) 獲取和設(shè)置路徑: getPath() setPath(String newPath),Cookie對(duì)象方法,獲取和設(shè)置Cookie有效期,單位為秒: getMaxAge() setMaxAge(int maxAge) 設(shè)置和獲取Cookie的安全設(shè)置,
27、值為true或false獲取和設(shè)置Cookie協(xié)議版本。Cookie的說明,>0:在有效期內(nèi),即使用戶關(guān)閉瀏覽器再重新啟動(dòng),Cookie依然有效,<0:只當(dāng)瀏覽器運(yùn)行時(shí)有效,當(dāng)關(guān)閉瀏覽器時(shí),Cookie就會(huì)無(wú)效,=0:刪除過去有效的Cookie,setSecure( secureFlag) getSecure( ),setVersion(int version) getVersion( ),setComment(Stri
28、ng comment) getComment( ),§3.3 Cookie對(duì)象,cookiesSet.jsp,cookiesGet.jsp,,,,,,,,,,cookiesSet.jsp,§4.4.1 request對(duì)象實(shí)例:用戶注冊(cè),,表單的處理頁(yè)面,request對(duì)象處理表單信息,使用request的getParameter(“輸入?yún)?shù)名”)字符串轉(zhuǎn)換,控件的name屬性值,String userNam
29、e=request.getParameter(“name”);,request.setCharacterEncoding(“GBK”),String userName=request.getParameter(“name”);byte[ ] tmpbyte=userName.getBytes(“ISO8859_1”);userName=new String(tmpbyte),,,,,form.html,,,,form.html,
30、167;4.4.2 session對(duì)象實(shí)例:用戶登錄,HTTP協(xié)議是非連接的協(xié)議用戶標(biāo)識(shí)數(shù)據(jù)作為Cookie對(duì)象傳送給瀏覽器客戶端會(huì)話有效的對(duì)象來保持用戶身份識(shí)別信息,在一段時(shí)間內(nèi), 一個(gè)瀏覽器客戶與服務(wù)器之間一連串的交互,用戶名密 碼,§4.4.2 session對(duì)象實(shí)例:用戶登錄,,,,,,§4.4.3 application對(duì)象實(shí)例:簡(jiǎn)單聊天室,示例所有連接該頁(yè)面的瀏覽器, 可看到聊天室所有內(nèi)容
31、30秒自動(dòng)刷新聊天內(nèi)容每行包含一個(gè)用戶發(fā)言未登錄用戶以Guest標(biāo)識(shí), 可以發(fā)言,整個(gè)Web應(yīng)用有效,,,chat.jsp,§4.4.3 application對(duì)象實(shí)例:簡(jiǎn)單聊天室,在實(shí)際使用過程中,由于application對(duì)象會(huì)加大服務(wù)器的開銷,因此一般不將不斷增加的聊天內(nèi)容放在application中,而是放在數(shù)據(jù)庫(kù)或文件中,本章小節(jié),JSP對(duì)象的四種有效范圍JSP中9種隱含對(duì)象Cookie對(duì)象的應(yīng)用Web應(yīng)用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論