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

下載本文檔

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

文檔簡介

1、2022-1-27Javaweb第4章JSP內(nèi)置對象1 JSP 內(nèi)置對象內(nèi)置對象2022-1-27Javaweb第4章JSP內(nèi)置對象2教學內(nèi)容:教學內(nèi)容: request對象對象 response對象對象 out對象對象 session對象對象 application對象對象 exception對象對象 pageContext對象對象 config對象對象 page對象對象 2022-1-27Javaweb第4章JSP內(nèi)置對象3一、request 對象 HTTP通信協(xié)議是客戶與服務器之間一種提交通信協(xié)議是客戶與服務器之間一種提交(請求)信息與響應信息(請求)信息與響應信息(request/re

2、spone)的通信協(xié)議。在)的通信協(xié)議。在JSP中,內(nèi)置對象中,內(nèi)置對象request封裝了用戶提交的信息,封裝了用戶提交的信息,那么該對象調(diào)用相應的方法可以獲取封裝的信那么該對象調(diào)用相應的方法可以獲取封裝的信息。息。示例:示例:Example3_1.jsp tree.jsp2022-1-27Javaweb第4章JSP內(nèi)置對象4HTTP請求中包括一個請求行、頭域和可能的信息體,如: GET/hello.html HTTP/1.1 HOST: accept-encoding:gzip,deflate一個典型的請求通常包含許多請求頭,有些頭是標準的,有些和特定的瀏覽器有關。包含的信息提可能是表單的

3、內(nèi)容。2022-1-27Javaweb第4章JSP內(nèi)置對象5Request對象包括很多方法,主要有:ngetCookies():返回客戶端的cookie對象,結果是一個cookie數(shù)組。ngetSession(boolean create):返回和當前客戶端請求相關聯(lián)的HttpSession對象,如果當前客戶端請求沒有和任何HttpSession對象關聯(lián),那么當create變量為true,則創(chuàng)建一個HttpSession對象并返回;反之,返回null。 ngetHeader(String name):獲得http協(xié)議定義的傳送文件頭信息 。2022-1-27Javaweb第4章JSP內(nèi)置對象6

4、ngetAttribute(String name):返回name指定的屬性值,若不存在指定的屬性,就返回null。ngetattributeNames():返回request對象所有屬性的名字,結果集是一個Enumeration(枚舉)類的實例。ngetHeaderNames():返回所有request header的名字,結果集是一個Enumeration(枚舉)類的實例。getHeaders(String name):返回指定名字的request header的所有值,結果集是一個Enumeration(枚舉)類的實例。ngetMethod():返回客戶端向服務器端傳送數(shù)據(jù)的方法,一般方

5、法有GET、POST、PUT等類型。ngetParameter(String name):以字符串的形式返回客戶端傳來的某一個請求參數(shù)的值,該參數(shù)名由name指定。當傳遞給此方法的參數(shù)名沒有實際參數(shù)與之對應時,返回null。2022-1-27Javaweb第4章JSP內(nèi)置對象7ngetparameterNames():返回客戶端傳送給服務器端的所有的參數(shù)名,結果集是一個Enumeration(枚舉)類的實例。當傳遞給此方法的參數(shù)名沒有實際參數(shù)與之對應時,返回null。ngetParameterValues(String name):以字符串數(shù)組的形式返回指定參數(shù)所有值。ngetQueryStr

6、ing():返回查詢字符串,該字符串由客戶端以GET方法向服務器端傳送。 ngetRequestURI():獲得發(fā)出請求字符串的客戶端地址。ngetServletPath():獲得客戶端所請求的腳本文件的文件路徑。nsetAttribute(String name,Java.lang.Object o):設定名字為name的request參數(shù)值,該值由Object類型的o指定。ngetServerName():獲得服務器的名字,如果沒有設定服務器名,則返回服務器IP地址。 2022-1-27Javaweb第4章JSP內(nèi)置對象8ngetServerPort():獲得服務器的端口號。ngetRem

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

8、multipart/form-data數(shù)據(jù),可以實現(xiàn)文件上傳。 2022-1-27Javaweb第4章JSP內(nèi)置對象9nisSecure():如果客戶機是通過一個安全的訪問方式訪問的,就返回true;反之,返回false.ngetDateHeader():返回一個long類型的數(shù)據(jù),表示客戶端發(fā)送到服務器的頭信息中的時間信息。ngetInitHeader():獲取客戶端發(fā)送到服務器端的頭信息中的某一個特定的信息,并轉換為int類型。ngetContextPath():返回環(huán)境路徑。對于JSP來說,一般是當前Web應用程序的根目錄。nisRequestedSessionIdValid():返回一

