Java web 第4章JSP內(nèi)置對象ppt課件_第1頁
Java web 第4章JSP內(nèi)置對象ppt課件_第2頁
Java web 第4章JSP內(nèi)置對象ppt課件_第3頁
Java web 第4章JSP內(nèi)置對象ppt課件_第4頁
Java web 第4章JSP內(nèi)置對象ppt課件_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 JSP 內(nèi)置對象內(nèi)置對象教學(xué)內(nèi)容:教學(xué)內(nèi)容: request對象 response對象 out對象 session對象 application對象 exception對象 pageContext對象 config對象 page對象 一、request 對象 HTTP通信協(xié)議是客戶與服務(wù)器之間一種提交懇求信息與響應(yīng)信息request/respone的通信協(xié)議。在JSP中,內(nèi)置對象request封裝了用戶提交的信息,那么該對象調(diào)用相應(yīng)的方法可以獲取封裝的信息。例如:Example3_1.jsp tree.jspHTTP請求中包括一個(gè)請求行、頭域和可能的信息體,如: GET/hello.html

2、/1.1 HOST: sina accept-encoding:gzip,deflate一個(gè)典型的請求通常包含許多請求頭,有些頭是標(biāo)準(zhǔn)的,有些和特定的瀏覽器有關(guān)。包含的信息提可能是表單的內(nèi)容。Request對象包括很多方法,主要有:getCookies():返回客戶端的cookie對象,結(jié)果是一個(gè)cookie數(shù)組。getSession(boolean create):返回和當(dāng)前客戶端請求相關(guān)聯(lián)的HttpSession對象,如果當(dāng)前客戶端請求沒有和任何HttpSession對象關(guān)聯(lián),那么當(dāng)create變量為true,則創(chuàng)建一個(gè)HttpSession對象并返回;反之,返回null。 getHead

3、er(String name):獲得http協(xié)議定義的傳送文件頭信息 。ngetAttribute(String name):返回name指定的屬性值,若不存在指定的屬性,就返回null。ngetattributeNames():返回request對象所有屬性的名字,結(jié)果集是一個(gè)Enumeration枚舉類的實(shí)例。ngetHeaderNames():返回所有request header的名字,結(jié)果集是一個(gè)Enumeration枚舉類的實(shí)例。getHeaders(String name):返回指定名字的request header的所有值,結(jié)果集是一個(gè)Enumeration枚舉類的實(shí)例。nget

4、Method():返回客戶端向服務(wù)器端傳送數(shù)據(jù)的方法,一般方法有GET、POST、PUT等類型。ngetParameter(String name):以字符串的形式返回客戶端傳來的某一個(gè)請求參數(shù)的值,該參數(shù)名由name指定。當(dāng)傳遞給此方法的參數(shù)名沒有實(shí)際參數(shù)與之對應(yīng)時(shí),返回null。ngetparameterNames():返回客戶端傳送給服務(wù)器端的所有的參數(shù)名,結(jié)果集是一個(gè)Enumeration枚舉類的實(shí)例。當(dāng)傳遞給此方法的參數(shù)名沒有實(shí)際參數(shù)與之對應(yīng)時(shí),返回null。ngetParameterValues(String name):以字符串?dāng)?shù)組的形式返回指定參數(shù)所有值。ngetQuerySt

5、ring():返回查詢字符串,該字符串由客戶端以GET方法向服務(wù)器端傳送。 ngetRequestURI():獲得發(fā)出請求字符串的客戶端地址。ngetServletPath():獲得客戶端所請求的腳本文件的文件路徑。nsetAttribute(String name,Java.lang.Object o):設(shè)定名字為name的request參數(shù)值,該值由Object類型的o指定。ngetServerName():獲得服務(wù)器的名字,如果沒有設(shè)定服務(wù)器名,則返回服務(wù)器IP地址。 ngetServerPort():獲得服務(wù)器的端口號。ngetRemoteAddr():獲得客戶端的IP地址。ngetR

