版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
JSP內(nèi)置對象有些對象不同聲明就可以在JSP頁面的腳本局部使用,這就是JSP的內(nèi)置對象。JSP的內(nèi)置對象有:requestresponsesessionapplicationoutrequest和response對象是JSP較重要的兩個內(nèi)置對象,這兩個對象供給了對效勞器和掃瞄器通信方法的把握。爭論這兩個對象前,要先對HTTP協(xié)議——WordWideWeb底層協(xié)議作簡潔介紹。使用掃瞄器從網(wǎng)站獵取HTML頁面時,實際上在使用HTTP協(xié)議。HTTP協(xié)議規(guī)定了信息在Internet上的傳輸方法,特殊規(guī)定了掃瞄器與效勞器的交互方法。從網(wǎng)站獵取頁面時,掃瞄器在網(wǎng)站上翻開了一個對網(wǎng)絡(luò)效勞器的連接,并發(fā)出懇求。效勞器收到懇求后回應(yīng),所以HTTP協(xié)議被稱作“懇求和響應(yīng)”協(xié)議。掃瞄器懇求具有某種構(gòu)造,懇求中包括一個懇求行、頭域和可能的信息體。最一般的懇求類型時對頁面的一個簡潔懇求,如下例:GET/hello.htmHTTP/1.1
這是對網(wǎng)站上hello.htm頁面的HTTP懇求的例子。首行是懇求行,規(guī)定了懇求的方法、懇求的資源及使用的HTTP協(xié)議的版本。此例中,懇求的方法是GET方法,此方法用于獵取特定的資源。其他的懇求方法包括postheaddeletetrace及put方法等。此例中的其次行是頭〔header〕。Host頭規(guī)定了網(wǎng)站上hello.htm文件的Internet地址,此例中,主機是一個典型懇求通常包含很多頭,被稱做懇求的頭,頭供給了關(guān)于信息體的附加信息及懇求的來源。其中有些頭是標(biāo)準(zhǔn)的,有些和特定的掃瞄器有關(guān)。一個懇求還可能包含信息體,例如,信息體可包含html表單的內(nèi)容。在html表單上單擊submit按鈕時,該表單使用action=“post”或action=“get”特征,輸入表單的內(nèi)容都被發(fā)送到效勞器上,該表單內(nèi)容就由post方法或get方法在懇求的信息體中發(fā)送。效勞器在收到懇求時,返回響應(yīng)。響應(yīng)也有某種構(gòu)造,每個響應(yīng)都由狀態(tài)行開頭,可以包含幾個頭及可能的信息體,被稱作響應(yīng)的頭和響應(yīng)信息體。這些頭和信息體由效勞器送給客戶的掃瞄器。信息體就是客戶懇求的網(wǎng)頁的運行結(jié)果,對于JSP頁面,就是頁面的靜態(tài)信息。狀態(tài)行說明白正在使用的協(xié)議、狀態(tài)代碼及文本信息。一、request對象HTTP通信協(xié)議是客戶與效勞器之間的一種提交〔懇求〕信息與相應(yīng)信息〔request/response〕的通信協(xié)議。在JSP中,內(nèi)置對象request封裝了用戶提交的信息,那么對該對象調(diào)用相應(yīng)的方法可以獵取封裝的信息,即使用該對象可以獵取用戶提交的信息??蛻敉ǔJ褂肏TML表單向效勞器的某個JSP頁面提交信息,表單的一般格式是:<FORMmethod=get|postaction=“提交信息的目的頁面”>提交手段</FORM>一、request對象其中<FORM>是表單標(biāo)簽,提交手段包括通過文本框、列表、文本區(qū)域等。通過下面方法來獵取這些信息:request.getParameter(“控件名”);1.獵取表單提交信息2.處理漢字信息當(dāng)用request對象獵取客戶提交的漢字字符時,會消逝亂碼問題,所以對含有漢字字符的信息必需進展特殊的處理方式。首先,將獵取的字符串用ISO-8859-1進展編碼,并將編碼存放到一個字節(jié)數(shù)組中,然后再將這個數(shù)組轉(zhuǎn)化為字符串即可。一、request對象Stringstr=request.getParameter(“girl”);byteb[]=str.getBytes(“ISO-8859-1”);str=newString(b);通過上述過程,提交的任何信息〔無論是漢字字符或西歐字符〕都能正確地顯示。例如:Example3_3一、request對象3.常用方法舉例當(dāng)客戶訪問一個頁面時,會提交一個HTTP懇求給效勞器的JSP引擎,這個懇求包括一個懇求行、頭和信息體,例如:
host:localhost:8080accept-encoding:gzip,deflate首行叫做懇求行,規(guī)定了向訪問的頁面懇求提交信息的方式,如post、get等方式,以及懇求的頁面的文件名字和使用的通信協(xié)議。一、request對象第2、3行分別是兩個頭〔header〕,其中host、accept-encoding被稱為頭名字,而localhost:8080以及gzip、deflate分別是他們的值,這里host的值tree2.jsp的地址。可以使用JSP引擎的內(nèi)置對象來獵取客戶提交的信息,說明如下:〔1〕getProtocol獵取客戶向效勞器提交信息所使用的通信協(xié)議,例如/1.1〔2〕getServletPath獵取客戶懇求的JSP頁面文件的名目〔3〕getContentLength獵取客戶提交的整個信息的長度。一、request對象〔4〕getMethod獵取客戶提交信息的方式,比方post或get〔5〕getHeader(Strings)獵取頭文件中由參數(shù)s指定的頭名字的值,一般來說s參數(shù)可取的頭名有accept、refer、accept-language、content-type、accept-encoding、user-agent、host、content-length、connection、cookie等,比方s取值user-agent將獵取客戶的掃瞄器的版本號等信息?!?〕getHeaderNames獵取頭名字的一個枚舉?!?〕getHeaders(Strings)獵取頭文件中指定頭名字的全部值得一個枚舉?!?〕getRemoteAddr獵取客戶的IP地址。一、request對象〔9〕getServerName獵取效勞器的名稱?!?0〕getServerPort獵取效勞器的端口號?!?1〕getParameterNames獵取客戶提交的信息體局部中name參數(shù)值的一個枚舉。例如:Example3_4.jsptree2.jsp二、response對象當(dāng)客戶訪問一個效勞器的頁面時,會提交一個HTTP懇求,效勞器收到懇求時,返回HTTP響應(yīng)。響應(yīng)和懇求類似,也有某種構(gòu)造,每個響應(yīng)都由狀態(tài)行開頭,可以包含幾個頭及可能的信息體〔網(wǎng)頁的結(jié)果輸出局部〕。1.動態(tài)響應(yīng)contentType屬性當(dāng)一個客戶懇求訪問一個JSP頁面時,假設(shè)該頁面用page指令設(shè)置頁面的contentType屬性值是text/html那么JSP引擎就依據(jù)這種屬性值做出響應(yīng),將頁面的靜態(tài)局部返回給客戶。由于page指令只能為contentType指定一個值,用來準(zhǔn)備相應(yīng)的MIME類型,假設(shè)想動態(tài)地轉(zhuǎn)變這個屬性的值來相應(yīng)客戶,就需要使用response對象的setContentType(Strings)方法來轉(zhuǎn)變contentType的屬性值。二、response對象publicvoidsetContentType(Strings)S的取值可以是text/html、text/plain、application/x-msexcel、application/msword例如:Example3_10.jsp二、response對象2.Response的HTTP文件頭Response對象可以使用方法addHeader(Stringhead,Stringvalue);或方法setHeader(Stringhead,Stringvalue);動態(tài)地添加新的響應(yīng)頭和頭的值,并將這些頭發(fā)送給客戶的掃瞄器。假設(shè)添加的頭已經(jīng)存在,則從前的頭被掩蓋。例如:Example3_12.jsp二、response對象3.response重定向在某些狀況下,當(dāng)響應(yīng)客戶時,需要將客戶重新引導(dǎo)至另一個頁面。例如,假設(shè)客戶輸入的表單信息不完整,就會再被引導(dǎo)到該表單的輸入頁面??梢允褂孟旅娴姆椒ǎ簉esponse.sendRedirect(URLurl)例如:Example3_13.jsptree4.jsp二、response對象4.Response的狀態(tài)行當(dāng)效勞器對客戶懇求進展響應(yīng)時,它發(fā)送的首行被稱做狀態(tài)行。狀態(tài)行包括3位數(shù)字的狀態(tài)代碼和對狀態(tài)代碼的描述〔稱作緣由短語〕。見p65〔表3.1〕三、session對象HTTP協(xié)議是一種無狀態(tài)協(xié)議。一個客戶向效勞器發(fā)出懇求(request),然后效勞器返回響應(yīng)(response),連接就被關(guān)閉了。在效勞器端不保存連接的有關(guān)信息,因此當(dāng)下一次連接時,效勞器已沒有以前的連接信息了,同時,無法推斷這一次連接和以前的連接是否屬于同一客戶。因此,必需使用會話記錄有關(guān)連接的信息。從一個客戶翻開掃瞄器并連接到效勞器開頭,到客戶關(guān)閉掃瞄器離開這個效勞器完畢,被稱作一個會話。當(dāng)一個客戶訪問一個效勞器時,可能會在這個效勞器的幾個頁面串之間反復(fù)連接、反復(fù)刷新一個頁面或不斷地向一個頁面提交信息等,效勞器應(yīng)當(dāng)通過某種方法知道這是同一客戶,這就需要session〔會話〕對象。三、session對象1.Session對象的Id當(dāng)一個客戶首次訪問效勞器上的一個JSP頁面時,JSP引擎產(chǎn)生一個session對象,這個session對象調(diào)用相應(yīng)的方法可以存儲客戶在訪問各個頁面期間提交的各種信息,比方:姓名、號碼等信息。這個session對象被安排一個String類型的Id號,JSP引擎同時將這個Id號發(fā)送到客戶端,存放在客戶的Cookie中。這樣,session對象和客戶之間建立起一一對應(yīng)關(guān)系。三、session對象例如:session.jsptom.jspjerry.jsp在上面的例子中,客戶在效勞器的三個頁面之間進展連接,只要不關(guān)閉掃瞄器,三個頁面的session對象是完全一樣的??蛻羰紫仍L問session.jsp頁面,從這個頁面再連接到tom.jsp頁面,然后從tom.jsp再連接到j(luò)erry.jsp頁面。三、session對象2.Session對象與URL重寫session對象能和客戶建立起一一對應(yīng)關(guān)系依靠于客戶的掃瞄器是否支持Cookie。假設(shè)客戶端不支持Cookie,那么客戶在不同網(wǎng)頁之間的session對象可能是互不一樣的,由于效勞器無法將Id存放到客戶端,就不能建立session對象和客戶的一一對應(yīng)關(guān)系。假設(shè)客戶的掃瞄器不支持Cookie,可以通過URL重寫來實現(xiàn)session對象的唯一性,所謂URL重寫,就是當(dāng)客戶從一個頁面重新連接到一個頁面時,通過向這個新的URL添加參數(shù),把session對象的Id傳帶過去,這樣就可以保障客戶在該網(wǎng)站各個頁面中的session對象是完全一樣的。三、session對象Stringstr=response.encodeRedirectURL(“jerry.jsp”);3.Session對象的常用方法〔1〕publicvoidsetAttribute(Stringkey,Objectobj)session對象類似于散列表,session對象可以調(diào)用該方法將參數(shù)Object指定的對象obj添加到session對象中,并為添加的對象指定了一個索引關(guān)鍵字,假設(shè)添加的兩個對象的關(guān)鍵字一樣,則從前添加的對象被去除?!?〕publicObjectgetAttribute(Stringkey)獵取session對象中含有關(guān)鍵字是key的對象,由于任何對象都可以添加到session對象中,因此用該方法取回對象時,應(yīng)強制轉(zhuǎn)化為原來的類型。三、session對象〔3〕publicEnumerationgetAttributeNamessession對象調(diào)用該方法產(chǎn)生一個枚舉對象,該枚舉對象使用nextElements方法遍歷session對象中全部對象?!?〕publiclonggetCreationTimesession對象調(diào)用該方法可以獵取該對象創(chuàng)立的時間,單位時間是毫秒?!?〕publiclonggetLastAccessedTime獵取當(dāng)前session對象最終一次被操作的時間,單位是毫秒。〔6〕publicintgetMaxInactiveIterval設(shè)置session對象的生存時間三、session對象〔7〕publicvoidsetMaxInactiveIterval(intn)設(shè)置session對象的生存時間〔8〕publicvoidremoveAttribute(Stringkey)從當(dāng)前session對象中刪除關(guān)鍵字是key的對象〔9〕publicStringgetId獵取session對象的編號〔10〕publicvoidinvalidate使得session無效例如:Example3_17.jspfirst.jspaccount.jsp三、session對象<%Strings=request.getParameter(“boy“);session.setAttribute(“name“,s);%>從Example3_17.jsp中得到boy的值,然后將之保存到session對象中,關(guān)鍵字為name.String姓名=(String)session.getAttribute(“name“);<%=姓名%>通過session對象得到被保存的關(guān)鍵字為name的變量,并將之輸出。4.計數(shù)器四、application對象不同客戶的session對象是互不一樣的,與session對象不同的是application對象對全部客戶來說都是一樣的。1.Application對象的常用方法〔1〕voidsetAttribute(Stringkey,Objectobj)〔2〕ObjectgetAttribute〔3〕EnumerationgetAttributeNames〔4〕voi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度航空運輸貨物代理委托及質(zhì)量控制合同3篇
- 2024離婚財產(chǎn)分割協(xié)議公證與投資分割
- 2024版軟件許可與技術(shù)支持合同
- 二零二五年度股權(quán)激勵與員工離職補償合同樣本3篇
- 年度飛機碳剎車預(yù)制件戰(zhàn)略市場規(guī)劃報告
- 高校二零二五年度實驗室科研人員聘用合同2篇
- 針對2025年度環(huán)保項目的技術(shù)研發(fā)合作合同3篇
- 2024-2025學(xué)年高中語文第三課神奇的漢字3方塊的奧妙-漢字的結(jié)構(gòu)練習(xí)含解析新人教版選修語言文字應(yīng)用
- 2024-2025學(xué)年高中政治第三單元思想方法與創(chuàng)新意識第9課第2框用對立統(tǒng)一的觀點看問題訓(xùn)練含解析新人教版必修4
- 2025年度特色餐飲業(yè)司爐員綜合管理服務(wù)合同3篇
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 有機化學(xué)機理題(福山)
- 醫(yī)學(xué)會自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項機電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動物遺傳育種學(xué)》動物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
- 7.6用銳角三角函數(shù)解決問題 (2)
評論
0/150
提交評論