9、個指示客戶端請求發(fā)送Session ID是否仍然有效的布爾值。nisRequestedSessionIdFromCookie():返回一個指示客戶端請求發(fā)送Session ID是否存在于Cookie中的布爾值。nisRequestedSessionIdFromURL():返回一個指示客戶端請求發(fā)送Session ID是否存在于URL中的布爾值。 2022-1-27Javaweb第4章JSP內(nèi)置對象10客戶通常使用HTML表單向服務器的某個JSP頁面提交信息,表單的一般格式: 提交手段提交手段請求的方法有get 、post、head 、delete、trace 、put 等.例: request

10、.jsp 2022-1-27Javaweb第4章JSP內(nèi)置對象11 當用request對象獲取客戶提交的漢字字符時,會出現(xiàn)亂碼問題,所以對含有漢字字符的信息必須進行特殊的處理方式。首先,將獲取的字符串用ISO-8859-1進行編碼,并將編碼存放到一個字節(jié)數(shù)組中,然后再將這個數(shù)組轉化為字符串對象即可。例: Example3_3.jsp tree1.jspu處理漢字信息處理漢字信息2022-1-27Javaweb第4章JSP內(nèi)置對象12二、二、response response 對象對象u 用response對象對客戶的請求作出動態(tài)響應,將JSP 處理數(shù)據(jù)后的結果傳回到客戶端。u比如,當一個客戶請

11、求訪問一個JSP頁面時,該頁面用page指令設置頁面的contentType屬性的值是text/html,那么JSP引擎將按著這種屬性值響應客戶對頁面的請求,將頁面的靜態(tài)部分返回給客戶。u如果想動態(tài)地改變contentType的屬性值就需要用response對象改變頁面的這個屬性的值,作出動態(tài)的響應。2022-1-27Javaweb第4章JSP內(nèi)置對象13Response對象的常用方法為: naddCookie(Cookie cookie):添加一個Cookie對象,用來保存客戶端的用戶信息,用request的getCookies()方法可以獲得這個Cookie。 naddHeader(Str

12、ing name,String value):添加HTTP文件頭,該header將會傳到客戶端去,如果有同名的header存在,那么原來的header將會被覆蓋掉。 ncontainsHeader(String name):判斷指定名字的HTTP文件頭是否存在,并返回布爾值。2022-1-27Javaweb第4章JSP內(nèi)置對象14nsendError(int sc):向客戶端發(fā)送錯誤信息,例如,505指示服務器內(nèi)部錯誤;404指示網(wǎng)頁找不到的錯誤。nsetHeader(String name,String value):設定指定名字的HTTP文件頭的值,如果該值存在,那么它會被新的值覆蓋。ns

13、etContenType(String type):響應設置內(nèi)容類型頭。nsendRedirect(URL):可以將用戶重定向到一個不同的頁面(URL)。2022-1-27Javaweb第4章JSP內(nèi)置對象15 response內(nèi)置對象內(nèi)置對象使用使用response內(nèi)置對象刷新頁面內(nèi)置對象刷新頁面 顯示時間:顯示時間:2022-1-27Javaweb第4章JSP內(nèi)置對象16u 動態(tài)響應動態(tài)響應contentTypecontentType屬性屬性 如果想動態(tài)的改變這個屬性的值來響應客戶,就需如果想動態(tài)的改變這個屬性的值來響應客戶,就需要使用要使用response對象的對象的setContent

14、Type(String s)方法來改方法來改變變contentType的屬性值,該方法動態(tài)設置響應的的屬性值,該方法動態(tài)設置響應的MIME類型,參數(shù)類型,參數(shù)s可取:可?。簍ext/html、application/x-msexcel、application/msword 示例示例: response.jsp2022-1-27Javaweb第4章JSP內(nèi)置對象17u respose respose重定向重定向 在某些情況下,當響應客戶時,需要將客戶重在某些情況下,當響應客戶時,需要將客戶重新引導至另一個頁面。例如,如果客戶輸入的表單新引導至另一個頁面。例如,如果客戶輸入的表單信息不完整,就會再

15、被引導到該表單的輸入頁面。信息不完整,就會再被引導到該表單的輸入頁面。 可以使用可以使用response的的sendRedirect(URL url)方法方法實現(xiàn)客戶的重定向。實現(xiàn)客戶的重定向。示例示例: Example3_13.jsp tree4.jsp2022-1-27Javaweb第4章JSP內(nèi)置對象18out對象用來向客戶端輸出數(shù)據(jù),并且管理應用服務器上的輸出緩沖區(qū),其基類是JspWriter。通常使用out.println(String name)和out.print(String name),它們兩者最大的差別在于println( )在輸出的數(shù)據(jù)后面會自動加上換行的符號;反之,pr

