第6章JSP的內(nèi)置對(duì)象_第1頁(yè)
第6章JSP的內(nèi)置對(duì)象_第2頁(yè)
第6章JSP的內(nèi)置對(duì)象_第3頁(yè)
第6章JSP的內(nèi)置對(duì)象_第4頁(yè)
第6章JSP的內(nèi)置對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩149頁(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、1第第6章章JSP的內(nèi)置對(duì)象的內(nèi)置對(duì)象6.1 out對(duì)象對(duì)象6.2 page對(duì)象對(duì)象6.3 request對(duì)象對(duì)象6.4 response對(duì)象對(duì)象6.5 session對(duì)象對(duì)象6.6 pageContext對(duì)象對(duì)象6.7 config對(duì)象對(duì)象6.8 exception對(duì)象對(duì)象6.9 application對(duì)象對(duì)象2在在JSP頁(yè)面中頁(yè)面中不需要預(yù)先聲明不需要預(yù)先聲明和和創(chuàng)建創(chuàng)建這些對(duì)這些對(duì)象就能直接使用。象就能直接使用。編寫(xiě)編寫(xiě)JSP的人員的人員不需要不需要對(duì)這些內(nèi)部對(duì)象進(jìn)行對(duì)這些內(nèi)部對(duì)象進(jìn)行實(shí)例化實(shí)例化,只要調(diào)用其中的方法就能實(shí)現(xiàn)特定,只要調(diào)用其中的方法就能實(shí)現(xiàn)特定的功能,這給的功能,這給Ja

2、va Web編程帶來(lái)很大的方便。編程帶來(lái)很大的方便。 36.1 out對(duì)象對(duì)象6.1.1 out對(duì)象的方法對(duì)象的方法6.1.2 out對(duì)象實(shí)例對(duì)象實(shí)例46.1.1 out對(duì)象的方法對(duì)象的方法out對(duì)象主要用來(lái)向客戶(hù)輸出各種數(shù)據(jù)類(lèi)型的內(nèi)容對(duì)象主要用來(lái)向客戶(hù)輸出各種數(shù)據(jù)類(lèi)型的內(nèi)容,并并管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)(buffer)。緩沖區(qū)。緩沖區(qū)默認(rèn)值是默認(rèn)值是8KB,可以通過(guò),可以通過(guò)page指令來(lái)改變緩沖區(qū)的指令來(lái)改變緩沖區(qū)的大小。大小。out對(duì)象被封裝成對(duì)象被封裝成javax.servlet.jsp.JspWriter 接口接口。它表示為客戶(hù)打開(kāi)的輸出流它表示為客戶(hù)

3、打開(kāi)的輸出流(output stream),通過(guò)通過(guò)Jsp容器變換為容器變換為java.io.PrintWriter類(lèi)對(duì)象類(lèi)對(duì)象, PrintWriter使用它向客戶(hù)端發(fā)送輸出流。使用它向客戶(hù)端發(fā)送輸出流。5out對(duì)象能把結(jié)果對(duì)象能把結(jié)果輸出輸出到網(wǎng)頁(yè)上,用來(lái)到網(wǎng)頁(yè)上,用來(lái)控制控制管管理輸出緩沖區(qū)和輸出流。理輸出緩沖區(qū)和輸出流。out是專(zhuān)門(mén)為向客戶(hù)端發(fā)送輸出而設(shè)計(jì)的,是專(zhuān)門(mén)為向客戶(hù)端發(fā)送輸出而設(shè)計(jì)的,out變量是從變量是從PageContext對(duì)象初始化而獲得對(duì)象初始化而獲得的。的。outout對(duì)象的作用域是對(duì)象的作用域是pagepage。6out對(duì)象的主要對(duì)象的主要方法如下方法如下:1.pr

4、int()/println():用于輸出數(shù)據(jù)。用于輸出數(shù)據(jù)。Out對(duì)象是對(duì)象是JSP中使用中使用最為頻繁最為頻繁的對(duì)象,它的的對(duì)象,它的print()和和println()方法最常用。方法最常用。v print()方法把()方法把Java對(duì)象原始數(shù)據(jù)類(lèi)型輸對(duì)象原始數(shù)據(jù)類(lèi)型輸入到客戶(hù)端的緩沖區(qū),入到客戶(hù)端的緩沖區(qū),v println()方法除了把內(nèi)容輸出到客戶(hù)端,方法除了把內(nèi)容輸出到客戶(hù)端,還在后面添加一個(gè)還在后面添加一個(gè)空行空行。(。(標(biāo)簽中才標(biāo)簽中才可見(jiàn))可見(jiàn))2.newLine()方法:用于輸出一個(gè)換行字符。方法:用于輸出一個(gè)換行字符。71.flush():用于用于輸出緩沖區(qū)里的數(shù)據(jù)輸出緩

5、沖區(qū)里的數(shù)據(jù)。此方法會(huì)先將。此方法會(huì)先將之前緩沖區(qū)中的數(shù)據(jù)輸出至客戶(hù)端,然后再清除緩之前緩沖區(qū)中的數(shù)據(jù)輸出至客戶(hù)端,然后再清除緩沖區(qū)中的數(shù)據(jù)。沖區(qū)中的數(shù)據(jù)。2.clearBuffer():用于清除緩沖區(qū)里的數(shù)據(jù),并把數(shù):用于清除緩沖區(qū)里的數(shù)據(jù),并把數(shù)據(jù)輸出到客戶(hù)端。據(jù)輸出到客戶(hù)端。3.clear():用于清除緩沖區(qū)里的數(shù)據(jù),但不會(huì)把數(shù)據(jù)用于清除緩沖區(qū)里的數(shù)據(jù),但不會(huì)把數(shù)據(jù)輸出到客戶(hù)端。輸出到客戶(hù)端。4.getBufferSize():用于獲得緩沖區(qū)的大小。用于獲得緩沖區(qū)的大小。5.getRemaining():用于獲得緩沖區(qū)中沒(méi)有被占用的用于獲得緩沖區(qū)中沒(méi)有被占用的空間的大小。空間的大小。6.

