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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

8、ee架構方法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架構 使用date類java與j2ee架構方法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架構 使用calendar類java與j2e

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

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

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

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

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

15、象。java與j2ee架構session.getid()方法你的session對象的id是:java與j2ee架構session對象方法示例n設置和獲取session屬性值 void setattribute(string name,object value)object getattribute(string name)java與j2ee架構設置和獲取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對象,因此,對返回的對象要用強制轉換把得到的對象轉換為此對象原來的類型.n 如果屬性不存在,返回空值。java與j2ee架構基本用法示例index.jsp 1.jsp字符串類型值需強制轉換java與j2ee架構問題討論問題1:在第一次運行index.jsp后且不關閉,下一次直接運行1.jsp有結果嗎?如果關閉又如何?問題2:如果沒有運行index.jsp,而先運行1.jsp有結果嗎?問題3:如果將 session.se

17、tattribute(id,1234);改為 session.setattribute(id,1234);java與j2ee架構示例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字符串類型值需強制轉換java與j2ee架構 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架構 姓名 session登錄問題java與j2ee架構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架構arryalist基本用法n arraylist類是個 java.util 包中

20、的類庫,存放的是object類型,要從數(shù)組列表中提取元素時,需要進行類型轉換. 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架構 姓名 補充:session的注銷 index.jsplogcheck2.jsplogout.jspjava與j2ee架構簡易購物車(session版)buy1.jspbuy2.jspindex.jspdisplay.jsp關鍵點:標簽跳轉后將會在新頁面中產(chǎn)生新的request.java與j2ee架構歡迎購物index.jspjava與j2ee架構 各種肉大甩賣,一律十塊: 豬肉 牛肉 羊肉 買點別的 查看購物車 buy1.jsp采用不同名稱便于session操作java與j2ee架構 各種球大甩賣,一律八塊: 籃球 足球 排

22、球 買點別的 查看購物車 buy2.jspjava與j2ee架構 您的購物車: % 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 + ); /再復制5個,依次改為s2s6% 返回display.jsp【return】處理漢字值java與j2ee架構8.4 application對象n application對象負責提供應用程序在服務器中運行時的一些全局信息,客戶端使用的application對象都是一樣的(實現(xiàn)用戶間數(shù)據(jù)的共享)。n 服務器一旦啟動,就會自動創(chuàng)建application對象,并一直保持,直到服務器關閉。n 在此期間,在任何地方對application對象相關屬性的操

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論