第8章JSP內(nèi)置對(duì)象(4學(xué)時(shí))_第1頁(yè)
第8章JSP內(nèi)置對(duì)象(4學(xué)時(shí))_第2頁(yè)
第8章JSP內(nèi)置對(duì)象(4學(xué)時(shí))_第3頁(yè)
第8章JSP內(nèi)置對(duì)象(4學(xué)時(shí))_第4頁(yè)
第8章JSP內(nèi)置對(duì)象(4學(xué)時(shí))_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、java與j2ee架構(gòu)計(jì)算機(jī)學(xué)院java與j2ee架構(gòu)第8章 jsp內(nèi)置對(duì)象8.1 request對(duì)象8.2 reponse對(duì)象8.3 session對(duì)象8.4 application對(duì)象8.5 out對(duì)象java與j2ee架構(gòu)8.1 request對(duì)象n request對(duì)象封裝了客戶(hù)端提交的數(shù)據(jù)信息。n 用request對(duì)象的相關(guān)方法可獲得提交的各種數(shù)據(jù)。java與j2ee架構(gòu)request對(duì)象方法示例1. 獲取客戶(hù)端和服務(wù)器端參數(shù) 【go】2. 獲取客戶(hù)端發(fā)送給服務(wù)器端的參數(shù)值:string getparameter(string name) 【go】 string getparamete

2、rvalues(string name) 【go】3. 獲取請(qǐng)求中所有參數(shù)的集合enumeration getparameternames() 【go】【return】java與j2ee架構(gòu)1. 獲取客戶(hù)端和服務(wù)器端參數(shù)示例 請(qǐng)求方式:請(qǐng)求用的協(xié)議:請(qǐng)求的文件:響應(yīng)請(qǐng)求的服務(wù)器名稱(chēng):響應(yīng)請(qǐng)求的服務(wù)器的端口號(hào):獲取發(fā)出請(qǐng)求的客戶(hù)端ip地址:獲取發(fā)出請(qǐng)求的客戶(hù)端主機(jī)名:獲取發(fā)出請(qǐng)求的客戶(hù)端端口號(hào):/的真實(shí)路徑:表單提交來(lái)的值: 【return】java與j2ee架構(gòu)2. request.getparameter()max用函數(shù)實(shí)現(xiàn) max( , , ) java與j2ee架構(gòu)b)if(ac) re

3、turn a;else return c; elseif(bc) return b;else return c; % max.jspjava與j2ee架構(gòu)練習(xí)全錯(cuò)或不選擇java與j2ee架構(gòu)詩(shī)人李白是中國(guó)歷史上哪個(gè)朝代的人: 宋朝 唐朝 明朝 元朝 小說(shuō)紅樓夢(mèng)的作者是: 曹雪芹 羅貫中 李白 司馬遷 index.jspjava與j2ee架構(gòu)您得了分answer.jsp什么功能?【return】多項(xiàng)選擇如何操作?java與j2ee架構(gòu) 姓名 選出你喜歡吃的水果: 蘋(píng)果 西瓜 桃子 葡萄 input.htmlrequest.getparametervalues()java與j2ee架構(gòu) 你好,