6、isAutoFlush():返回布爾值,如果返回布爾值,如果AutoFlush為真,為真,則返回則返回true,反之,返回,反之,返回false。7.close():關(guān)閉輸出流關(guān)閉輸出流.可以強(qiáng)制終止當(dāng)前頁(yè)面的剩余可以強(qiáng)制終止當(dāng)前頁(yè)面的剩余部分向?yàn)g覽器輸出。部分向?yàn)g覽器輸出。86.1 out對(duì)象對(duì)象96.1 out對(duì)象對(duì)象6.1.1 out對(duì)象的方法對(duì)象的方法6.1.2 out對(duì)象實(shí)例對(duì)象實(shí)例10【例例6-1】out對(duì)象實(shí)例對(duì)象實(shí)例11.2.3. 4. 5. out對(duì)象實(shí)例演示對(duì)象實(shí)例演示6. 7. 8. 9. % for(int i=0;i2;i+)10. out.println(中國(guó)歡迎你

7、中國(guó)歡迎你!); 11. %outExamples1.jsp補(bǔ)充:補(bǔ)充:outdemo.jsp1112. 12運(yùn)行效果運(yùn)行效果13【例例6-2】out對(duì)象實(shí)例對(duì)象實(shí)例2 1.2.3. 4. 5. JSP Page6. 7. 8. 緩存大?。壕彺娲笮。?. 剩余緩存大?。菏S嗑彺娲笮。?0. 自動(dòng)刷新:自動(dòng)刷新:11. outExamples2.jsp1412. %13. out.print(中國(guó)歡迎你,北京歡迎你!中國(guó)歡迎你,北京歡迎你!);14. out.print(當(dāng)前可用緩沖區(qū)空間:當(dāng)前可用緩沖區(qū)空間: + out.getRemaining() + );15. out.print(接著調(diào)

8、用接著調(diào)用out.flush()方方法法);16. out.flush();/注釋掉是另一個(gè)效果注釋掉是另一個(gè)效果17. out.print(當(dāng)前可用緩沖區(qū)空間:當(dāng)前可用緩沖區(qū)空間: + out.getRemaining()+ );18. out.clearBuffer();19. out.print(當(dāng)前可用緩沖區(qū)空間:當(dāng)前可用緩沖區(qū)空間: + out.getRemaining()+ );20. out.flush();21. %22. 23.15運(yùn)行效果運(yùn)行效果16第第6章章JSP的內(nèi)置對(duì)象的內(nèi)置對(duì)象6.1 out對(duì)象對(duì)象6.2 page對(duì)象對(duì)象6.3 request對(duì)象對(duì)象6.4 res

9、ponse對(duì)象對(duì)象6.5 session對(duì)象對(duì)象6.6 pageContext對(duì)象對(duì)象6.7 config對(duì)象對(duì)象6.8 exception對(duì)象對(duì)象6.9 application對(duì)象對(duì)象176.2 page對(duì)象對(duì)象6.2.1 page對(duì)象的方法對(duì)象的方法6.2.2 page對(duì)象實(shí)例對(duì)象實(shí)例186.2.1 page對(duì)象的方法對(duì)象的方法page對(duì)象代表對(duì)象代表JSP本身本身,更準(zhǔn)確地說(shuō)它代表,更準(zhǔn)確地說(shuō)它代表JSP被轉(zhuǎn)譯后的被轉(zhuǎn)譯后的Servlet,它可以調(diào)用,它可以調(diào)用Servlet類(lèi)類(lèi)所定義的方法。所定義的方法。 page對(duì)象指向當(dāng)前對(duì)象指向當(dāng)前JSP頁(yè)面本身,有點(diǎn)象類(lèi)頁(yè)面本身,有點(diǎn)象類(lèi)中的中

10、的this指針指針,它是,它是java.lang.Object類(lèi)的實(shí)例。類(lèi)的實(shí)例。目前,目前,page對(duì)象對(duì)象很少使用很少使用,它是,它是為了指定其為了指定其它的腳本語(yǔ)言而保留的它的腳本語(yǔ)言而保留的,Java是唯一是唯一的的JSP腳腳本語(yǔ)言。本語(yǔ)言。 19page對(duì)象的主要方法如下:對(duì)象的主要方法如下:1.getClass() :用于返回此用于返回此Object的類(lèi)。的類(lèi)。 2.hashCode() :用于返回此:用于返回此Object的的hash碼碼 。3.equals(Object obj) :用于判斷此:用于判斷此Object是否是否與指定的與指定的Object對(duì)象相等。對(duì)象相等。 4.

11、copy(Object obj) :用于把此用于把此Object拷貝到指拷貝到指定的定的Object對(duì)象中對(duì)象中 。5.clone() :用于克隆此用于克隆此Object對(duì)象對(duì)象 。206.toString() :用于把此用于把此Object對(duì)象轉(zhuǎn)換成對(duì)象轉(zhuǎn)換成String類(lèi)的對(duì)象。類(lèi)的對(duì)象。 7.notify():用于喚醒一個(gè)等待的線(xiàn)程。用于喚醒一個(gè)等待的線(xiàn)程。 8.notifyAll() :用于喚醒所有等待的線(xiàn)程用于喚醒所有等待的線(xiàn)程 。9.wait(int timeout) :用于使一個(gè)線(xiàn)程處于等用于使一個(gè)線(xiàn)程處于等待直到待直到timeout結(jié)束或被喚醒。結(jié)束或被喚醒。 10.wait(

12、) :用于使一個(gè)線(xiàn)程處于等待直到被喚用于使一個(gè)線(xiàn)程處于等待直到被喚醒醒 。11.enterMonitor():用于對(duì)用于對(duì)Object加鎖。加鎖。 12.exitMonitor() :用于對(duì)用于對(duì)Object開(kāi)鎖開(kāi)鎖 。216.2 page對(duì)象對(duì)象6.2.1 page對(duì)象的方法對(duì)象的方法6.2.2 page對(duì)象實(shí)例對(duì)象實(shí)例22【例例6-3】page對(duì)象實(shí)例對(duì)象實(shí)例 .5. page對(duì)象實(shí)例演示對(duì)象實(shí)例演示6. 7. 8. 的哈希碼:的哈希碼:9. 10.pageExamples.jsp23運(yùn)行效果運(yùn)行效果24第第6章章JSP的內(nèi)置對(duì)象的內(nèi)置對(duì)象6.1 out對(duì)象對(duì)象6.2 pag

13、e對(duì)象對(duì)象6.3 request對(duì)象對(duì)象6.4 response對(duì)象對(duì)象6.5 session對(duì)象對(duì)象6.6 pageContext對(duì)象對(duì)象6.7 config對(duì)象對(duì)象6.8 exception對(duì)象對(duì)象6.9 application對(duì)象對(duì)象256.3 request對(duì)象對(duì)象6.3.1 request對(duì)象的方法對(duì)象的方法6.3.2 request對(duì)象實(shí)例對(duì)象實(shí)例266.3.1 request對(duì)象的方法對(duì)象的方法當(dāng)用戶(hù)請(qǐng)求一個(gè)當(dāng)用戶(hù)請(qǐng)求一個(gè)JSP頁(yè)面時(shí),頁(yè)面時(shí), JSP頁(yè)面所在的頁(yè)面所在的Tomcat服務(wù)器將用戶(hù)的請(qǐng)求封裝在內(nèi)置對(duì)象服務(wù)器將用戶(hù)的請(qǐng)求封裝在內(nèi)置對(duì)象request中。中。reques