6、emoteHost():獲得客戶端主機(jī)的名字,若失敗,則返回客戶端電腦的IP地址。ngetProtocol():獲取客戶端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱,如http/1.1。ngetContentLength():以字節(jié)為單位返回客戶端請求的大小。如果無法得到該請求的大小,則返回-1。ngetContentType():獲取客戶端請求的MIME類型。如果無法得到該請求的MIME類型,那么返回-1。ngetInputStream():以二進(jìn)制的形式將客戶端的請求以一個(gè)ServletInputStream的形式返回。使用此方法可以獲得客戶端的multipart/form-data數(shù)據(jù),可以實(shí)現(xiàn)

7、文件上傳。 nisSecure():如果客戶機(jī)是通過一個(gè)安全的訪問方式訪問的,就返回true;反之,返回false.ngetDateHeader():返回一個(gè)long類型的數(shù)據(jù),表示客戶端發(fā)送到服務(wù)器的頭信息中的時(shí)間信息。ngetInitHeader():獲取客戶端發(fā)送到服務(wù)器端的頭信息中的某一個(gè)特定的信息,并轉(zhuǎn)換為int類型。ngetContextPath():返回環(huán)境路徑。對于JSP來說,一般是當(dāng)前Web應(yīng)用程序的根目錄。nisRequestedSessionIdValid():返回一個(gè)指示客戶端請求發(fā)送Session ID是否仍然有效的布爾值。nisRequestedSessionIdF

8、romCookie():返回一個(gè)指示客戶端請求發(fā)送Session ID是否存在于Cookie中的布爾值。nisRequestedSessionIdFromURL():返回一個(gè)指示客戶端請求發(fā)送Session ID是否存在于URL中的布爾值。 客戶通常使用HTML表單向服務(wù)器的某個(gè)JSP頁面提交信息,表單的一般格式: 提交手段請求的方法有g(shù)et 、post、head 、delete、trace 、put 等.例: request.jsp 當(dāng)用request對象獲取客戶提交的漢字字符時(shí),會出現(xiàn)亂碼問題,所以對含有漢字字符的信息必須進(jìn)行特殊的處理方式。首先,將獲取的字符串用ISO-8859-1進(jìn)行編

9、碼,并將編碼存放到一個(gè)字節(jié)數(shù)組中,然后再將這個(gè)數(shù)組轉(zhuǎn)化為字符串對象即可。例: Example3_3.jsp tree1.jspu處理漢字信息處理漢字信息二、二、response response 對象對象u 用response對象對客戶的請求作出動態(tài)響應(yīng),將JSP 處理數(shù)據(jù)后的結(jié)果傳回到客戶端。u比如,當(dāng)一個(gè)客戶請求訪問一個(gè)JSP頁面時(shí),該頁面用page指令設(shè)置頁面的contentType屬性的值是text/html,那么JSP引擎將按著這種屬性值響應(yīng)客戶對頁面的請求,將頁面的靜態(tài)部分返回給客戶。u如果想動態(tài)地改變contentType的屬性值就需要用response對象改變頁面的這個(gè)屬性的值

10、,作出動態(tài)的響應(yīng)。Response對象的常用方法為: addCookie(Cookie cookie):添加一個(gè)Cookie對象,用來保存客戶端的用戶信息,用request的getCookies()方法可以獲得這個(gè)Cookie。 addHeader(String name,String value):添加HTTP文件頭,該header將會傳到客戶端去,如果有同名的header存在,那么原來的header將會被覆蓋掉。 containsHeader(String name):判斷指定名字的HTTP文件頭是否存在,并返回布爾值。nsendError(int sc):向客戶端發(fā)送錯(cuò)誤信息,例如,50

11、5指示服務(wù)器內(nèi)部錯(cuò)誤;404指示網(wǎng)頁找不到的錯(cuò)誤。nsetHeader(String name,String value):設(shè)定指定名字的HTTP文件頭的值,如果該值存在,那么它會被新的值覆蓋。nsetContenType(String type):響應(yīng)設(shè)置內(nèi)容類型頭。nsendRedirect(URL):可以將用戶重定向到一個(gè)不同的頁面URL)。 response內(nèi)置對象內(nèi)置對象使用使用response內(nèi)置對象刷新頁面內(nèi)置對象刷新頁面 顯示時(shí)間:顯示時(shí)間:u 動態(tài)響應(yīng)動態(tài)響應(yīng)contentTypecontentType屬性屬性 如果想動態(tài)的改變這個(gè)屬性的值來響應(yīng)客戶,就需如果想動態(tài)的改變這個(gè)