16、int( )不會在數(shù)據(jù)后自動換行。out 對象除了這兩種方法最常使用之外,它還有一些方法(見下表),這些方法主要是用來控制管理輸出的緩沖區(qū)(buffer)和輸出流(output stream)。三、三、out 對象對象2022-1-27Javaweb第4章JSP內(nèi)置對象19方法名說明print()輸出數(shù)據(jù)println()按行輸出數(shù)據(jù)newLine()輸出一個換行符flush()輸出緩沖區(qū)里的數(shù)據(jù)close()關閉輸出流clearBuffer()清除緩沖區(qū)里的數(shù)據(jù),并把數(shù)據(jù)輸出到客戶端clear()清除緩沖區(qū)里的數(shù)據(jù),但不會把數(shù)據(jù)輸出到客戶端getBufferSize()獲得緩沖區(qū)的大小get

17、Remaining()獲得緩沖區(qū)中沒有被占用的空間的大小。2022-1-27Javaweb第4章JSP內(nèi)置對象20out對象示例對象示例%out.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)+);%2022-1-27Javaweb第4章JSP內(nèi)置對象21session對象和客戶端的會話聯(lián)系在一起,由容器自動創(chuàng)建。一個客戶從打開瀏覽器連接到服務器

18、開始,到客戶關閉瀏覽器離開這個服務器結束,被稱作一個會話。一個客戶在一個會話期間,在該網(wǎng)站上不同頁面之間跳轉時,可以得用session對象來實現(xiàn)信息的共享。四、 session對象2022-1-27Javaweb第4章JSP內(nèi)置對象22當使用者與服務器聯(lián)機時,服務器可以給每一個上網(wǎng)的使用者一個Session并設定其中的內(nèi)容,這些Session都是個別獨立的,服務器端可以借此來辨別使用者信息進而提供個別的服務。 Session對象的常用方法為:ngetAttribute(String name):獲得指定名字的屬性,如果該屬性不存在,將會返回null。ngetAttributeNames():返

19、回Session對象中存儲的每個屬性對象,結果集是一個Enumeration類的實例。 nsetAttribute(String name,java.lang.Object value):設定指定名字的屬性值,并且把它存儲在Session對象中。nisNew():判斷目前Session是否為新的Session,若是則返回ture,否則返回false。 2022-1-27Javaweb第4章JSP內(nèi)置對象23ngetId():返回Session對象在服務器端的編號。每生成一個Session對象,服務器都會給它一個編號,并且該編號不會重復,這樣服務器才能根據(jù)編號來識別Session,并且正確的處理

20、某一特定的Session及其提供的服務。ngetCreationTime():返回Session對象被創(chuàng)建的時間,單位為毫秒。ngetLastAccessedTime():返回當前Session對象最后一次被操作的時間,時間的單位為毫秒。ngetMaxInactiveInterval():獲取Session對象的生存時間,時間的單位為秒。nsetMaxInactiveInterval(int interval):設置Session的有效時間(也叫超時時間),時間的單位為秒。nremoveAttribute(String name)“刪除指定的屬性(包含屬性名、屬性值)。如果在有效時間內(nèi),用戶做

21、出了新的請求,那么服務器就會將其看作一個新的用戶,此時,服務器將創(chuàng)建一個新的Session,舊的Session信息將會丟失 2022-1-27Javaweb第4章JSP內(nèi)置對象24 關于session ID的示例客戶在訪問以下三個頁面中,所獲取到的session對象是完全相同的。示例 : Session.jsp(Session.jsp、Tom.jsp、jerry.jsp)2022-1-27Javaweb第4章JSP內(nèi)置對象25在重定向到新的頁面利用session對象實現(xiàn)數(shù)據(jù)的傳遞。reponse.sendRedirect(URL);見示例: ch05/( session_login.html

22、Check_login.jsp Loginsuccess.jsp )2022-1-27Javaweb第4章JSP內(nèi)置對象26五、五、application對象對象服務器啟動后就產(chǎn)生一個application對象。所有的客戶在頁面之間跳轉時用的都是同一個對象。也就是說這些線程共享這個application對象使用Session對象時,各個客戶端共享一個Session對象。Application對象主要方法為:ngetAttribute(String name):返回由name指定名字的Application對象屬性的值,這是個Object對象,如果沒有,就返回null。ngetAttribute