14、t內(nèi)置對(duì)象代表了客戶(hù)端的請(qǐng)求信息,主要用內(nèi)置對(duì)象代表了客戶(hù)端的請(qǐng)求信息,主要用于接收客戶(hù)端通過(guò)于接收客戶(hù)端通過(guò)HTTP協(xié)議傳送給服務(wù)器端的數(shù)據(jù)。協(xié)議傳送給服務(wù)器端的數(shù)據(jù)。在客戶(hù)端的請(qǐng)求中如果有參數(shù),則該對(duì)象就有一個(gè)在客戶(hù)端的請(qǐng)求中如果有參數(shù),則該對(duì)象就有一個(gè)參數(shù)列表。它通常是參數(shù)列表。它通常是HttpServletRequest的子類(lèi),其的子類(lèi),其作用域就是一次作用域就是一次request請(qǐng)求。請(qǐng)求。276.3.1 request對(duì)象的方法對(duì)象的方法Servlet容器將客戶(hù)端信息封裝在一個(gè)代表客戶(hù)端的容器將客戶(hù)端信息封裝在一個(gè)代表客戶(hù)端的request對(duì)象中,該對(duì)象是對(duì)象中,該對(duì)象是 java

15、x.servlet.ServletRequest的子類(lèi)型。封裝了的子類(lèi)型。封裝了HttpServletRequest對(duì)象中的客戶(hù)端信息包括請(qǐng)求頭對(duì)象中的客戶(hù)端信息包括請(qǐng)求頭(Header)、系統(tǒng)信息、系統(tǒng)信息(比如編碼方式比如編碼方式、請(qǐng)求方式、請(qǐng)求方式(比比如如get或或post)、請(qǐng)求參數(shù)信息、請(qǐng)求參數(shù)信息、Cookie和其它信息。和其它信息。該對(duì)象調(diào)用相應(yīng)的方法可以獲取封裝的信息,也就該對(duì)象調(diào)用相應(yīng)的方法可以獲取封裝的信息,也就是說(shuō),是說(shuō),使用該對(duì)象可以獲取用戶(hù)瀏覽器提交的請(qǐng)求使用該對(duì)象可以獲取用戶(hù)瀏覽器提交的請(qǐng)求信息,以便做出相應(yīng)的響應(yīng)。信息,以便做出相應(yīng)的響應(yīng)。 28request對(duì)

16、象的主要方法如下:對(duì)象的主要方法如下:1.getAttribute(String name):用于返回用于返回name指定的屬性值,指定的屬性值,若不存在指定的屬性,就返回若不存在指定的屬性,就返回null。2.getAttributes():用于返回用于返回request對(duì)象的所有屬性的名字集對(duì)象的所有屬性的名字集合,結(jié)果集是一個(gè)合,結(jié)果集是一個(gè)Enumeration(枚舉)類(lèi)的實(shí)例。(枚舉)類(lèi)的實(shí)例。3.getCookies() :用于返回客戶(hù)端的所有用于返回客戶(hù)端的所有Cookie對(duì)象,結(jié)果是對(duì)象,結(jié)果是一個(gè)一個(gè)Cookie數(shù)組。數(shù)組。4.getCharacterEncoding():

17、返回請(qǐng)求中的字符編碼方式。返回請(qǐng)求中的字符編碼方式。5.getContentLength():以字節(jié)為單位返回客戶(hù)端請(qǐng)求的大小。:以字節(jié)為單位返回客戶(hù)端請(qǐng)求的大小。如果無(wú)法得到該請(qǐng)求的大小,則返回如果無(wú)法得到該請(qǐng)求的大小,則返回-1。6.getHeader(String name):用于獲得用于獲得HTTP協(xié)議定義的文件頭協(xié)議定義的文件頭信息。信息。7.getHeaders(String name) :用于返回指定名字的用于返回指定名字的request Header的所有值,其結(jié)果是一個(gè)的所有值,其結(jié)果是一個(gè)Enumeration類(lèi)的實(shí)例。類(lèi)的實(shí)例。8.getHeaderNames():用于返

18、回所有用于返回所有request Header的名字的名字 ,其結(jié)果是一個(gè)其結(jié)果是一個(gè)Enumeration類(lèi)的實(shí)例。類(lèi)的實(shí)例。299.getInputStream():用于返回請(qǐng)求的輸入流,獲得請(qǐng)求中的數(shù)用于返回請(qǐng)求的輸入流,獲得請(qǐng)求中的數(shù)據(jù)。據(jù)。10.getMethod():用于獲得客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)的方法,用于獲得客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)的方法,如如GET,POST,HEADER,TRACE等。等。11.getParameter(String name) :用于獲得客戶(hù)端傳送給服務(wù)器用于獲得客戶(hù)端傳送給服務(wù)器端的參數(shù)值。獲取表單提交的信息,以字符串形式返回客戶(hù)端的參數(shù)值。獲取表單提

19、交的信息,以字符串形式返回客戶(hù)端傳來(lái)的某一個(gè)請(qǐng)求參數(shù)的值,該參數(shù)名由端傳來(lái)的某一個(gè)請(qǐng)求參數(shù)的值,該參數(shù)名由name指定。當(dāng)傳指定。當(dāng)傳遞給此方法的參數(shù)名沒(méi)有實(shí)際參數(shù)與之對(duì)應(yīng)時(shí),返回遞給此方法的參數(shù)名沒(méi)有實(shí)際參數(shù)與之對(duì)應(yīng)時(shí),返回null。12.getParameterNames():用于獲得客戶(hù)端傳送給服務(wù)器端的所用于獲得客戶(hù)端傳送給服務(wù)器端的所有參數(shù)名字,其結(jié)果是一個(gè)有參數(shù)名字,其結(jié)果是一個(gè)Enumeration類(lèi)的實(shí)例。類(lèi)的實(shí)例。13.getParameterValues(String name) :用于獲得指定參數(shù)的所用于獲得指定參數(shù)的所有值。返回客戶(hù)端傳送給服務(wù)器端的所有參數(shù)名,結(jié)果集是

20、有值。返回客戶(hù)端傳送給服務(wù)器端的所有參數(shù)名,結(jié)果集是一個(gè)一個(gè)Enumeration類(lèi)的實(shí)例。當(dāng)傳遞給此方法的參數(shù)名沒(méi)有實(shí)類(lèi)的實(shí)例。當(dāng)傳遞給此方法的參數(shù)名沒(méi)有實(shí)際參數(shù)與之對(duì)應(yīng)時(shí),返回際參數(shù)與之對(duì)應(yīng)時(shí),返回null。14.getProtocol():用于獲取客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的用于獲取客戶(hù)端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱(chēng)。協(xié)議名稱(chēng)。15.getQueryString():用于獲得查詢(xún)字符串,該字符串是由客戶(hù)用于獲得查詢(xún)字符串,該字符串是由客戶(hù)端以端以GET方式向服務(wù)器端傳送的。方式向服務(wù)器端傳送的。16.getRequestURI():用于獲取發(fā)出請(qǐng)求字符串的客戶(hù)端地址。:用于獲取

