版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章JSP內(nèi)置對(duì)象1本課教學(xué)內(nèi)容認(rèn)識(shí)JSP內(nèi)置對(duì)象out對(duì)象request對(duì)象response對(duì)象Cookie操作認(rèn)識(shí)JSP內(nèi)置對(duì)象內(nèi)置對(duì)象:指在JSP頁(yè)面中內(nèi)置的不需要定義就可以在網(wǎng)頁(yè)中直接使用的對(duì)象內(nèi)置對(duì)象預(yù)定義的原因:因?yàn)檫@些內(nèi)置對(duì)象有些能夠存儲(chǔ)參數(shù),有些能夠提供輸出,還有些能提供其他的功能,JSP程序員一般情況下使用這些內(nèi)置對(duì)象的頻率比較高認(rèn)識(shí)JSP內(nèi)置對(duì)象內(nèi)置對(duì)象特點(diǎn)內(nèi)置對(duì)象是自動(dòng)載入的,因此它不需要直接實(shí)例化內(nèi)置對(duì)象是通過(guò)Web容器來(lái)實(shí)現(xiàn)和管理的在所有的JSP頁(yè)面中,直接調(diào)用內(nèi)置對(duì)象都是合法的認(rèn)識(shí)JSP內(nèi)置對(duì)象JSP規(guī)范中定義了九種內(nèi)置對(duì)象,本章主要介紹前五種out對(duì)象:負(fù)責(zé)管理對(duì)客戶(hù)端的輸出request對(duì)象:負(fù)責(zé)得到客戶(hù)端的請(qǐng)求信息response對(duì)象:負(fù)責(zé)向客戶(hù)端發(fā)出響應(yīng)session對(duì)象:負(fù)責(zé)保存同一客戶(hù)端一次會(huì)話(huà)過(guò)程中的一些信息application對(duì)象:表示整個(gè)應(yīng)用的環(huán)境的信息認(rèn)識(shí)JSP內(nèi)置對(duì)象exception對(duì)象:表示頁(yè)面上發(fā)生的異常,可以通過(guò)它獲得頁(yè)面異常信息page對(duì)象:表示的是當(dāng)前JSP頁(yè)面本身,就像Java類(lèi)定義中的this一樣pageContext對(duì)象:表示的是此JSP的上下文config對(duì)象:表示此JSP的ServletConfigout對(duì)象out對(duì)象,對(duì)應(yīng)的類(lèi)型是javax.servlet.jsp.JspWriterout對(duì)象的作用用來(lái)向客戶(hù)端輸出各種數(shù)據(jù)類(lèi)型的內(nèi)容對(duì)應(yīng)用服務(wù)器上的輸出緩沖區(qū)進(jìn)行管理out對(duì)象out輸出的主要有2個(gè)方法:voidprint()voidprintln()out對(duì)象out對(duì)象一些常用的與管理緩沖區(qū)有關(guān)的函數(shù):voidclose():關(guān)閉輸出流,從而可以強(qiáng)制終止當(dāng)前頁(yè)面的剩余部分向?yàn)g覽器輸出voidclearBuffer():清除緩沖區(qū)里的數(shù)據(jù),并且把數(shù)據(jù)寫(xiě)到客戶(hù)端去voidclear():清除緩沖區(qū)里的數(shù)據(jù),但不把數(shù)據(jù)寫(xiě)到客戶(hù)端去out對(duì)象out對(duì)象一些常用的與管理緩沖區(qū)有關(guān)的函數(shù):intgetRemaining():獲取緩沖區(qū)中沒(méi)有被占用的空間的大小voidflush():輸出緩沖區(qū)的數(shù)據(jù)。out.flush()函數(shù)也會(huì)清除緩沖區(qū)中的數(shù)據(jù),但是此函數(shù)先將之前緩沖區(qū)的數(shù)據(jù)輸出至客戶(hù)端,然后再清除緩沖區(qū)的數(shù)據(jù)intgetBufferSize():獲得緩沖區(qū)的大小request對(duì)象request對(duì)應(yīng)類(lèi)型是javax.servlet.http.HttpServletRequestrequest包含的方法StringgetMethod():得到提交方式StringgetRequestURI():得到請(qǐng)求的URL地址StringgetProtocol():得到協(xié)議名稱(chēng)request對(duì)象request包含的方法StringgetServletPath():獲得客戶(hù)端請(qǐng)求服務(wù)器文件的路徑StringgetQueryString():得到URL的查詢(xún)部分,對(duì)post請(qǐng)求來(lái)說(shuō),該方法得不到任何信息request對(duì)象request包含的方法StringgetServerName():得到服務(wù)器的名稱(chēng)StringgetServerPort():得到服務(wù)器口號(hào)StringgetRemoteAddr():得到客戶(hù)端的IP地址
*具體代碼示例見(jiàn)課本request對(duì)象request對(duì)象獲取客戶(hù)端得參數(shù)常用的是通過(guò)2個(gè)方法:StringgetParameter(Stringname):獲得客戶(hù)端傳送給服務(wù)器的name參數(shù)的值。當(dāng)傳遞給此函數(shù)的參數(shù)名沒(méi)有實(shí)際參數(shù)與之對(duì)應(yīng)時(shí),則返回nullString[]getParameterValues(Stringname):以字符串?dāng)?shù)組的形式返回指定參數(shù)所有值response對(duì)象response與reuqest是一對(duì)相對(duì)應(yīng)的內(nèi)置對(duì)象,response可以理解為客戶(hù)端的響應(yīng),request可以理解為客戶(hù)端的請(qǐng)求,二者所表示范圍是相對(duì)應(yīng)的2個(gè)部分,具有很好的對(duì)稱(chēng)性。response對(duì)應(yīng)的類(lèi)(接口)是:javax.servlet.http.HttpServletResponse??梢酝ㄟ^(guò)查找文檔中javax.servlet.http.HttpServletResponse來(lái)了解response的API利用response對(duì)象進(jìn)行重定向重定向:就是跳轉(zhuǎn)到另一個(gè)頁(yè)面重定向方法為:
response.sendRedirect(目標(biāo)頁(yè)面路徑); <jsp:forwardpage=""></jsp:forward>
兩種重定向方法的不同從瀏覽器的地址顯示上來(lái)看forward方法屬于服務(wù)器端去請(qǐng)求資源,服務(wù)器直接訪(fǎng)問(wèn)目標(biāo)地址,并對(duì)該目標(biāo)地址的響應(yīng)內(nèi)容進(jìn)行讀取,再把讀取的內(nèi)容發(fā)給瀏覽器,因此客戶(hù)端瀏覽器的地址不變兩種重定向方法的不同從瀏覽器的地址顯示上來(lái)看redirect是告訴客戶(hù)端,使瀏覽器知道去請(qǐng)求哪一個(gè)地址,相當(dāng)于客戶(hù)端重新請(qǐng)求一遍。所以地址顯示欄會(huì)變兩種重定向方法的不同從數(shù)據(jù)共享來(lái)看forward轉(zhuǎn)發(fā)的頁(yè),以及轉(zhuǎn)發(fā)到的目標(biāo)頁(yè)面能夠共享request里面的數(shù)據(jù)redirect轉(zhuǎn)發(fā)的頁(yè)以及轉(zhuǎn)發(fā)到的目標(biāo)頁(yè)面不能共享request里面的數(shù)據(jù)兩種重定向方法的不同從功能來(lái)看redirect能夠重定向到當(dāng)前應(yīng)用程序的其他源,而且還能夠重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對(duì)URL重定向到其他站點(diǎn)的資源兩種重定向方法的不同從功能來(lái)看forward方法只能在同一個(gè)Web應(yīng)用程序內(nèi)的資源之間轉(zhuǎn)發(fā)請(qǐng)求,可以理解為服務(wù)器內(nèi)部的一種操作兩種重定向方法的不同從效率來(lái)看forward效率較高,因?yàn)樘D(zhuǎn)僅發(fā)生在服務(wù)器端redirect相對(duì)較低,因?yàn)轭?lèi)似于再進(jìn)行了一次請(qǐng)求使用頻率不是很高的一種重定向sendError():向客戶(hù)端發(fā)送HTTP狀態(tài)碼的出錯(cuò)信息使用頻率不是很高的一種重定向常見(jiàn)的錯(cuò)誤代碼有:400:BadRequest,請(qǐng)求出現(xiàn)語(yǔ)法錯(cuò)誤401:Unauthorized,客戶(hù)試圖未經(jīng)授權(quán)訪(fǎng)問(wèn)受密碼保護(hù)的頁(yè)面403:Forbidden,資源不可用404:NotFound,無(wú)法找到指定位置的資源500:InternalServerError,服務(wù)器遇到了無(wú)法預(yù)料的情況,不能完成客戶(hù)的請(qǐng)求利用response設(shè)置HTTP頭HTTP頭一般用來(lái)設(shè)置網(wǎng)頁(yè)的基本屬性response的setHeader()方法來(lái)進(jìn)行設(shè)置 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires",0);以上都是表示在客戶(hù)端緩存中不保存頁(yè)面的拷貝Cookie操作Cookie是一個(gè)小的文本數(shù)據(jù),由服務(wù)器端生成,發(fā)送給客戶(hù)端瀏覽器,客戶(hù)端瀏覽器如果設(shè)置為啟用Cookie,則會(huì)將這個(gè)小文本數(shù)據(jù)保存到某個(gè)目錄下的文本文件內(nèi)。下次登錄同一網(wǎng)站,客戶(hù)端瀏覽器則會(huì)自動(dòng)將Cookie讀入之后,傳給服務(wù)器端。一般情下,Cookie中的值是以key-value的形式進(jìn)行表達(dá)的Cookie操作Cookie操作主要用到以下幾個(gè)方法:response.addCookie(Cookiec):通過(guò)該方法,將Cookie寫(xiě)入客戶(hù)端Cookie.setMaxAge(intsecond):通過(guò)該方法,設(shè)置Cookie的存活時(shí)間。參數(shù)表示存活Cookie操作從客戶(hù)端獲取Cookie內(nèi)容,主要通過(guò)以下方法:Cookie[]request.getCookies():讀取客戶(hù)端傳過(guò)來(lái)的Cookie,以數(shù)組形式返回Cookie的盜取盜取的方法:利用跨站腳本技術(shù),將信息發(fā)給目標(biāo)服務(wù)器;為了隱藏URL,甚至可以結(jié)合Ajax(異步Javascript和XML技術(shù))在后臺(tái)竊取CookieCookie的盜取通過(guò)某些軟件,竊取硬盤(pán)下的Cookie。一般說(shuō)來(lái),當(dāng)用戶(hù)訪(fǎng)問(wèn)完某站點(diǎn)后,Cookie文件會(huì)存在機(jī)器的某個(gè)文件夾下,因此可以通過(guò)某些盜取和分析軟件來(lái)盜取CookieCookieCookie在Web編程中應(yīng)用很廣的原因:Cookie的值能夠持久化,即使客戶(hù)端機(jī)器關(guān)閉,下次打開(kāi)還是可以得到里面的值Cookie可以幫助服務(wù)器端保存多個(gè)狀態(tài)信息,但是不用服務(wù)器端專(zhuān)門(mén)分配存儲(chǔ)資源Cookie可以持久保持一些和客戶(hù)相關(guān)的信息解決Cookie安全的方法方法有以下幾種替代Cookie。將數(shù)據(jù)保存在服務(wù)器端,可選的是session方案及時(shí)刪除Cookie解決Cookie安全的方法要?jiǎng)h除一個(gè)已經(jīng)存在的Cookie,有以下幾種方法:給一個(gè)Cookie賦以空置設(shè)置Cookie的失效時(shí)間為當(dāng)前時(shí)間,讓該Cookie在當(dāng)前頁(yè)面的瀏覽完之后就被刪除了解決Cookie安全的方法通過(guò)瀏覽器刪除Cookie
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆浙江杭州高三上學(xué)期期末測(cè)試數(shù)學(xué)答案
- 2024版無(wú)共有財(cái)產(chǎn)離婚合同標(biāo)準(zhǔn)格式版B版
- 福建省南平市莒口中學(xué)高一語(yǔ)文上學(xué)期期末試題含解析
- 2024渣土運(yùn)輸與地下管線(xiàn)保護(hù)合同匯編3篇
- 2025年度大型活動(dòng)安全保障與文明施工服務(wù)合同3篇
- 2025年度倉(cāng)儲(chǔ)物流場(chǎng)地租賃及倉(cāng)儲(chǔ)服務(wù)合同8篇
- 2024私房買(mǎi)賣(mài)合同:帶車(chē)位及綠化配套3篇
- 2025年度廣東勞務(wù)派遣服務(wù)合同示范文本6篇
- 2024集體土地征用補(bǔ)償安置協(xié)議書(shū)
- 2025年度太陽(yáng)能熱水器安裝與售后服務(wù)合同3篇
- 一年級(jí)科學(xué)人教版總結(jié)回顧2
- 個(gè)人住房貸款提前還款月供及節(jié)省利息EXCEL計(jì)算
- 第五單元《圓》教材解析-人教版數(shù)學(xué)六年級(jí)上冊(cè)
- 患者突發(fā)昏迷應(yīng)急預(yù)案演練腳本-
- 智能機(jī)器人技術(shù)導(dǎo)論P(yáng)PT完整全套教學(xué)課件
- 危險(xiǎn)性較大的分部分項(xiàng)工程清單 及安全管理措施
- 中職英語(yǔ)語(yǔ)文版(2023)基礎(chǔ)模塊1 Unit 1 The Joys of Vocational School 單元測(cè)試題(含答案)
- 最全-房屋市政工程安全生產(chǎn)標(biāo)準(zhǔn)化指導(dǎo)圖冊(cè)
- 聚合物的流變性詳解演示文稿
- 壓力彈簧力度計(jì)算器及計(jì)算公式
- 內(nèi)科學(xué)教學(xué)課件:免疫性血小板減少癥(ITP)
評(píng)論
0/150
提交評(píng)論