JSP內(nèi)置對(duì)象解析.ppt_第1頁(yè)
JSP內(nèi)置對(duì)象解析.ppt_第2頁(yè)
JSP內(nèi)置對(duì)象解析.ppt_第3頁(yè)
JSP內(nèi)置對(duì)象解析.ppt_第4頁(yè)
JSP內(nèi)置對(duì)象解析.ppt_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余23頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JSP內(nèi)置對(duì)象 有些對(duì)象不同聲明就可以在JSP頁(yè)面的腳本部分使用 這就是JSP的內(nèi)置對(duì)象 JSP的內(nèi)置對(duì)象有 requestresponsesessionapplicationoutrequest和response對(duì)象是JSP較重要的兩個(gè)內(nèi)置對(duì)象 這兩個(gè)對(duì)象提供了對(duì)服務(wù)器和瀏覽器通信方法的控制 討論這兩個(gè)對(duì)象前 要先對(duì)HTTP協(xié)議 WordWideWeb底層協(xié)議作簡(jiǎn)單介紹 使用瀏覽器從網(wǎng)站獲取HTML頁(yè)面時(shí) 實(shí)際上在使用HTTP協(xié)議 HTTP協(xié)議規(guī)定了信息在Internet上的傳輸方法 特別規(guī)定了瀏覽器與服務(wù)器的交互方法 從網(wǎng)站獲取頁(yè)面時(shí) 瀏覽器在網(wǎng)站上打開了一個(gè)對(duì)網(wǎng)絡(luò)服務(wù)器的連接 并發(fā)出請(qǐng)求 服務(wù)器收到請(qǐng)求后回應(yīng) 所以HTTP協(xié)議被稱作 請(qǐng)求和響應(yīng) 協(xié)議 瀏覽器請(qǐng)求具有某種結(jié)構(gòu) http請(qǐng)求中包括一個(gè)請(qǐng)求行 頭域和可能的信息體 最普通的請(qǐng)求類型時(shí)對(duì)頁(yè)面的一個(gè)簡(jiǎn)單請(qǐng)求 如下例 GET hello htmHTTP 1 1Host 這是對(duì)網(wǎng)站上hello htm頁(yè)面的HTTP請(qǐng)求的例子 首行是請(qǐng)求行 規(guī)定了請(qǐng)求的方法 請(qǐng)求的資源及使用的HTTP協(xié)議的版本 此例中 請(qǐng)求的方法是GET方法 此方法用于獲取特定的資源 其他的請(qǐng)求方法包括postheaddeletetrace及put方法等 此例中的第二行是頭 header Host頭規(guī)定了網(wǎng)站上hello htm文件的Internet地址 此例中 主機(jī)是 一個(gè)典型請(qǐng)求通常包含許多頭 被稱做請(qǐng)求的http頭 頭提供了關(guān)于信息體的附加信息及請(qǐng)求的來源 其中有些頭是標(biāo)準(zhǔn)的 有些和特定的瀏覽器有關(guān) 一個(gè)請(qǐng)求還可能包含信息體 例如 信息體可包含html表單的內(nèi)容 在html表單上單擊submit按鈕時(shí) 該表單使用action post 或action get 特征 輸入表單的內(nèi)容都被發(fā)送到服務(wù)器上 該表單內(nèi)容就由post方法或get方法在請(qǐng)求的信息體中發(fā)送 服務(wù)器在收到請(qǐng)求時(shí) 返回http響應(yīng) 響應(yīng)也有某種結(jié)構(gòu) 每個(gè)響應(yīng)都由狀態(tài)行開始 可以包含幾個(gè)頭及可能的信息體 被稱作響應(yīng)的http頭和響應(yīng)信息體 這些頭和信息體由服務(wù)器送給客戶的瀏覽器 信息體就是客戶請(qǐng)求的網(wǎng)頁(yè)的運(yùn)行結(jié)果 對(duì)于JSP頁(yè)面 就是頁(yè)面的靜態(tài)信息 狀態(tài)行說明了正在使用的協(xié)議 狀態(tài)代碼及文本信息 一 request對(duì)象 HTTP通信協(xié)議是客戶與服務(wù)器之間的一種提交 請(qǐng)求 信息與相應(yīng)信息 request response 的通信協(xié)議 在JSP中 內(nèi)置對(duì)象request封裝了用戶提交的信息 那么對(duì)該對(duì)象調(diào)用相應(yīng)的方法可以獲取封裝的信息 即使用該對(duì)象可以獲取用戶提交的信息 客戶通常使用HTML表單向服務(wù)器的某個(gè)JSP頁(yè)面提交信息 表單的一般格式是 提交手段 一 request對(duì)象 其中是表單標(biāo)簽 提交手段包括通過文本框 列表 文本區(qū)域等 通過下面方法來獲取這些信息 request getParameter 控件名 1 獲取表單提交信息2 處理漢字信息當(dāng)用request對(duì)象獲取客戶提交的漢字字符時(shí) 會(huì)出現(xiàn)亂碼問題 所以對(duì)含有漢字字符的信息必須進(jìn)行特殊的處理方式 首先 將獲取的字符串用ISO 8859 1進(jìn)行編碼 并將編碼存放到一個(gè)字節(jié)數(shù)組中 然后再將這個(gè)數(shù)組轉(zhuǎn)化為字符串即可 一 request對(duì)象 Stringstr request getParameter girl byteb str getBytes ISO 8859 1 str newString b 通過上述過程 提交的任何信息 無論是漢字字符或西歐字符 都能正確地顯示 例如 Example3 3 一 request對(duì)象 3 常用方法舉例當(dāng)客戶訪問一個(gè)頁(yè)面時(shí) 會(huì)提交一個(gè)HTTP請(qǐng)求給服務(wù)器的JSP引擎 這個(gè)請(qǐng)求包括一個(gè)請(qǐng)求行 http頭和信息體 例如 post tree2 jsp HTTP 1 1host localhost 8080accept encoding gzip deflate首行叫做請(qǐng)求行 規(guī)定了向訪問的頁(yè)面請(qǐng)求提交信息的方式 如post get等方式 以及請(qǐng)求的頁(yè)面的文件名字和使用的通信協(xié)議 一 request對(duì)象 第2 3行分別是兩個(gè)頭 header 其中host accept encoding被稱為頭名字 而localhost 8080以及gzip deflate分別是他們的值 這里host的值tree2 jsp的地址 可以使用JSP引擎的內(nèi)置對(duì)象來獲取客戶提交的信息 說明如下 1 getProtocol 獲取客戶向服務(wù)器提交信息所使用的通信協(xié)議 例如http 1 1 2 getServletPath 獲取客戶請(qǐng)求的JSP頁(yè)面文件的目錄 3 getContentLength 獲取客戶提交的整個(gè)信息的長(zhǎng)度 一 request對(duì)象 4 getMethod 獲取客戶提交信息的方式 比如post或get 5 getHeader Strings 獲取http頭文件中由參數(shù)s指定的頭名字的值 一般來說s參數(shù)可取的頭名有accept refer accept language content type accept encoding user agent host content length connection cookie等 比如s取值user agent將獲取客戶的瀏覽器的版本號(hào)等信息 6 getHeaderNames 獲取頭名字的一個(gè)枚舉 7 getHeaders Strings 獲取頭文件中指定頭名字的全部值得一個(gè)枚舉 8 getRemoteAddr 獲取客戶的IP地址 一 request對(duì)象 9 getServerName 獲取服務(wù)器的名稱 10 getServerPort 獲取服務(wù)器的端口號(hào) 11 getParameterNames 獲取客戶提交的信息體部分中name參數(shù)值的一個(gè)枚舉 例如 Example3 4 jsptree2 jsp 二 response對(duì)象 當(dāng)客戶訪問一個(gè)服務(wù)器的頁(yè)面時(shí) 會(huì)提交一個(gè)HTTP請(qǐng)求 服務(wù)器收到請(qǐng)求時(shí) 返回HTTP響應(yīng) 響應(yīng)和請(qǐng)求類似 也有某種結(jié)構(gòu) 每個(gè)響應(yīng)都由狀態(tài)行開始 可以包含幾個(gè)頭及可能的信息體 網(wǎng)頁(yè)的結(jié)果輸出部分 1 動(dòng)態(tài)響應(yīng)contentType屬性當(dāng)一個(gè)客戶請(qǐng)求訪問一個(gè)JSP頁(yè)面時(shí) 如果該頁(yè)面用page指令設(shè)置頁(yè)面的contentType屬性值是text html那么JSP引擎就按照這種屬性值做出響應(yīng) 將頁(yè)面的靜態(tài)部分返回給客戶 由于page指令只能為contentType指定一個(gè)值 用來決定相應(yīng)的MIME類型 如果想動(dòng)態(tài)地改變這個(gè)屬性的值來相應(yīng)客戶 就需要使用response對(duì)象的setContentType Strings 方法來改變contentType的屬性值 二 response對(duì)象 publicvoidsetContentType Strings S的取值可以是text html text plain application x msexcel application msword例如 Example3 10 jsp 二 response對(duì)象 2 Response的HTTP文件頭Response對(duì)象可以使用方法addHeader Stringhead Stringvalue 或方法setHeader Stringhead Stringvalue 動(dòng)態(tài)地添加新的響應(yīng)頭和頭的值 并將這些頭發(fā)送給客戶的瀏覽器 如果添加的頭已經(jīng)存在 則先前的頭被覆蓋 例如 Example3 12 jsp 二 response對(duì)象 3 response重定向在某些情況下 當(dāng)響應(yīng)客戶時(shí) 需要將客戶重新引導(dǎo)至另一個(gè)頁(yè)面 例如 如果客戶輸入的表單信息不完整 就會(huì)再被引導(dǎo)到該表單的輸入頁(yè)面 可以使用下面的方法 response sendRedirect URLurl 例如 Example3 13 jsptree4 jsp 二 response對(duì)象 4 Response的狀態(tài)行當(dāng)服務(wù)器對(duì)客戶請(qǐng)求進(jìn)行響應(yīng)時(shí) 它發(fā)送的首行被稱做狀態(tài)行 狀態(tài)行包括3位數(shù)字的狀態(tài)代碼和對(duì)狀態(tài)代碼的描述 稱作原因短語(yǔ) 見p65 表3 1 三 session對(duì)象 HTTP協(xié)議是一種無狀態(tài)協(xié)議 一個(gè)客戶向服務(wù)器發(fā)出請(qǐng)求 request 然后服務(wù)器返回響應(yīng) response 連接就被關(guān)閉了 在服務(wù)器端不保留連接的有關(guān)信息 因此當(dāng)下一次連接時(shí) 服務(wù)器已沒有以前的連接信息了 同時(shí) 無法判斷這一次連接和以前的連接是否屬于同一客戶 因此 必須使用會(huì)話記錄有關(guān)連接的信息 從一個(gè)客戶打開瀏覽器并連接到服務(wù)器開始 到客戶關(guān)閉瀏覽器離開這個(gè)服務(wù)器結(jié)束 被稱作一個(gè)會(huì)話 當(dāng)一個(gè)客戶訪問一個(gè)服務(wù)器時(shí) 可能會(huì)在這個(gè)服務(wù)器的幾個(gè)頁(yè)面串之間反復(fù)連接 反復(fù)刷新一個(gè)頁(yè)面或不斷地向一個(gè)頁(yè)面提交信息等 服務(wù)器應(yīng)當(dāng)通過某種辦法知道這是同一客戶 這就需要session 會(huì)話 對(duì)象 三 session對(duì)象 1 Session對(duì)象的Id當(dāng)一個(gè)客戶首次訪問服務(wù)器上的一個(gè)JSP頁(yè)面時(shí) JSP引擎產(chǎn)生一個(gè)session對(duì)象 這個(gè)session對(duì)象調(diào)用相應(yīng)的方法可以存儲(chǔ)客戶在訪問各個(gè)頁(yè)面期間提交的各種信息 比如 姓名 號(hào)碼等信息 這個(gè)session對(duì)象被分配一個(gè)String類型的Id號(hào) JSP引擎同時(shí)將這個(gè)Id號(hào)發(fā)送到客戶端 存放在客戶的Cookie中 這樣 session對(duì)象和客戶之間建立起一一對(duì)應(yīng)關(guān)系 三 session對(duì)象 例如 session jsptom jspjerry jsp在上面的例子中 客戶在服務(wù)器的三個(gè)頁(yè)面之間進(jìn)行連接 只要不關(guān)閉瀏覽器 三個(gè)頁(yè)面的session對(duì)象是完全相同的 客戶首先訪問session jsp頁(yè)面 從這個(gè)頁(yè)面再連接到tom jsp頁(yè)面 然后從tom jsp再連接到j(luò)erry jsp頁(yè)面 三 session對(duì)象 2 Session對(duì)象與URL重寫session對(duì)象能和客戶建立起一一對(duì)應(yīng)關(guān)系依賴于客戶的瀏覽器是否支持Cookie 如果客戶端不支持Cookie 那么客戶在不同網(wǎng)頁(yè)之間的session對(duì)象可能是互不相同的 因?yàn)榉?wù)器無法將Id存放到客戶端 就不能建立session對(duì)象和客戶的一一對(duì)應(yīng)關(guān)系 如果客戶的瀏覽器不支持Cookie 可以通過URL重寫來實(shí)現(xiàn)session對(duì)象的唯一性 所謂URL重寫 就是當(dāng)客戶從一個(gè)頁(yè)面重新連接到一個(gè)頁(yè)面時(shí) 通過向這個(gè)新的URL添加參數(shù) 把session對(duì)象的Id傳帶過去 這樣就可以保障客戶在該網(wǎng)站各個(gè)頁(yè)面中的session對(duì)象是完全相同的 三 session對(duì)象 Stringstr response encodeRedirectURL jerry jsp 3 Session對(duì)象的常用方法 1 publicvoidsetAttribute Stringkey Objectobj session對(duì)象類似于散列表 session對(duì)象可以調(diào)用該方法將參數(shù)Object指定的對(duì)象obj添加到session對(duì)象中 并為添加的對(duì)象指定了一個(gè)索引關(guān)鍵字 如果添加的兩個(gè)對(duì)象的關(guān)鍵字相同 則先前添加的對(duì)象被清除 2 publicObjectgetAttribute Stringkey 獲取session對(duì)象中含有關(guān)鍵字是key的對(duì)象 由于任何對(duì)象都可以添加到session對(duì)象中 因此用該方法取回對(duì)象時(shí) 應(yīng)強(qiáng)制轉(zhuǎn)化為原來的類型 三 session對(duì)象 3 publicEnumerationgetAttributeNames session對(duì)象調(diào)用該方法產(chǎn)生一個(gè)枚舉對(duì)象 該枚舉對(duì)象使用nextElements 方法遍歷session對(duì)象中所有對(duì)象 4 publiclonggetCreationTime session對(duì)象調(diào)用該方法可以獲取該對(duì)象創(chuàng)建的時(shí)間 單位時(shí)間是毫秒 5 publiclonggetLastAccessedTime 獲取當(dāng)前session對(duì)象最后一次被操作的時(shí)間 單位是毫秒 6 publicintgetMaxInactiveIterval 設(shè)置session對(duì)象的生存時(shí)間 三 session對(duì)象 7 publicvoidsetMaxInactiveIterval intn 設(shè)置session對(duì)象的生存時(shí)間 8 publicvoidremoveAttribute Stringkey 從當(dāng)前session對(duì)象中刪除關(guān)鍵字是key的對(duì)象 9 publicStringgetId 獲取session對(duì)象的編號(hào) 10 publicvoidinvalidate 使得session無效例如 Example3 17 jspfirst jspaccount jsp 三 session對(duì)象 從Example3 17 jsp中得到boy的值 然后將之保存到session對(duì)象中 關(guān)鍵字為name String姓名 String session getAttribute name 通過session對(duì)象得到被保存的關(guān)鍵字為name的變量 并將之輸出 4 計(jì)數(shù)器 四 application對(duì)象 不同客戶的session對(duì)象是互不相同的 與session對(duì)象不同的是application對(duì)象對(duì)所有客戶來說都是相同的 1 Application對(duì)象的常用方法 1 voidsetAttribute Stringkey Objectobj 2 ObjectgetAttribute 3 EnumerationgetAttributeNames 4 voidremouveAttribute Stringkey 5 St

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)網(wǎng)僅提供信息存儲(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)論