21、發(fā)出請(qǐng)求字符串的客戶(hù)端地址。3017.getRemoteAddr():用于獲取客戶(hù)端用于獲取客戶(hù)端IP地址。地址。18.getRemoteHost():用于獲取客戶(hù)端名字。用于獲取客戶(hù)端名字。 19.getSession(Boolean create) :用于返回和請(qǐng)求相用于返回和請(qǐng)求相關(guān)的關(guān)的session。create參數(shù)是可選的。當(dāng)有參數(shù)參數(shù)是可選的。當(dāng)有參數(shù)create且這個(gè)參數(shù)值為且這個(gè)參數(shù)值為true時(shí),如果客戶(hù)端還沒(méi)有時(shí),如果客戶(hù)端還沒(méi)有創(chuàng)建創(chuàng)建session,那么將創(chuàng)建一個(gè)新的,那么將創(chuàng)建一個(gè)新的session。20.getServerName():用于獲取服務(wù)器的名字。用于獲

22、取服務(wù)器的名字。21.getServletPath():用于獲取客戶(hù)端所請(qǐng)求的腳本用于獲取客戶(hù)端所請(qǐng)求的腳本文件的文件路徑。文件的文件路徑。22.getServerPort():用于獲取服務(wù)器的端口號(hào)。用于獲取服務(wù)器的端口號(hào)。23.removeAttribute(String name) :用于刪除請(qǐng)求中用于刪除請(qǐng)求中的一個(gè)屬性。的一個(gè)屬性。24.setAttribute(String name, java.lang.Object obj) :用于設(shè)置用于設(shè)置request的參數(shù)值。的參數(shù)值。316.3 request對(duì)象對(duì)象326.3 request對(duì)象對(duì)象336.3 request對(duì)象對(duì)象

23、6.3.1 request對(duì)象的方法對(duì)象的方法6.3.2 request對(duì)象實(shí)例對(duì)象實(shí)例獲取簡(jiǎn)單表單提交的信息:獲取簡(jiǎn)單表單提交的信息:RequestRequest對(duì)象可以使對(duì)象可以使用用getParameter(string s)getParameter(string s)方法獲取表單提交方法獲取表單提交的信息。的信息。34【例例6-4】request對(duì)象實(shí)例對(duì)象實(shí)例1 1.2.3. 4. 5. request對(duì)象實(shí)例演示對(duì)象實(shí)例演示6. 7. requestExamples1.jsp358. %9. request.setAttribute(Variable1,123);10. reque

24、st.setAttribute(Variable2,456);11. request.setAttribute(Variable3,789);12. Enumeration e=request.getAttributeNames();13. while(e.hasMoreElements() 14. String attributeName=(String)e.nextElement();15. String attributeValue=(String)request.getAttribute(attributeName);16. out.print(變量名稱(chēng):變量名稱(chēng):+attribute

25、Name+ &nbsp &nbsp);17. out.print(變量?jī)?nèi)容:變量?jī)?nèi)容:+attributeValue+);18. 19. %20. 21.36運(yùn)行效果運(yùn)行效果37【例例6-5】request對(duì)象實(shí)例對(duì)象實(shí)例2 本例包括兩個(gè)文件:本例包括兩個(gè)文件:requestExamples2.jsp(主界面)和(主界面)和requestExamples.jsp(處理頁(yè)(處理頁(yè)面)。面)。在在requestExamples2.jsp頁(yè)面中輸入數(shù)據(jù)并單頁(yè)面中輸入數(shù)據(jù)并單擊擊“提交提交”按鈕后,按鈕后,requestExamples.jsp頁(yè)頁(yè)面將進(jìn)行數(shù)據(jù)處理,并將數(shù)據(jù)輸出到瀏覽器

26、面將進(jìn)行數(shù)據(jù)處理,并將數(shù)據(jù)輸出到瀏覽器中。中。 38requestExamples2.jsp.5.request對(duì)象實(shí)例演示對(duì)象實(shí)例演示6.7.8. 9. 數(shù)據(jù)數(shù)據(jù)110. 11. 數(shù)據(jù)數(shù)據(jù)212. 13. 數(shù)據(jù)數(shù)據(jù)314. 3915. 數(shù)據(jù)數(shù)據(jù)416. 17. 數(shù)據(jù)數(shù)據(jù)518. 19. 數(shù)據(jù)數(shù)據(jù)620. 21. 22. 23. 24. 25.26.40requestExamples.jsp.5.request對(duì)象實(shí)例演示對(duì)象實(shí)例演示6.7.8. 9. 剛才輸入的剛才輸入的6個(gè)數(shù)據(jù)是:個(gè)數(shù)據(jù)是:4110. %11. Enumeration e=request.get