12、屬性的值來響應(yīng)客戶,就需要使用要使用response對象的對象的setContentType(String s)方法來改方法來改變變contentType的屬性值,該方法動態(tài)設(shè)置響應(yīng)的的屬性值,該方法動態(tài)設(shè)置響應(yīng)的MIME類型,參數(shù)類型,參數(shù)s可?。嚎扇。簍ext/html、application/x-msexcel、application/msword 例如:例如: response.jspu respose respose重定向重定向 在某些情況下,當(dāng)響應(yīng)客戶時(shí),需要將客戶重在某些情況下,當(dāng)響應(yīng)客戶時(shí),需要將客戶重新引導(dǎo)至另一個(gè)頁面。例如,如果客戶輸入的表單新引導(dǎo)至另一個(gè)頁面。例如,如果客

13、戶輸入的表單信息不完整,就會再被引導(dǎo)到該表單的輸入頁面。信息不完整,就會再被引導(dǎo)到該表單的輸入頁面。 可以使用可以使用response的的sendRedirect(URL url)方法方法實(shí)現(xiàn)客戶的重定向。實(shí)現(xiàn)客戶的重定向。例如例如: Example3_13.jsp tree4.jspout對象用來向客戶端輸出數(shù)據(jù),并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū),其基類是JspWriter。通常使用out.println(String name)和out.print(String name),它們兩者最大的差別在于println( )在輸出的數(shù)據(jù)后面會自動加上換行的符號;反之,print( )不會在數(shù)據(jù)后自

14、動換行。out 對象除了這兩種方法最常使用之外,它還有一些方法見下表),這些方法主要是用來控制管理輸出的緩沖區(qū)(buffer)和輸出流(output stream)。三、三、out 對象對象方法名說明print()輸出數(shù)據(jù)println()按行輸出數(shù)據(jù)newLine()輸出一個(gè)換行符flush()輸出緩沖區(qū)里的數(shù)據(jù)close()關(guān)閉輸出流clearBuffer()清除緩沖區(qū)里的數(shù)據(jù),并把數(shù)據(jù)輸出到客戶端clear()清除緩沖區(qū)里的數(shù)據(jù),但不會把數(shù)據(jù)輸出到客戶端getBufferSize()獲得緩沖區(qū)的大小getRemaining()獲得緩沖區(qū)中沒有被占用的空間的大小。out對象示例對象示例%o

15、ut.println(test out,this is begin!);String out1=test out1;out.println(out1+);int out2=19810407;out.println(out2+);out.println(out1=(String.valueOf(out2)+);%session對象和客戶端的會話聯(lián)系在一起,由容器自動創(chuàng)建。一個(gè)客戶從打開瀏覽器連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個(gè)服務(wù)器結(jié)束,被稱作一個(gè)會話。一個(gè)客戶在一個(gè)會話期間,在該網(wǎng)站上不同頁面之間跳轉(zhuǎn)時(shí),可以得用session對象來實(shí)現(xiàn)信息的共享。四、 session對象當(dāng)使用者與服務(wù)器

16、聯(lián)機(jī)時(shí),服務(wù)器可以給每一個(gè)上網(wǎng)的使用者一個(gè)Session并設(shè)定其中的內(nèi)容,這些Session都是個(gè)別獨(dú)立的,服務(wù)器端可以借此來辨別使用者信息進(jìn)而提供個(gè)別的服務(wù)。 Session對象的常用方法為:getAttribute(String name):獲得指定名字的屬性,如果該屬性不存在,將會返回null。getAttributeNames():返回Session對象中存儲的每個(gè)屬性對象,結(jié)果集是一個(gè)Enumeration類的實(shí)例。 setAttribute(String name,java.lang.Object value):設(shè)定指定名字的屬性值,并且把它存儲在Session對象中。isNew(

17、):判斷目前Session是否為新的Session,若是則返回ture,否則返回false。 ngetId():返回:返回Session對象在服務(wù)器端的編號。每生對象在服務(wù)器端的編號。每生成一個(gè)成一個(gè)Session對象,服務(wù)器都會給它一個(gè)編號,并且對象,服務(wù)器都會給它一個(gè)編號,并且該編號不會重復(fù),這樣服務(wù)器才能根據(jù)編號來識別該編號不會重復(fù),這樣服務(wù)器才能根據(jù)編號來識別Session,并且正確的處理某一特定的,并且正確的處理某一特定的Session及其提及其提供的服務(wù)。供的服務(wù)。ngetCreationTime():返回:返回Session對象被創(chuàng)建的時(shí)對象被創(chuàng)建的時(shí)間,單位為毫秒。間,單位為毫

18、秒。ngetLastAccessedTime():返回當(dāng)前:返回當(dāng)前Session對象最對象最后一次被操作的時(shí)間,時(shí)間的單位為毫秒。后一次被操作的時(shí)間,時(shí)間的單位為毫秒。ngetMaxInactiveInterval():獲?。韩@取Session對象的對象的生存時(shí)間,時(shí)間的單位為秒。生存時(shí)間,時(shí)間的單位為秒。nsetMaxInactiveInterval(int interval):設(shè)置:設(shè)置Session的有效時(shí)間也叫超時(shí)時(shí)間),時(shí)間的單位為的有效時(shí)間也叫超時(shí)時(shí)間),時(shí)間的單位為秒。秒。nremoveAttribute(String name)“刪除指定的屬性刪除指定的屬性包含屬性名、屬性值