4、% name=request.getparameter(username); string stars=new string(你喜歡吃的水果有:); string paramvalues = request.getparametervalues(checkbox1); for(int i=0;i getparam.jsp思考問(wèn)題如果value值為中文?如果不知變量名?java與j2ee架構(gòu)request對(duì)象獲取客戶(hù)提交漢字的亂碼問(wèn)題n首先,將獲取的字符串用iso-8859-1進(jìn)行編碼,并將編碼存放到一個(gè)字節(jié)數(shù)組中,然后再將這個(gè)屬組轉(zhuǎn)化為字符串對(duì)象即可。如: string str=request

5、.getparameter(name);byte a=str.getbytes(iso-8859-1);str=new string(a);【return】java與j2ee架構(gòu)3. request.getparameternames()stuidstuname 學(xué)號(hào): 姓名: 獲取變量名java與j2ee架構(gòu)參考show.jsp %string str=;enumeration e = request.getparameternames();while(e.hasmoreelements() str=e.nextelement(); out.println(str+:+request.get

6、parameter(str)+); %枚舉類(lèi)型java與j2ee架構(gòu)java.util.enumerationn boolean hasmoreelements()測(cè)試此枚舉是否包含更多的元素。n object nextelement()如果此枚舉對(duì)象至少還有一個(gè)可提供的元素,則返回此枚舉的下一個(gè)元素;返回的是object對(duì)象,需強(qiáng)制轉(zhuǎn)換為原有類(lèi)型。 iterator 接口逐漸取代enumeration接口 【return】java與j2ee架構(gòu)8.2 reponse對(duì)象n response對(duì)象代表服務(wù)器對(duì)客戶(hù)端請(qǐng)求的響應(yīng),用于向客戶(hù)端發(fā)送數(shù)據(jù)。java與j2ee架構(gòu)response對(duì)象方法示

7、例1. 設(shè)置指定名稱(chēng)的http頭的值void setheader(string name, string value)2. 把響應(yīng)發(fā)送到另外一個(gè)位置進(jìn)行處理void sendredirect(string location)【return】java與j2ee架構(gòu)1. reponse.setheader()方法n 設(shè)置頁(yè)面自動(dòng)刷新:response.setheader(refresh, 秒數(shù)); n 設(shè)置定時(shí)跳轉(zhuǎn)頁(yè)面:response.setheader(refresh, 秒數(shù) ; url=頁(yè)面名稱(chēng)) ; java與j2ee架構(gòu)示例1% %java與j2ee架構(gòu)示例2秒鐘能自動(dòng)更新java與j2

8、ee架構(gòu)方法1:java.util.date類(lèi)date today=new date();n getyear():年份 y 由整數(shù) (y-1900) 表示 n getmonth():月份由0至11的表示:0是一月,11是十二月。 n getdate():月份中的某一天,值在 1 和 31 之間。n gethours():小時(shí)由從 0 至 23 的表示n getminutes():分鐘由 0 至 59 的表示 n getseconds():秒由 0 至 61 的表示, 值 60 和 61 只對(duì)閏秒發(fā)生。java與j2ee架構(gòu) 使用date類(lèi)java與j2ee架構(gòu)方法2:java.util.cal

9、endar類(lèi)calendar now = calendar.getinstance();主要用now.get()方法n get(calendar.year)n get(calendar.month)n get(calendar.date) 或 get(day_of_month)n get(calendar.hour) 0-11(12小時(shí)制)get(calendar.hour_of_day) 0-23(24小時(shí)制)n get(calendar.minute)n get(calendar.second)calendar符號(hào)常量(要大寫(xiě))java與j2ee架構(gòu) 使用calendar類(lèi)java與j2e

10、e架構(gòu)示例3【return】設(shè)置定時(shí)跳轉(zhuǎn)頁(yè)面:response.setheader(refresh, 5 ; url=http:/) ; 如何顯示倒計(jì)時(shí)?java與j2ee架構(gòu)2. reponse.sendredirect()方法%date today =new date();int h= today.gethours();if(h注意:跳轉(zhuǎn)后客戶(hù)端看到的是新頁(yè)面地址。java與j2ee架構(gòu)練習(xí)reponse.sendredirect()跳轉(zhuǎn)實(shí)現(xiàn)java與j2ee架構(gòu)簡(jiǎn)單用法 頁(yè)面1 頁(yè)面2 但此例value只是是數(shù)字串java與j2ee架構(gòu)參考請(qǐng)選擇: 武漢科技大學(xué) 華中科技大學(xué) 武漢大學(xué)

11、go.jspjava與j2ee架構(gòu)sendredirect()傳遞參數(shù)n 傳遞參數(shù)示例:response.sendredirect(1.jsp?id=1234)request.getparameter(id)1.jspjava與j2ee架構(gòu)思考n 區(qū)別: response.sendredirect( ) java與j2ee架構(gòu)主要區(qū)別jsp:forwardresponse.sendredirect()效率高,速度快效率低,速度慢地址欄不改變跳轉(zhuǎn)服務(wù)器端跳轉(zhuǎn),服務(wù)器之間內(nèi)部轉(zhuǎn),相同的request,可傳參數(shù)地址欄改變跳轉(zhuǎn)客戶(hù)端跳轉(zhuǎn)(其中地址可以是任意的)使用forward時(shí),request設(shè)置的

12、屬性(setattribute)依然能保留在下一個(gè)頁(yè)面不能保存request屬性地址改變了,客戶(hù)端跳轉(zhuǎn),不同的request傳遞參數(shù):url傳遞參數(shù):response.sendredirect(test.jsp?id=1234)無(wú)條件立刻跳轉(zhuǎn)之后的代碼不再被執(zhí)行;所有代碼執(zhí)行完畢之后再跳轉(zhuǎn)地址中的”/”代表是:http:/localhost:8080/test地址中的”/”代表是:http:/localhost:8080/【return】java與j2ee架構(gòu)引例 姓名 1.jsp2.jspjava與j2ee架構(gòu)8.3 session對(duì)象n session對(duì)象代表服務(wù)器與客戶(hù)端所建立的會(huì)話(huà).n

13、從一個(gè)客戶(hù)端打開(kāi)瀏覽器并連接到服務(wù)器開(kāi)始,到客戶(hù)關(guān)閉瀏覽器離開(kāi)這個(gè)服務(wù)器結(jié)束,被稱(chēng)為一個(gè)會(huì)話(huà).n 為什么需要session?n當(dāng)一個(gè)客戶(hù)端訪問(wèn)一個(gè)服務(wù)器時(shí),可能會(huì)在這個(gè)服務(wù)器的多個(gè)頁(yè)面之間反復(fù)跳轉(zhuǎn),服務(wù)器應(yīng)當(dāng)通過(guò)某種辦法來(lái)識(shí)別這是來(lái)自同一個(gè)客戶(hù)端的不同請(qǐng)求,這種辦法通常就是使用session對(duì)象。nsession對(duì)象可以實(shí)現(xiàn)在一個(gè)會(huì)話(huà)期間的多頁(yè)面間的數(shù)據(jù)共享/傳遞。java與j2ee架構(gòu)理解sessionnhttp是無(wú)狀態(tài)(stateless)協(xié)議,web服務(wù)器對(duì)每一個(gè)客戶(hù)端請(qǐng)求都沒(méi)有歷史記憶.nsession用來(lái)保存客戶(hù)端狀態(tài)信息,由web服務(wù)器寫(xiě)入,存于客戶(hù)端.nweb服務(wù)器通過(guò)讀取客戶(hù)端

14、提交的session來(lái)獲取客戶(hù)端的狀態(tài)信息。java與j2ee架構(gòu)session對(duì)象的idn 當(dāng)一個(gè)客戶(hù)首次訪問(wèn)服務(wù)器上的一個(gè)jsp頁(yè)面時(shí),jsp引擎將產(chǎn)生一個(gè)session對(duì)象,同時(shí)分配一個(gè)string類(lèi)型的id號(hào)n jsp引擎同時(shí)將這個(gè)id號(hào)發(fā)送到客戶(hù)端,存放在cookie中,這樣session對(duì)象和客戶(hù)之間就建立了一一對(duì)應(yīng)的關(guān)系.n 當(dāng)客戶(hù)再訪問(wèn)連接該服務(wù)器的其他頁(yè)面時(shí),不再分配給客戶(hù)新的session對(duì)象,直到客戶(hù)關(guān)閉瀏覽器后,服務(wù)器端該客戶(hù)的session對(duì)象才取消,并且和客戶(hù)的會(huì)話(huà)對(duì)應(yīng)關(guān)系消失。n 當(dāng)客戶(hù)重新打開(kāi)瀏覽器再連接到該服務(wù)器時(shí),服務(wù)器為該客戶(hù)再創(chuàng)建一個(gè)新的session對(duì)

15、象。java與j2ee架構(gòu)session.getid()方法你的session對(duì)象的id是:java與j2ee架構(gòu)session對(duì)象方法示例n設(shè)置和獲取session屬性值 void setattribute(string name,object value)object getattribute(string name)java與j2ee架構(gòu)設(shè)置和獲取session屬性值n session.setatrribute(string name, object value)n 用value來(lái)初始化session對(duì)象某個(gè)屬性(name指定)的值;n 如果指定的屬性不存在,則新建一個(gè);如果已存在,則更

16、改name屬性的值。n session.getatrribute(string name)n 獲得由name指定名稱(chēng)的session對(duì)象屬性的值;n 方法返回的是一個(gè)object對(duì)象,因此,對(duì)返回的對(duì)象要用強(qiáng)制轉(zhuǎn)換把得到的對(duì)象轉(zhuǎn)換為此對(duì)象原來(lái)的類(lèi)型.n 如果屬性不存在,返回空值。java與j2ee架構(gòu)基本用法示例index.jsp 1.jsp字符串類(lèi)型值需強(qiáng)制轉(zhuǎn)換java與j2ee架構(gòu)問(wèn)題討論問(wèn)題1:在第一次運(yùn)行index.jsp后且不關(guān)閉,下一次直接運(yùn)行1.jsp有結(jié)果嗎?如果關(guān)閉又如何?問(wèn)題2:如果沒(méi)有運(yùn)行index.jsp,而先運(yùn)行1.jsp有結(jié)果嗎?問(wèn)題3:如果將 session.se

17、tattribute(id,1234);改為 session.setattribute(id,1234);java與j2ee架構(gòu)示例index.jsp % int sum=0; string s1=(string)session.getattribute(start); string s2=(string)session.getattribute(end); int a=integer.parseint(s1); int b=integer.parseint(s2); for(int i=a;i 1.jsp字符串類(lèi)型值需強(qiáng)制轉(zhuǎn)換java與j2ee架構(gòu) index.jsp % int sum=0

18、; int a=(integer)session.getattribute(start); int b=(integer)session.getattribute(end); for(int i=a;i 1.jspint類(lèi)型java與j2ee架構(gòu) 姓名 session登錄問(wèn)題java與j2ee架構(gòu)logcheck.jsp%page import=java.util.* % names=new arraylist();names.add(name);session.setattribute(lognames,names);haslog=true;promt= 歡迎+name+!你的名字已經(jīng)寫(xiě)入s

19、ession ; for(int i=0;inames.size();i+) string temp=(string)names.get(i); if(temp.equals(name) promt=name+你已經(jīng)登錄; haslog=true; break; names.add(name);session.setattribute(lognames,names);haslog=true;promt= 歡迎+name+!你的名字已經(jīng)寫(xiě)入session ; 思考問(wèn)題:(3)與(1)有什么區(qū)別?java與j2ee架構(gòu)arryalist基本用法n arraylist類(lèi)是個(gè) java.util 包中

20、的類(lèi)庫(kù),存放的是object類(lèi)型,要從數(shù)組列表中提取元素時(shí),需要進(jìn)行類(lèi)型轉(zhuǎn)換. n 聲明形式:n arraylist a = new arraylist(); 無(wú)需指定大小,可自動(dòng)改變大小n 常用方法:nadd() 添加新元素:a.add(object);nsize() 代替 length 計(jì)算元素的個(gè)數(shù):a.size()nget(i) 代替 ai 訪問(wèn)元素; arraylist a=new arraylist();for ( int i=0; i10; i+) a.add(i);for ( int i=0; ia.size(); i+) int t=(integer)a.get(i); sy

21、stem.out.println(t+1); java與j2ee架構(gòu) 姓名 補(bǔ)充:session的注銷(xiāo) index.jsplogcheck2.jsplogout.jspjava與j2ee架構(gòu)簡(jiǎn)易購(gòu)物車(chē)(session版)buy1.jspbuy2.jspindex.jspdisplay.jsp關(guān)鍵點(diǎn):標(biāo)簽跳轉(zhuǎn)后將會(huì)在新頁(yè)面中產(chǎn)生新的request.java與j2ee架構(gòu)歡迎購(gòu)物index.jspjava與j2ee架構(gòu) 各種肉大甩賣(mài),一律十塊: 豬肉 牛肉 羊肉 買(mǎi)點(diǎn)別的 查看購(gòu)物車(chē) buy1.jsp采用不同名稱(chēng)便于session操作java與j2ee架構(gòu) 各種球大甩賣(mài),一律八塊: 籃球 足球 排

22、球 買(mǎi)點(diǎn)別的 查看購(gòu)物車(chē) buy2.jspjava與j2ee架構(gòu) 您的購(gòu)物車(chē): % string str = ; if(session.getattribute(s1) != null) str = (string)session.getattribute(s1); byte b=str.getbytes(iso-8859-1); str=new string(b); out.print(str + ); /再?gòu)?fù)制5個(gè),依次改為s2s6% 返回display.jsp【return】處理漢字值java與j2ee架構(gòu)8.4 application對(duì)象n application對(duì)象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時(shí)的一些全局信息,客戶(hù)端使用的application對(duì)象都是一樣的(實(shí)現(xiàn)用戶(hù)間數(shù)據(jù)的共享)。n 服務(wù)器一旦啟動(dòng),就會(huì)自動(dòng)創(chuàng)建application對(duì)象,并一直保持,直到服務(wù)器關(guān)閉。n 在此期間,在任何地方對(duì)application對(duì)象相關(guān)屬性的操

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論