27、ParameterNames();12. while(e.hasMoreElements()13. String parameterName=(String)e.nextElement();14. String parameterValue=(String)request.getParameter(parameterName);15. out.print(參數(shù)名稱(chēng):參數(shù)名稱(chēng):+parameterName+);16. out.print(參數(shù)內(nèi)容:參數(shù)內(nèi)容:+parameterValue+);17.18. %19. 20.21.42運(yùn)行效果運(yùn)行效果43【例例6-6】request對(duì)象實(shí)例對(duì)象實(shí)例

28、3 本例包括兩個(gè)文件:本例包括兩個(gè)文件:requestExamples3.jsp(主界面)和(主界面)和requestExamples31.jsp(處理(處理頁(yè)面)。頁(yè)面)。在在requestExamples3.jsp頁(yè)面中輸入數(shù)據(jù)后單頁(yè)面中輸入數(shù)據(jù)后單擊擊“提交提交”按鈕,按鈕,requestExamples31.jsp頁(yè)頁(yè)面將進(jìn)行數(shù)據(jù)處理,并將數(shù)據(jù)輸出到瀏覽器面將進(jìn)行數(shù)據(jù)處理,并將數(shù)據(jù)輸出到瀏覽器中。中。44requestExamples3.jsp 1.2. 3. 4. request對(duì)象實(shí)例演示對(duì)象實(shí)例演示5. 6. 7. 文本內(nèi)容文本內(nèi)容8. 整數(shù)類(lèi)型整數(shù)類(lèi)型9. 復(fù)選框復(fù)選框:10.

29、 1.11. 2. 4512. 單選按鈕單選按鈕:13. 14. 15. 16. 17. 18. 19. 4620. 下拉列表下拉列表:21. 22. 123. 224. 325. 426. 527. 628. 29. 30. 31. 32. 33.47requestExamples3.jsp效果效果 48requestExamples31.jsp 1.2.3. 4.request對(duì)象實(shí)例演示對(duì)象實(shí)例演示5. 6. 7. %8. String strText,strInteger,strCheckbox1,strCheckbox2;9. String strRadiobutton,strSel

30、ect,strOut,errOut;10. Integer intInteger;11. int errsCount;12. Vector errs =new Vector();13. strText=request.getParameter(text);4914./得到并處理名為得到并處理名為text的文本輸入的文本輸入15. if(strText.length()=0)16. /向錯(cuò)誤信息庫(kù)中添加信息向錯(cuò)誤信息庫(kù)中添加信息17. errs.addElement(new String(文本內(nèi)容域沒(méi)有值輸入文本內(nèi)容域沒(méi)有值輸入);18. 19. strInteger=request.getPa

31、rameter(integer);20. /得到名為得到名為Integer的輸入并轉(zhuǎn)化為的輸入并轉(zhuǎn)化為Integer,同時(shí)檢查是否,同時(shí)檢查是否為數(shù)值為數(shù)值21. try22. intInteger=Integer.valueOf(strInteger);23. catch(NumberFormatException e)24. errs.addElement(new String(整數(shù)類(lèi)型需要輸入數(shù)字!整數(shù)類(lèi)型需要輸入數(shù)字!);25. /向錯(cuò)誤信息庫(kù)中添加信息向錯(cuò)誤信息庫(kù)中添加信息26. intInteger=new Integer(0);27. /設(shè)為缺省值設(shè)為缺省值28. 5029.st

32、rCheckbox1=request.getParameter(checkbox1);30. strCheckbox2=request.getParameter(checkbox2);31. /得到得到CheckBox的輸入的輸入32. if(strCheckbox1=null)33. strCheckbox1=沒(méi)有被選中沒(méi)有被選中;34. else35. strCheckbox1=被選中被選中;36. 37. if(strCheckbox2=null)38. strCheckbox2=沒(méi)有被選中沒(méi)有被選中;39. else40. strCheckbox2=被選中被選中;41. 5142.st

33、rRadiobutton=request.getParameter(radionbutton);43. /得到得到radiobutton的輸入的輸入44. if(strRadiobutton=null)45. errs.addElement(new String(單選按鈕沒(méi)有輸入!單選按鈕沒(méi)有輸入!);46. strRadiobutton=沒(méi)有輸入沒(méi)有輸入;47. 48. /得到得到select的輸入:的輸入:49. strSelect=request.getParameter(select);50. strOut=文本內(nèi)容的值是:文本內(nèi)容的值是:+strText;51. strOut+=整數(shù)

34、類(lèi)型的值是:整數(shù)類(lèi)型的值是:+intInteger;52. strOut+=復(fù)選框復(fù)選框1+strCheckbox1;53. strOut+=復(fù)選框復(fù)選框2+strCheckbox2;54. strOut+=單選按鈕的值是:?jiǎn)芜x按鈕的值是:+strRadiobutton;55. strOut+=下拉列表的值是:下拉列表的值是:+strSelect+;5256./輸出結(jié)果輸出結(jié)果57. errsCount=errs.size();58. errOut=new String();59. /輸出錯(cuò)誤輸出錯(cuò)誤60. for(int i=0;ierrsCount;i+)61. errOut+=errs.

35、elementAt(i).toString();62. errOut+=;63. 64. out.println(結(jié)果結(jié)果);65. out.println(strOut);66. /輸出結(jié)果輸出結(jié)果67. if(errsCount!=0)68. out.println(錯(cuò)誤錯(cuò)誤);69. out.println(errOut);70. 71. %72. 73.53運(yùn)行效果運(yùn)行效果54【例例6-7】request對(duì)象實(shí)例對(duì)象實(shí)例4 1.2.3. 4. 5. request對(duì)象實(shí)例演示對(duì)象實(shí)例演示6. 7. 8. 559.%10. request.setAttribute(Name, 張三張三)

36、;11. request.setAttribute(Password, 123456);12. request.setAttribute(Email, );13. request.removeAttribute(Password);14. Enumeration e=request.getAttributeNames();15. String attrName;16. while(e.hasMoreElements() 17. attrName = e.nextElement().toString();18. out.print(attrName + = + request.getAttrib

37、ute(attrName) + );19. 20. request.setCharacterEncoding(ISO-8859-1);21. %5622.23. Content Length : 24. Content Type : 25. 26. 服務(wù)器地址:服務(wù)器地址:27. 服務(wù)器名稱(chēng):服務(wù)器名稱(chēng):28. 29. 30. 客戶(hù)端地址:客戶(hù)端地址:31. 客戶(hù)端名稱(chēng):客戶(hù)端名稱(chēng):32. 客戶(hù)端端口:客戶(hù)端端口:33. 驗(yàn)證用戶(hù)名:驗(yàn)證用戶(hù)名:5734.獲取獲取SessionId35. 請(qǐng)求請(qǐng)求URI:36. 請(qǐng)求請(qǐng)求URL:37. 服務(wù)器名字:服務(wù)器名字:38. 服務(wù)器端口:服務(wù)器端口:3

38、9. 40. 5841. 請(qǐng)求的會(huì)話(huà)請(qǐng)求的會(huì)話(huà)ID是否通過(guò)是否通過(guò)Cookie傳入:傳入:42. 請(qǐng)求的會(huì)話(huà)請(qǐng)求的會(huì)話(huà)ID是否通過(guò)是否通過(guò)URL傳入:傳入:43. 請(qǐng)求的會(huì)話(huà)請(qǐng)求的會(huì)話(huà)ID是否仍然有效:是否仍然有效:44. 45. 46. 47. 59運(yùn)行效果運(yùn)行效果60request對(duì)象實(shí)例對(duì)象實(shí)例5requestSelf.jsp自己提交給自己本身。自己提交給自己本身。61request對(duì)象實(shí)例對(duì)象實(shí)例6處理漢字信息(處理漢字信息(P222)當(dāng)用當(dāng)用request對(duì)象獲取用戶(hù)提交的對(duì)象獲取用戶(hù)提交的漢字漢字字符時(shí),字符時(shí),會(huì)出現(xiàn)亂碼問(wèn)題,所以對(duì)含有漢字字符的信會(huì)出現(xiàn)亂碼問(wèn)題,所以對(duì)含有漢字字

39、符的信息必須進(jìn)行特殊的處理。息必須進(jìn)行特殊的處理。ISO-8859-1是是JAVA網(wǎng)絡(luò)傳輸使用的標(biāo)準(zhǔn)字網(wǎng)絡(luò)傳輸使用的標(biāo)準(zhǔn)字符集。而符集。而gb2312是標(biāo)準(zhǔn)中文字符集,當(dāng)你作是標(biāo)準(zhǔn)中文字符集,當(dāng)你作出提交表單等需要網(wǎng)絡(luò)傳輸?shù)牟僮鞯臅r(shí)候,出提交表單等需要網(wǎng)絡(luò)傳輸?shù)牟僮鞯臅r(shí)候,就需要把就需要把iso-8859-1轉(zhuǎn)換為轉(zhuǎn)換為gb2312字符集顯字符集顯示,否則如果按瀏覽器的示,否則如果按瀏覽器的gb2312格式來(lái)解釋格式來(lái)解釋iso-8859-1字符集的話(huà),由于字符集的話(huà),由于2者不兼容,所者不兼容,所以會(huì)是亂碼。以會(huì)是亂碼。62request對(duì)象實(shí)例對(duì)象實(shí)例6處理漢字信息處理漢字信息ISO885

40、9 不是一個(gè)標(biāo)準(zhǔn),而是一系列的標(biāo)準(zhǔn),不是一個(gè)標(biāo)準(zhǔn),而是一系列的標(biāo)準(zhǔn),這套字符集與編碼系統(tǒng)的共同特色是,以同這套字符集與編碼系統(tǒng)的共同特色是,以同樣的碼位對(duì)應(yīng)不同字符集。樣的碼位對(duì)應(yīng)不同字符集。ISO8859-1 字符集,也就是字符集,也就是 Latin-1,是西歐,是西歐常用字符,包括德法兩國(guó)的字母。常用字符,包括德法兩國(guó)的字母。ISO8859-2 字符集,也稱(chēng)為字符集,也稱(chēng)為 Latin-2,收集了,收集了東歐字符。東歐字符。ISO8859-3 字符集,也稱(chēng)為字符集,也稱(chēng)為 Latin-3,收集了,收集了南歐字符。南歐字符。63request對(duì)象實(shí)例對(duì)象實(shí)例6處理漢字信息處理漢字信息轉(zhuǎn)換方法

41、:首先,將獲取的字符串用轉(zhuǎn)換方法:首先,將獲取的字符串用ISO-8859-1進(jìn)行進(jìn)行編碼,并將編碼存放到一個(gè)字節(jié)數(shù)組中,然后再將這編碼,并將編碼存放到一個(gè)字節(jié)數(shù)組中,然后再將這個(gè)數(shù)組轉(zhuǎn)化為字符串對(duì)象即可。如下所示:個(gè)數(shù)組轉(zhuǎn)化為字符串對(duì)象即可。如下所示:String var =request.getParameter( varname );byte b= var.getBytes(ISO-8859-1);/將英文字符轉(zhuǎn)為將英文字符轉(zhuǎn)為字節(jié)碼字節(jié)碼unicode var =new String(b,”GBK”); / ,”GBK”可以不寫(xiě),按頁(yè)可以不寫(xiě),按頁(yè)面指定編碼轉(zhuǎn)換面指定編碼轉(zhuǎn)換或者:或者:

42、String var= new String (request.getParameter(varname).getBytes(ISO-8859-1),GBK) ;例如例如:toHanzi.jsp、toHanziShow.jsp64第第6章章JSP的內(nèi)置對(duì)象的內(nèi)置對(duì)象6.1 out對(duì)象對(duì)象6.2 page對(duì)象對(duì)象6.3 request對(duì)象對(duì)象6.4 response對(duì)象對(duì)象6.5 session對(duì)象對(duì)象6.6 pageContext對(duì)象對(duì)象6.7 config對(duì)象對(duì)象6.8 exception對(duì)象對(duì)象6.9 application對(duì)象對(duì)象656.4 response對(duì)象對(duì)象6.4 .1 resp

43、onse對(duì)象的方法對(duì)象的方法6.4 .2 response對(duì)象實(shí)例對(duì)象實(shí)例666.4 .1 response對(duì)象的方法對(duì)象的方法response對(duì)象與對(duì)象與request對(duì)象正好相反,所包含的是對(duì)象正好相反,所包含的是服務(wù)器向客戶(hù)端作出的應(yīng)答信息。服務(wù)器向客戶(hù)端作出的應(yīng)答信息。 response對(duì)象實(shí)現(xiàn)對(duì)象實(shí)現(xiàn)HttpServletResponse接口,它可接口,它可以使用以使用 HttpServletResponse的方法將的方法將服務(wù)器端數(shù)據(jù)服務(wù)器端數(shù)據(jù)發(fā)送到客戶(hù)端發(fā)送到客戶(hù)端。response對(duì)象的生命周期對(duì)象的生命周期 由由JSP容容器自動(dòng)控制。當(dāng)服務(wù)器向客戶(hù)端傳送數(shù)據(jù)時(shí),器自動(dòng)控制。

44、當(dāng)服務(wù)器向客戶(hù)端傳送數(shù)據(jù)時(shí),JSP容器就會(huì)創(chuàng)建容器就會(huì)創(chuàng)建response對(duì)象并將請(qǐng)求信息包裝到對(duì)象并將請(qǐng)求信息包裝到response對(duì)象中;當(dāng)對(duì)象中;當(dāng)JSP容器處理完請(qǐng)求后,容器處理完請(qǐng)求后,response對(duì)象就會(huì)被銷(xiāo)毀。對(duì)象就會(huì)被銷(xiāo)毀。因輸出流是緩沖的,所以可以設(shè)置因輸出流是緩沖的,所以可以設(shè)置Http狀態(tài)碼和狀態(tài)碼和response頭。頭。67response對(duì)象包含了響應(yīng)客戶(hù)請(qǐng)求的有關(guān)信息,對(duì)象包含了響應(yīng)客戶(hù)請(qǐng)求的有關(guān)信息,它封裝了它封裝了JSP產(chǎn)生的響應(yīng),然后被發(fā)送到客戶(hù)端以產(chǎn)生的響應(yīng),然后被發(fā)送到客戶(hù)端以響應(yīng)客戶(hù)的請(qǐng)求。響應(yīng)客戶(hù)的請(qǐng)求。response對(duì)象的主要方法如下:對(duì)象的

45、主要方法如下:1.addCookie(Cookie cook):用于給用戶(hù)添加一個(gè)用于給用戶(hù)添加一個(gè)Cookie對(duì)象,保存客戶(hù)端的相關(guān)信息??墒褂脤?duì)象,保存客戶(hù)端的相關(guān)信息??墒褂胷equest的的getCookies()方法獲取該方法獲取該Cookie對(duì)象。對(duì)象。2.addHeader(String name,String value):用于添加帶用于添加帶有指定名稱(chēng)和字符串的有指定名稱(chēng)和字符串的HTTP文件頭信息,該文件頭信息,該Header信息將傳達(dá)到客戶(hù)端,如果不存在就添加,信息將傳達(dá)到客戶(hù)端,如果不存在就添加,存在則覆蓋。存在則覆蓋。3.addDateHeader(String na

46、me,String value):用于添用于添加帶有指定名稱(chēng)和日期值的加帶有指定名稱(chēng)和日期值的HTTP文件頭信息,該文件頭信息,該Header信息將傳達(dá)到客戶(hù)端,如果不存在就添加,信息將傳達(dá)到客戶(hù)端,如果不存在就添加,存在則覆蓋。存在則覆蓋。4.containsHeader(String name):用于判斷指定名稱(chēng)用于判斷指定名稱(chēng)的的Header是否已經(jīng)存在,存在返回是否已經(jīng)存在,存在返回true,否則返回,否則返回false。685.flushBuffer():用于強(qiáng)制把當(dāng)前緩沖區(qū)所有內(nèi)容發(fā)用于強(qiáng)制把當(dāng)前緩沖區(qū)所有內(nèi)容發(fā)送到客戶(hù)端。送到客戶(hù)端。6.getBufferSize():用于獲取實(shí)

47、際緩沖區(qū)的大小,如用于獲取實(shí)際緩沖區(qū)的大小,如果沒(méi)使用緩沖區(qū)則返回果沒(méi)使用緩沖區(qū)則返回0。7.getCharacterEncoding():用于獲取響應(yīng)的字符編用于獲取響應(yīng)的字符編碼方式。碼方式。8.getContentType():用于獲取響應(yīng)的內(nèi)容用于獲取響應(yīng)的內(nèi)容MIME類(lèi)類(lèi)型。型。9.getOutputStream():用于獲取到客戶(hù)端的輸出流。用于獲取到客戶(hù)端的輸出流。10.sendError():用于向客戶(hù)端發(fā)送錯(cuò)誤信息。如:用于向客戶(hù)端發(fā)送錯(cuò)誤信息。如:404指網(wǎng)頁(yè)找不到錯(cuò)誤。指網(wǎng)頁(yè)找不到錯(cuò)誤。6911.sendRedirect():用于重新定向客戶(hù)端的請(qǐng)求。用于重新定向客戶(hù)端的

48、請(qǐng)求。12.setCharacterEncoding():用于設(shè)置響應(yīng)的字符編用于設(shè)置響應(yīng)的字符編碼方式。碼方式。13.setContent():用于設(shè)置響應(yīng)的內(nèi)容用于設(shè)置響應(yīng)的內(nèi)容MIME類(lèi)型。類(lèi)型。14.setContentLength():用于設(shè)置響應(yīng)內(nèi)容的長(zhǎng)度用于設(shè)置響應(yīng)內(nèi)容的長(zhǎng)度(字節(jié)數(shù)。)(字節(jié)數(shù)。)15.setHeader():用于設(shè)置指定名稱(chēng)和字符串的用于設(shè)置指定名稱(chēng)和字符串的HTTP文件頭信息,該文件頭信息,該Header信息將傳達(dá)到客戶(hù)端,如信息將傳達(dá)到客戶(hù)端,如果不存在就設(shè)置,存在則覆蓋。果不存在就設(shè)置,存在則覆蓋。16.setDateHeader():用于設(shè)置指定名稱(chēng)和

49、日期值的用于設(shè)置指定名稱(chēng)和日期值的HTTP文件頭信息,該文件頭信息,該Header信息將傳達(dá)到客戶(hù)信息將傳達(dá)到客戶(hù)端,如果不存在就設(shè)置,存在則覆蓋。端,如果不存在就設(shè)置,存在則覆蓋。706.4 .1 response對(duì)象的方法對(duì)象的方法716.4 response對(duì)象對(duì)象6.4 .1 response對(duì)象的方法對(duì)象的方法6.4 .2 response對(duì)象實(shí)例對(duì)象實(shí)例response的的HTTP文件頭:使用文件頭:使用Response刷刷新頁(yè)面新頁(yè)面ResponseResponse重定向重定向動(dòng)態(tài)響應(yīng)動(dòng)態(tài)響應(yīng)contenType屬性屬性72response對(duì)象實(shí)例對(duì)象實(shí)例1 刷新頁(yè)面刷新頁(yè)面 r

50、esponseresponse的的HTTPHTTP文件頭文件頭 1.2.3. 4.response對(duì)象實(shí)例演示對(duì)象實(shí)例演示5. 6. 7. 當(dāng)前時(shí)間是:當(dāng)前時(shí)間是:8. 9. 10. 定時(shí)刷新定時(shí)刷新2m11. 12. 13. 14.responseExamples1.jsp73運(yùn)行效果運(yùn)行效果74【例例6-9】response對(duì)象實(shí)例對(duì)象實(shí)例2 本例包括兩個(gè)文件:本例包括兩個(gè)文件: responseExamples2.jsp與與responseExamples3.jsp,對(duì)多個(gè)方法的綜合使用進(jìn)行了演示。,對(duì)多個(gè)方法的綜合使用進(jìn)行了演示。 response重定向重定向 在某些情況下,當(dāng)響應(yīng)客戶(hù)

51、時(shí),需要將客戶(hù)重新引導(dǎo)至另一在某些情況下,當(dāng)響應(yīng)客戶(hù)時(shí),需要將客戶(hù)重新引導(dǎo)至另一個(gè)頁(yè)面,可以使用個(gè)頁(yè)面,可以使用response的的sendRedirect(URL)方法實(shí)現(xiàn)客方法實(shí)現(xiàn)客戶(hù)的重定向。戶(hù)的重定向。注意注意:使用:使用,直接在服務(wù)器上執(zhí)行重定向,直接在服務(wù)器上執(zhí)行重定向,在轉(zhuǎn)到新的頁(yè)面后,原來(lái)頁(yè)面在轉(zhuǎn)到新的頁(yè)面后,原來(lái)頁(yè)面request參數(shù)是可用的,同時(shí)在參數(shù)是可用的,同時(shí)在轉(zhuǎn)到新的頁(yè)面后,新頁(yè)面地址轉(zhuǎn)到新的頁(yè)面后,新頁(yè)面地址不會(huì)不會(huì)在地址欄中顯示出來(lái),而在地址欄中顯示出來(lái),而且只能是且只能是相對(duì)地址相對(duì)地址資源。資源。而使用而使用sendRedirect方法是向?yàn)g覽器發(fā)送一個(gè)特殊

52、的頭文件,方法是向?yàn)g覽器發(fā)送一個(gè)特殊的頭文件,然后由瀏覽器來(lái)做轉(zhuǎn)向到新的頁(yè)面,重定向后在瀏覽器地址然后由瀏覽器來(lái)做轉(zhuǎn)向到新的頁(yè)面,重定向后在瀏覽器地址欄會(huì)出現(xiàn)重定向后頁(yè)面欄會(huì)出現(xiàn)重定向后頁(yè)面URL??梢允???梢允墙^對(duì)地址或相對(duì)地址資絕對(duì)地址或相對(duì)地址資源源。75responseExamples2.jsp1.2.3. 4. response對(duì)象實(shí)例演示對(duì)象實(shí)例演示5. 6. 7. 10. 11. 12. 7615. 18. 19. 20. 21. 24. 25. 7726. 友情鏈接友情鏈接:27. 28. 29. 30. 搜狐搜狐31. 百度百度32. 網(wǎng)易網(wǎng)易33. 34. 35. 36.