19、)。如果在有效時(shí)間內(nèi),用戶做包含屬性名、屬性值)。如果在有效時(shí)間內(nèi),用戶做出了新的請求,那么服務(wù)器就會將其看作一個(gè)新的用戶,出了新的請求,那么服務(wù)器就會將其看作一個(gè)新的用戶,此時(shí),服務(wù)器將創(chuàng)建一個(gè)新的此時(shí),服務(wù)器將創(chuàng)建一個(gè)新的Session,舊的,舊的Session信息將會丟失信息將會丟失 關(guān)于session ID的示例客戶在訪問以下三個(gè)頁面中,所獲取到的session對象是完全相同的。例如 : Session.jsp(Session.jsp、Tom.jsp、jerry.jsp)在重定向到新的頁面利用session對象實(shí)現(xiàn)數(shù)據(jù)的傳遞。reponse.sendRedirect(URL);見示例:

20、 ch05/( session_login.html Check_login.jsp Loginsuccess.jsp )五、五、application對象對象服務(wù)器啟動后就產(chǎn)生一個(gè)服務(wù)器啟動后就產(chǎn)生一個(gè)application對象。對象。所有的客戶在頁面之間跳轉(zhuǎn)時(shí)用的都是同一所有的客戶在頁面之間跳轉(zhuǎn)時(shí)用的都是同一個(gè)對象。也就是說這些線程共享這個(gè)個(gè)對象。也就是說這些線程共享這個(gè)application對象對象使用使用Session對象時(shí),各個(gè)客戶端共享一個(gè)對象時(shí),各個(gè)客戶端共享一個(gè)Session對象。對象。Application對象主要方法為:對象主要方法為:getAttribute(String

21、 name):返回由:返回由name指定名字的指定名字的Application對象屬性的對象屬性的值,這是個(gè)值,這是個(gè)Object對象,如果沒有,就返對象,如果沒有,就返回回null。getAttributeNames():返回所有:返回所有Application對象的屬性的名字,結(jié)果集對象的屬性的名字,結(jié)果集是一個(gè)是一個(gè)Enumeration枚舉類的實(shí)例。枚舉類的實(shí)例。ngetInitParameter(String name):返回由name指定的名字的application對象的某個(gè)屬性的初始值,如果沒有參數(shù),就返回null。ngetServerInfo():返回servlet編譯器當(dāng)前

