




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、java與j2ee架構(gòu)計算機(jī)學(xué)院java與j2ee架構(gòu)第8章 jsp內(nèi)置對象8.1 request對象8.2 reponse對象8.3 session對象8.4 application對象8.5 out對象java與j2ee架構(gòu)8.1 request對象n request對象封裝了客戶端提交的數(shù)據(jù)信息。n 用request對象的相關(guān)方法可獲得提交的各種數(shù)據(jù)。java與j2ee架構(gòu)request對象方法示例1. 獲取客戶端和服務(wù)器端參數(shù) 【go】2. 獲取客戶端發(fā)送給服務(wù)器端的參數(shù)值:string getparameter(string name) 【go】 string getparamete
2、rvalues(string name) 【go】3. 獲取請求中所有參數(shù)的集合enumeration getparameternames() 【go】【return】java與j2ee架構(gòu)1. 獲取客戶端和服務(wù)器端參數(shù)示例 請求方式:請求用的協(xié)議:請求的文件:響應(yīng)請求的服務(wù)器名稱:響應(yīng)請求的服務(wù)器的端口號:獲取發(fā)出請求的客戶端ip地址:獲取發(fā)出請求的客戶端主機(jī)名:獲取發(fā)出請求的客戶端端口號:/的真實路徑:表單提交來的值: 【return】java與j2ee架構(gòu)2. request.getparameter()max用函數(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í)全錯或不選擇java與j2ee架構(gòu)詩人李白是中國歷史上哪個朝代的人: 宋朝 唐朝 明朝 元朝 小說紅樓夢的作者是: 曹雪芹 羅貫中 李白 司馬遷 index.jspjava與j2ee架構(gòu)您得了分answer.jsp什么功能?【return】多項選擇如何操作?java與j2ee架構(gòu) 姓名 選出你喜歡吃的水果: 蘋果 西瓜 桃子 葡萄 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思考問題如果value值為中文?如果不知變量名?java與j2ee架構(gòu)request對象獲取客戶提交漢字的亂碼問題n首先,將獲取的字符串用iso-8859-1進(jìn)行編碼,并將編碼存放到一個字節(jié)數(shù)組中,然后再將這個屬組轉(zhuǎn)化為字符串對象即可。如: 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é)號: 姓名: 獲取變量名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)+); %枚舉類型java與j2ee架構(gòu)java.util.enumerationn boolean hasmoreelements()測試此枚舉是否包含更多的元素。n object nextelement()如果此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素;返回的是object對象,需強(qiáng)制轉(zhuǎn)換為原有類型。 iterator 接口逐漸取代enumeration接口 【return】java與j2ee架構(gòu)8.2 reponse對象n response對象代表服務(wù)器對客戶端請求的響應(yīng),用于向客戶端發(fā)送數(shù)據(jù)。java與j2ee架構(gòu)response對象方法示
7、例1. 設(shè)置指定名稱的http頭的值void setheader(string name, string value)2. 把響應(yīng)發(fā)送到另外一個位置進(jìn)行處理void sendredirect(string location)【return】java與j2ee架構(gòu)1. reponse.setheader()方法n 設(shè)置頁面自動刷新:response.setheader(refresh, 秒數(shù)); n 設(shè)置定時跳轉(zhuǎn)頁面:response.setheader(refresh, 秒數(shù) ; url=頁面名稱) ; java與j2ee架構(gòu)示例1% %java與j2ee架構(gòu)示例2秒鐘能自動更新java與j2
8、ee架構(gòu)方法1:java.util.date類date today=new date();n getyear():年份 y 由整數(shù) (y-1900) 表示 n getmonth():月份由0至11的表示:0是一月,11是十二月。 n getdate():月份中的某一天,值在 1 和 31 之間。n gethours():小時由從 0 至 23 的表示n getminutes():分鐘由 0 至 59 的表示 n getseconds():秒由 0 至 61 的表示, 值 60 和 61 只對閏秒發(fā)生。java與j2ee架構(gòu) 使用date類java與j2ee架構(gòu)方法2:java.util.cal
9、endar類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小時制)get(calendar.hour_of_day) 0-23(24小時制)n get(calendar.minute)n get(calendar.second)calendar符號常量(要大寫)java與j2ee架構(gòu) 使用calendar類java與j2e
10、e架構(gòu)示例3【return】設(shè)置定時跳轉(zhuǎn)頁面:response.setheader(refresh, 5 ; url=http:/) ; 如何顯示倒計時?java與j2ee架構(gòu)2. reponse.sendredirect()方法%date today =new date();int h= today.gethours();if(h注意:跳轉(zhuǎn)后客戶端看到的是新頁面地址。java與j2ee架構(gòu)練習(xí)reponse.sendredirect()跳轉(zhuǎn)實現(xiàn)java與j2ee架構(gòu)簡單用法 頁面1 頁面2 但此例value只是是數(shù)字串java與j2ee架構(gòu)參考請選擇: 武漢科技大學(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)客戶端跳轉(zhuǎn)(其中地址可以是任意的)使用forward時,request設(shè)置的
12、屬性(setattribute)依然能保留在下一個頁面不能保存request屬性地址改變了,客戶端跳轉(zhuǎn),不同的request傳遞參數(shù):url傳遞參數(shù):response.sendredirect(test.jsp?id=1234)無條件立刻跳轉(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對象n session對象代表服務(wù)器與客戶端所建立的會話.n
13、從一個客戶端打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個服務(wù)器結(jié)束,被稱為一個會話.n 為什么需要session?n當(dāng)一個客戶端訪問一個服務(wù)器時,可能會在這個服務(wù)器的多個頁面之間反復(fù)跳轉(zhuǎn),服務(wù)器應(yīng)當(dāng)通過某種辦法來識別這是來自同一個客戶端的不同請求,這種辦法通常就是使用session對象。nsession對象可以實現(xiàn)在一個會話期間的多頁面間的數(shù)據(jù)共享/傳遞。java與j2ee架構(gòu)理解sessionnhttp是無狀態(tài)(stateless)協(xié)議,web服務(wù)器對每一個客戶端請求都沒有歷史記憶.nsession用來保存客戶端狀態(tài)信息,由web服務(wù)器寫入,存于客戶端.nweb服務(wù)器通過讀取客戶端
14、提交的session來獲取客戶端的狀態(tài)信息。java與j2ee架構(gòu)session對象的idn 當(dāng)一個客戶首次訪問服務(wù)器上的一個jsp頁面時,jsp引擎將產(chǎn)生一個session對象,同時分配一個string類型的id號n jsp引擎同時將這個id號發(fā)送到客戶端,存放在cookie中,這樣session對象和客戶之間就建立了一一對應(yīng)的關(guān)系.n 當(dāng)客戶再訪問連接該服務(wù)器的其他頁面時,不再分配給客戶新的session對象,直到客戶關(guān)閉瀏覽器后,服務(wù)器端該客戶的session對象才取消,并且和客戶的會話對應(yīng)關(guān)系消失。n 當(dāng)客戶重新打開瀏覽器再連接到該服務(wù)器時,服務(wù)器為該客戶再創(chuàng)建一個新的session對
15、象。java與j2ee架構(gòu)session.getid()方法你的session對象的id是:java與j2ee架構(gòu)session對象方法示例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來初始化session對象某個屬性(name指定)的值;n 如果指定的屬性不存在,則新建一個;如果已存在,則更
16、改name屬性的值。n session.getatrribute(string name)n 獲得由name指定名稱的session對象屬性的值;n 方法返回的是一個object對象,因此,對返回的對象要用強(qiáng)制轉(zhuǎn)換把得到的對象轉(zhuǎn)換為此對象原來的類型.n 如果屬性不存在,返回空值。java與j2ee架構(gòu)基本用法示例index.jsp 1.jsp字符串類型值需強(qiáng)制轉(zhuǎn)換java與j2ee架構(gòu)問題討論問題1:在第一次運行index.jsp后且不關(guān)閉,下一次直接運行1.jsp有結(jié)果嗎?如果關(guān)閉又如何?問題2:如果沒有運行index.jsp,而先運行1.jsp有結(jié)果嗎?問題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字符串類型值需強(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類型java與j2ee架構(gòu) 姓名 session登錄問題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)寫入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)寫入session ; 思考問題:(3)與(1)有什么區(qū)別?java與j2ee架構(gòu)arryalist基本用法n arraylist類是個 java.util 包中
20、的類庫,存放的是object類型,要從數(shù)組列表中提取元素時,需要進(jìn)行類型轉(zhuǎn)換. n 聲明形式:n arraylist a = new arraylist(); 無需指定大小,可自動改變大小n 常用方法:nadd() 添加新元素:a.add(object);nsize() 代替 length 計算元素的個數(shù):a.size()nget(i) 代替 ai 訪問元素; 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的注銷 index.jsplogcheck2.jsplogout.jspjava與j2ee架構(gòu)簡易購物車(session版)buy1.jspbuy2.jspindex.jspdisplay.jsp關(guān)鍵點:標(biāo)簽跳轉(zhuǎn)后將會在新頁面中產(chǎn)生新的request.java與j2ee架構(gòu)歡迎購物index.jspjava與j2ee架構(gòu) 各種肉大甩賣,一律十塊: 豬肉 牛肉 羊肉 買點別的 查看購物車 buy1.jsp采用不同名稱便于session操作java與j2ee架構(gòu) 各種球大甩賣,一律八塊: 籃球 足球 排
22、球 買點別的 查看購物車 buy2.jspjava與j2ee架構(gòu) 您的購物車: % 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 + ); /再復(fù)制5個,依次改為s2s6% 返回display.jsp【return】處理漢字值java與j2ee架構(gòu)8.4 application對象n application對象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運行時的一些全局信息,客戶端使用的application對象都是一樣的(實現(xiàn)用戶間數(shù)據(jù)的共享)。n 服務(wù)器一旦啟動,就會自動創(chuàng)建application對象,并一直保持,直到服務(wù)器關(guān)閉。n 在此期間,在任何地方對application對象相關(guān)屬性的操
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 起點合作協(xié)議合同協(xié)議
- 解除無固定合同協(xié)議
- 設(shè)備共用協(xié)議書范本
- 購買商鋪電子合同協(xié)議
- 財產(chǎn)分割協(xié)議書范本
- 解除房產(chǎn)協(xié)議書范本
- 訂貨訂金協(xié)議書范本
- 購買五險險合同協(xié)議
- 《第04節(jié) 機(jī)械能守恒定律》導(dǎo)學(xué)案1
- 2025年金融專業(yè)知識考試試題及答案
- 電梯的應(yīng)急預(yù)案培訓(xùn)
- GB/T 45166-2024無損檢測紅外熱成像檢測總則
- 《水分測定法培訓(xùn)》課件
- 某海上平臺的油氣集輸工藝設(shè)計20000字【論文】
- 脫硝催化劑環(huán)境影響評估-洞察分析
- 白細(xì)胞疾病及其檢驗(血液學(xué)檢驗課件)
- 骨科圍手術(shù)期課件
- 【MOOC】《研究生英語科技論文寫作》(北京科技大學(xué))中國大學(xué)MOOC慕課答案
- 案例3 哪吒-全球首個“海空一體”跨域航行器平臺
- T-CTSS 3-2024 茶藝職業(yè)技能競賽技術(shù)規(guī)程
- 產(chǎn)科護(hù)士進(jìn)修個人總結(jié)5篇
評論
0/150
提交評論