53、37. 38.78responseExamples3.jsp1.2. 3. 14. 798081動(dòng)態(tài)響應(yīng)動(dòng)態(tài)響應(yīng)contentType屬性屬性 由于由于pagepage指令只能為指令只能為contentTypecontentType屬性指定一個(gè)值來(lái)決定響應(yīng)的屬性指定一個(gè)值來(lái)決定響應(yīng)的MIMEMIME類(lèi)型。類(lèi)型。 如果想動(dòng)態(tài)地改變這個(gè)屬性的值來(lái)響應(yīng)用戶(hù),就需要使用如果想動(dòng)態(tài)地改變這個(gè)屬性的值來(lái)響應(yīng)用戶(hù),就需要使用responseresponse對(duì)象對(duì)象的的setContentType(String s)setContentType(String s)方法方法來(lái)改變來(lái)改變contentTypeco

54、ntentType的屬性的屬性值。值。 public void setContentType(String s);public void setContentType(String s);方法動(dòng)態(tài)設(shè)置響應(yīng)方法動(dòng)態(tài)設(shè)置響應(yīng)的的MIME類(lèi)型,參數(shù)類(lèi)型,參數(shù)s可取可取: text/htmltext/html、text/plaintext/plain、image/gifimage/gif、image/x-xbitmapimage/x-xbitmap、image/jpegimage/jpeg、image/pjpegimage/pjpeg、application/x-shockwave-flashappl