22、版本信息。nsetAttribute(String name,Object object):將參數(shù)Object指定的對象obj添加到application對象中,并為添加的對象指定一個(gè)屬性。 常用方法public void setAttribute(key,Object o)public Object getAttribute(key)public Enumberation getAttributeNames()public void removeAttributes(String key) application對象示例對象示例例如:例如: (Test_application.jsp App

23、lication.jsp ) Test_application2.jsp Exception對象用來處理JSP文件在執(zhí)行時(shí)所有發(fā)生的錯(cuò)誤和異常,Exception對象可以配合page指令一起使用,通過指定某一個(gè)頁面為錯(cuò)誤處理頁面,把所有的錯(cuò)誤都集中那個(gè)頁面進(jìn)行處理,可以使得整個(gè)系統(tǒng)的健壯性得到加強(qiáng),也使得程序的流程更加簡單明晰。Exception對象的主要方法為:getMessage():返回錯(cuò)誤信息。printStackTrace():以標(biāo)準(zhǔn)錯(cuò)誤的形式輸出一個(gè)錯(cuò)誤和錯(cuò)誤的堆棧。 toString():以字符串的形式返回一個(gè)對異常的描述。 六、六、Exception對象對象exception對

24、象是java.lang.Throwable類的一個(gè)實(shí)例,指的是運(yùn)行時(shí)異常,只有被聲明為錯(cuò)誤頁面中在頁面指令里有 isErrorPage=true才可以使用。例子: syntax_error.jsp Exception.jsp ( Error.jsp Exception.jsp)七、七、pageContext對象對象pageContext對象被用來對屬于對象被用來對屬于JSP中可見部分中中可見部分中已經(jīng)命名對象的訪問。已經(jīng)命名對象的訪問。可以根據(jù)不同的對象范圍來實(shí)現(xiàn)對這些對象的管理??梢愿鶕?jù)不同的對象范圍來實(shí)現(xiàn)對這些對象的管理。其主要方法為:其主要方法為:getAttribute():返回與指定

25、范圍內(nèi)名稱有關(guān)的:返回與指定范圍內(nèi)名稱有關(guān)的變量或變量或null。findAttribute():用來按照頁面請求、會話以:用來按照頁面請求、會話以及應(yīng)用程序范圍的順序?qū)崿F(xiàn)對某個(gè)已經(jīng)命名屬性及應(yīng)用程序范圍的順序?qū)崿F(xiàn)對某個(gè)已經(jīng)命名屬性的搜索。的搜索。setAttribute():用來設(shè)置默認(rèn)頁面的范圍或指:用來設(shè)置默認(rèn)頁面的范圍或指定范圍之中的已命名對象。定范圍之中的已命名對象。removeAttribute():用來刪除默認(rèn)頁面范圍或:用來刪除默認(rèn)頁面范圍或指定范圍之中已命名的對象。指定范圍之中已命名的對象。常見的方法有: forward()、getAttribute()、setAttribu

26、te()、findAttribute()、removeAttribute()、getRequest()、getResponse()、getServletConfig()、getServletContext()、getSession().例子:(pagecontext_form.html pageContext1.jsp pageContext2 .jsp )Config對象是JSP頁面通過JSP container進(jìn)行初始化時(shí)被傳遞的對象。Config對象具有Web服務(wù)器所需的多種環(huán)境設(shè)定值,簡單點(diǎn)說,Config對象就是提供對初始化JSP的配置數(shù)據(jù)的訪問。 Config對象的主要方法為:ge

27、tInitParameter():以字符串類型返回指定初始參數(shù)的內(nèi)容,如果參數(shù)不存在,則返回null。getInitParameterNames():以Enumeration類型返回所有初始參數(shù)的名稱,如果沒有初始化參數(shù),則返回null。getServletContext():返回的Servlet是屬于哪一個(gè)application。getServletName():以字符串類型返回Servlet的名稱。八、Config對象 config對象示例對象示例%java.util.Enumeration configname=config.getInitParameterNames();while(configname.hasMoreElements() String name=(String)configname.nextElement();out.println(參數(shù)名稱:參數(shù)名稱:+name+參數(shù)參數(shù)值值:+config.getInitParameter(name)+);%Page對象是java.lang.Object類的一個(gè)實(shí)例,它代表JSP編譯后的產(chǎn)生的SERVLET類的實(shí)例,代表JSP頁面本身,只有在當(dāng)前的JSP頁面才有效。例: page.jsp九、page對象

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論