23、Names():返回所有Application對象的屬性的名字,結果集是一個Enumeration(枚舉)類的實例。2022-1-27Javaweb第4章JSP內(nèi)置對象27ngetInitParameter(String name):返回由name指定的名字的application對象的某個屬性的初始值,如果沒有參數(shù),就返回null。ngetServerInfo():返回servlet編譯器當前版本信息。nsetAttribute(String name,Object object):將參數(shù)Object指定的對象obj添加到application對象中,并為添加的對象指定一個屬性。 2022-

24、1-27Javaweb第4章JSP內(nèi)置對象28常用方法public void setAttribute(key,Object o)public Object getAttribute(key)public Enumberation getAttributeNames()public void removeAttributes(String key)2022-1-27Javaweb第4章JSP內(nèi)置對象29 application對象示例對象示例2022-1-27Javaweb第4章JSP內(nèi)置對象30示例:示例: (Test_application.jsp Application.jsp ) Te

25、st_application2.jsp2022-1-27Javaweb第4章JSP內(nèi)置對象31 Exception對象用來處理JSP文件在執(zhí)行時所有發(fā)生的錯誤和異常,Exception對象可以配合page指令一起使用,通過指定某一個頁面為錯誤處理頁面,把所有的錯誤都集中那個頁面進行處理,可以使得整個系統(tǒng)的健壯性得到加強,也使得程序的流程更加簡單明晰。Exception對象的主要方法為:ugetMessage():返回錯誤信息。uprintStackTrace():以標準錯誤的形式輸出一個錯誤和錯誤的堆棧。u toString():以字符串的形式返回一個對異常的描述。 六、六、Exception

26、對象2022-1-27Javaweb第4章JSP內(nèi)置對象32exception對象是java.lang.Throwable類的一個實例,指的是運行時異常,只有被聲明為錯誤頁面中(在頁面指令里有 isErrorPage=true)才可以使用。例子: syntax_error.jsp Exception.jsp ( Error.jsp Exception.jsp)2022-1-27Javaweb第4章JSP內(nèi)置對象33七、七、pageContext對象對象pageContext對象被用來對屬于JSP中可見部分中已經(jīng)命名對象的訪問??梢愿鶕?jù)不同的對象范圍來實現(xiàn)對這些對象的管理。其主要方法為:nget

27、Attribute():返回與指定范圍內(nèi)名稱有關的變量或null。nfindAttribute():用來按照頁面請求、會話以及應用程序范圍的順序實現(xiàn)對某個已經(jīng)命名屬性的搜索。nsetAttribute():用來設置默認頁面的范圍或指定范圍之中的已命名對象。nremoveAttribute():用來刪除默認頁面范圍或指定范圍之中已命名的對象。2022-1-27Javaweb第4章JSP內(nèi)置對象34常見的方法有: forward()、getAttribute()、setAttribute()、findAttribute()、removeAttribute()、getRequest()、getRes

28、ponse()、getServletConfig()、getServletContext()、getSession().例子:(pagecontext_form.html pageContext1.jsp pageContext2 .jsp )2022-1-27Javaweb第4章JSP內(nèi)置對象35Config對象是JSP頁面通過JSP container進行初始化時被傳遞的對象。Config對象具有Web服務器所需的多種環(huán)境設定值,簡單點說,Config對象就是提供對初始化JSP的配置數(shù)據(jù)的訪問。 Config對象的主要方法為:ngetInitParameter():以字符串類型返回指定初始

29、參數(shù)的內(nèi)容,如果參數(shù)不存在,則返回null。ngetInitParameterNames():以Enumeration類型返回所有初始參數(shù)的名稱,如果沒有初始化參數(shù),則返回null。ngetServletContext():返回的Servlet是屬于哪一個application。ngetServletName():以字符串類型返回Servlet的名稱。八、Config對象2022-1-27Javaweb第4章JSP內(nèi)置對象36 config對象示例對象示例%java.util.Enumeration configname=config.getInitParameterNames();while

30、(configname.hasMoreElements() String name=(String)configname.nextElement();out.println(參數(shù)名稱:參數(shù)名稱:+name+參數(shù)參數(shù)值值:+config.getInitParameter(name)+);%2022-1-27Javaweb第4章JSP內(nèi)置對象37Page對象是java.lang.Object類的一個實例,它代表JSP編譯后的產(chǎn)生的SERVLET類的實例,代表JSP頁面本身,只有在當前的JSP頁面才有效。例: page.jsp九、page對象2022-1-27Javaweb第4章JSP內(nèi)置對象38隱含對象隱含對象類型類型pageContextjav

溫馨提示

  • 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

提交評論