55、ication/x-shockwave-flash、 application/vnd.ms-powerpointapplication/vnd.ms-powerpoint、 application/vnd.ms-excelapplication/vnd.ms-excel、 application/mswordapplication/msword。 例例response_setContentType1.jsp、response_setContentType2.jsp(補(bǔ)充(補(bǔ)充 )82cookie 對(duì)象(補(bǔ)充對(duì)象(補(bǔ)充 P297)cookie是是Web服務(wù)器保存在用戶(hù)硬盤(pán)上的一段服務(wù)器保存在用戶(hù)

56、硬盤(pán)上的一段文本。文本。cookie允許一個(gè)允許一個(gè)Web站點(diǎn)在用戶(hù)的電腦上保存站點(diǎn)在用戶(hù)的電腦上保存信息并且隨后再取回它。信息并且隨后再取回它。cookies是一種是一種WEB服務(wù)器通過(guò)瀏覽器在訪問(wèn)服務(wù)器通過(guò)瀏覽器在訪問(wèn)者的硬盤(pán)上存儲(chǔ)信息的手段。者的硬盤(pán)上存儲(chǔ)信息的手段。83 cookie 對(duì)象對(duì)象 cookies給網(wǎng)站和用戶(hù)帶來(lái)的給網(wǎng)站和用戶(hù)帶來(lái)的好處好處:(1)cookie能使站點(diǎn)跟蹤特定訪問(wèn)者的訪問(wèn)次數(shù)、最能使站點(diǎn)跟蹤特定訪問(wèn)者的訪問(wèn)次數(shù)、最后訪問(wèn)時(shí)間和訪問(wèn)者進(jìn)入站點(diǎn)的路徑。后訪問(wèn)時(shí)間和訪問(wèn)者進(jìn)入站點(diǎn)的路徑。(2)cookie能告訴在線(xiàn)廣告商廣告被點(diǎn)擊的次數(shù),從能告訴在線(xiàn)廣告商廣告被點(diǎn)

57、擊的次數(shù),從而可以更精確的投放廣告。而可以更精確的投放廣告。(3)cookie有效期限未到時(shí),有效期限未到時(shí),cookie能使用戶(hù)不需要能使用戶(hù)不需要重復(fù)鍵入密碼和用戶(hù)名進(jìn)入曾經(jīng)瀏覽過(guò)的一些站點(diǎn)。重復(fù)鍵入密碼和用戶(hù)名進(jìn)入曾經(jīng)瀏覽過(guò)的一些站點(diǎn)。(4)cookie能幫助站點(diǎn)統(tǒng)計(jì)用戶(hù)個(gè)人資料以實(shí)現(xiàn)各種能幫助站點(diǎn)統(tǒng)計(jì)用戶(hù)個(gè)人資料以實(shí)現(xiàn)各種各樣的個(gè)性化服務(wù)。各樣的個(gè)性化服務(wù)。 84 cookie與與session的比較的比較 85 cookie基本操作基本操作 cookie是以是以“關(guān)鍵字關(guān)鍵字=值值(key=value)”的格式的格式來(lái)保存紀(jì)錄的,其基本操作包括創(chuàng)建、傳送和讀取。來(lái)保存紀(jì)錄的,其基本操

58、作包括創(chuàng)建、傳送和讀取。創(chuàng)建創(chuàng)建cookie對(duì)象對(duì)象 調(diào)用調(diào)用cookie對(duì)象的構(gòu)造函數(shù)可以創(chuàng)建對(duì)象的構(gòu)造函數(shù)可以創(chuàng)建cookie。cookie對(duì)象的構(gòu)造函數(shù)有兩個(gè)字符串參數(shù):對(duì)象的構(gòu)造函數(shù)有兩個(gè)字符串參數(shù):cookie名字和名字和cookie值。值。創(chuàng)建創(chuàng)建cookie的語(yǔ)法格式如下:的語(yǔ)法格式如下: Cookie c=new Cookie(“username”,”liuzc”);86傳送傳送cookiecookie對(duì)象對(duì)象 JSPJSP中如果要將封裝好的中如果要將封裝好的cookiecookie對(duì)象傳送到客戶(hù)端,對(duì)象傳送到客戶(hù)端,使用使用responseresponse的的addCooki

59、e()addCookie()方法。傳送方法。傳送cookiecookie對(duì)象對(duì)象的語(yǔ)法格式如下:的語(yǔ)法格式如下: response.addCookie(c)response.addCookie(c)設(shè)置設(shè)置cookiecookie對(duì)象有效時(shí)間對(duì)象有效時(shí)間 設(shè)置設(shè)置cookiecookie對(duì)象有效時(shí)間對(duì)象有效時(shí)間( (秒秒) )可以使用可以使用setMaxAge()setMaxAge()方法。如果設(shè)置其時(shí)間為方法。如果設(shè)置其時(shí)間為0 0,則表示刪除該,則表示刪除該cookiecookie。設(shè)置設(shè)置cookiecookie對(duì)象的有效時(shí)間的語(yǔ)法格式如下:對(duì)象的有效時(shí)間的語(yǔ)法格式如下: c.setMa

60、xAge(3600); /1c.setMaxAge(3600); /1小時(shí)小時(shí) cookie基本操作基本操作 87讀取讀取cookie對(duì)象對(duì)象 讀取保存到客戶(hù)端的讀取保存到客戶(hù)端的cookie,使用,使用request對(duì)象的對(duì)象的getCookies()方法,執(zhí)行時(shí)將所有客戶(hù)端傳來(lái)的方法,執(zhí)行時(shí)將所有客戶(hù)端傳來(lái)的cookie對(duì)象以數(shù)組的形式排列,如果要取出符合需對(duì)象以數(shù)組的形式排列,如果要取出符合需要的要的cookie對(duì)象,就需要循環(huán)比較數(shù)組內(nèi)每個(gè)對(duì)象對(duì)象,就需要循環(huán)比較數(shù)組內(nèi)每個(gè)對(duì)象的關(guān)鍵字?;痉椒ㄈ缦拢旱年P(guān)鍵字?;痉椒ㄈ缦拢?Cookie c=request.getCookies(); if(c!=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)論