2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第4章 JSP內(nèi)置對象,本章主要內(nèi)容:內(nèi)置對象的概念內(nèi)置對象的作用域和生命期內(nèi)置對象的作用和關(guān)系內(nèi)置對象的使用方法,第4章 JSP內(nèi)置對象,4.1 JSP內(nèi)置對象概述4.2 request對象4.3 response對象4.4 session對象4.5 application對象4.6 其他內(nèi)部對象4.7 JSP程序的調(diào)試,4.1 JSP內(nèi)置對象概述,4.1.1 JSP內(nèi)置對象的來源 4.1.2 JSP內(nèi)置對象介紹

2、,,4.1.1 JSP內(nèi)置對象的來源,有些成員變量不用聲明就可以在JSP頁面的腳本(如Java程序片和Java表達(dá)式)中使用,這就是所謂的內(nèi)置對象。使用JSP動態(tài)網(wǎng)頁開發(fā)實現(xiàn)Java Web應(yīng)用時,JSP文件通過JSP引擎翻譯為Servlet文件。這個Servlet是一個Java代碼文件,用于定義一個繼承HttpJspBase類的子類,并創(chuàng)建各個JSP內(nèi)置對象。因此,在設(shè)計JSP動態(tài)網(wǎng)頁時可以直接使用這些對象。,,4.1.2 JSP內(nèi)

3、置對象介紹,JSP的內(nèi)置對象是由JSP容器自動生成的,在JSP頁中可以直接使用而無須進(jìn)行聲明。在JSP動態(tài)網(wǎng)頁設(shè)計過程中,靈活地應(yīng)用這些內(nèi)置對象,可以實現(xiàn)許多實用的功能。在不需要顯示聲明的情況下,每一個JSP頁面中可以使用的內(nèi)置對象有9個:即request、response、session、out、application、config、pageContext、page以及exception。,4.2 request對象,4.2.1 H

4、TTP請求包 4.2.2 request對象的常用方法 4.2.3 request對象應(yīng)用實例,,4.2.1 HTTP請求包,一般說來,一個HTTP請求包括三個部分:一個請求行、多個請求頭和信息體。1.請求行規(guī)定了請求的方法(如get、post、head、delete、put等),請求的資源和使用的HTTP協(xié)議版本號。2.請求頭請求頭主要說明請求客戶的主機(jī)(IP)、信息體和附加信息。一個HTTP請求可以包括多個請求頭。3.

5、信息體指請求的正文。如表單數(shù)據(jù)被封裝為信息體。,4.2.2 request對象的常用方法,request對象包括很多方法,主要有以下幾種。(1)getProtocol()(2)getServletPath()(3)getContentLength() (4)getMethod()(5)getHeader(String s)(6)getHeaderNames()(7)getHeaders(String 

6、s) (8)getRemoteAddr(),(9)getRemoteHost() (10)getServerName() (11)getServePort()(12)getParameter(String name)(13)getParameterNames() (14)getParameterValues(String name)(15)getCookies() (16)getRequestURL(),4.2.2 req

7、uest對象的常用方法,4.2.3 request對象應(yīng)用實例,客戶通常使用HTML表單向服務(wù)器的某個JSP頁面提交信息,一般格式為: [接受數(shù)據(jù)的組件(0~n個)] [數(shù)據(jù)提交控件]【例4-3】獲取服務(wù)器端的有關(guān)信息在本例的request.jsp文件中,利用request對象的各種方法來獲取服務(wù)器端的各種信息參數(shù),并將其顯示出來。本例源代碼詳見教材,4.3 response對象,4.3.

8、1 HTTP響應(yīng)包4.3.2 response對象的常用方法4.3.3 response對象應(yīng)用實例,,4.3.1 HTTP響應(yīng)包,一個HTTP響應(yīng)包由三個部分組成:一個狀態(tài)行、多個響應(yīng)頭、信息體。1.狀態(tài)行描述服務(wù)器處理HTTP請求的成功與否。比如,是否收到請求包、請求被拒絕、請求超時、服務(wù)器發(fā)生錯誤等。2.響應(yīng)頭HTTP響應(yīng)包發(fā)送的目標(biāo)地址(IP)。3.信息體發(fā)送到服務(wù)器端的正文。如,在客戶端顯示的信息。服務(wù)器響應(yīng)

9、客戶時,它發(fā)送到客戶端的首行被稱為狀態(tài)行。,狀態(tài)行由3位數(shù)的狀態(tài)代碼和描述狀態(tài)代碼的文字組成。下面是對狀態(tài)代碼的分類描述:1xx :1開頭的3位數(shù)字,主要用于實驗。2xx :2開頭的3位數(shù)字,表明客戶端的請求已成功。3xx :3開頭的3位數(shù)字,表明處理客戶的請求以前,應(yīng)做一些別的處理。4xx :4開頭的3位數(shù)字,表明瀏覽器請求是非法的或無效的。5xx :5開頭的3位數(shù)字,表明服務(wù)器出現(xiàn)了問題。一般不需要修改狀態(tài)行,在出現(xiàn)問題

10、時,服務(wù)器會自動響應(yīng),發(fā)送相應(yīng)的狀態(tài)代碼到客戶端。也可以使用setStatus(int n)方法來增加狀態(tài)行的內(nèi)容。,4.3.1 HTTP響應(yīng)包,狀態(tài)代碼表,狀態(tài)代碼表,4.3.2 response對象的常用方法,response對象可以使用的常用方法如下:(1)addHeader(String name,String value)(2)setHeader(String name,String value) (3)addCooki

11、e(Cookie cookie)(4)containsHeader(String name) (5)sendError(int sc),(6)SendRedirect(URL) (7)flushBuffer() (8)setContenType(String type) (9)setLocale(Locale:locale) (10)setStatus(int:statuscode) (11)isCommitted() (

12、12)reset(),4.3.2 response對象的常用方法,4.3.3 response對象應(yīng)用實例,【例4-4】控制網(wǎng)頁的刷新頻率,在頁面中,實時顯示當(dāng)前時間。要實時顯示當(dāng)前時間,必須每秒鐘刷新一次頁面,這就要求向客戶輸出的響應(yīng)包中,必須含有響應(yīng)頭Refresh,其值為1,單位是秒。本例中利用response對象的setHeader()方法添加響應(yīng)頭和屬性值。本例源代碼詳見教材,4.4 session對象,4.4.1 會話及

13、相關(guān)概念4.4.2 session對象的常用方法4.4.3 session對象應(yīng)用實例,4.4.1 會話及相關(guān)概念,1.會話從一個客戶打開瀏覽器連接到服務(wù)器的某個服務(wù)目錄,到客戶關(guān)閉瀏覽器,這一過程稱為一個會話 (這其間,客戶訪問的是同一Web目錄中的網(wǎng)頁)。這時,在服務(wù)器端,系統(tǒng)為該客戶創(chuàng)建了一個session對象,在客戶端,系統(tǒng)為該客戶創(chuàng)建了Cookie對象。一個客戶對同一服務(wù)目錄中不同網(wǎng)頁的訪問屬于同一會話。,2.sessi

14、on對象與Cookie當(dāng)JSP引擎為客戶創(chuàng)建一個session對象后,這個session對象被分配了一個String類型的ID號,JSP引擎同時將此ID號發(fā)送到客戶端,存放在Cookie中。這樣,代表同一客戶會話的session對象和Cookie對象建立了一一對應(yīng)關(guān)系。即,每一客戶會話信息保存在session/Cookie對中。當(dāng)用戶再次訪問連接該服務(wù)器的其他頁面時,就不再分配給用戶新的session對象,直到關(guān)閉瀏覽器后,服務(wù)器端該

15、用戶的session對象才取消,并且和用戶的對應(yīng)關(guān)系也取消,4.4.1 會話及相關(guān)概念,3.session對象與線程當(dāng)多個客戶點擊同一頁面時,JSP引擎為每個客戶啟動一個線程,這就是說,一個客戶對應(yīng)一個線程,每個線程對應(yīng)一個session對象,每個線程的session對象不同。4.session對象的生命周期從一個客戶會話開始到會話結(jié)束這段時間稱為session對象的生命周期。具體上說,指客戶訪問某web目錄下的頁面到關(guān)閉瀏覽器,

16、離開該web目錄,這段時間成為session對象的生命周期。,4.4.1 會話及相關(guān)概念,4.4.2 session對象的常用方法,session對象可以使用的常用方法如下:(1)getAttribute(String name) (2)getAttributeNames() (3)getCreationTime()(4)getId() (5)getLastAccessedTime()(6)getMaxInactiveInt

17、erval() (7)setMaxInactiveInterval (int interval)(8)removeAttribute(String name)(9)setAttribute(String name,Java.lang.Object value) (10)invalidate() (11)isNew(),4.4.3 session對象應(yīng)用實例,【例】控制網(wǎng)頁的刷新頻率,在頁面中,實時顯示當(dāng)前時間。要實時顯示當(dāng)前

18、時間,必須每秒鐘刷新一次頁面,這就要求向客戶輸出的響應(yīng)包中,必須含有響應(yīng)頭Refresh,其值為1,單位是秒。本例中利用response對象的setHeader()方法添加響應(yīng)頭和屬性值。本例源代碼詳見教材,4.5 application對象,4.5.1 application對象的常用方法4.5.2 application對象的應(yīng)用實例4.4.3 session對象應(yīng)用實例,4.5.1 application對象的常用方法,ap

19、plication對象的主要方法有如下幾種。(1)getAttribute(String name) (2)getAttributeNames() (3)getInitParameter(String name) (4)getServerInfo()(5)setAttribute(String name, Object obj)(6)removeAttribute(String name) (7)getContext(St

20、ring urlpath) (8)getMimeType(String filename) (9)getRealPath(String path),4.5.2 application對象的應(yīng)用實例,【例4-10】讀取系統(tǒng)信息。本例主要是輸出頁面所在的實際路徑、使用的JSP引擎和application對象對應(yīng)的字符串。本例源代碼詳見教材,4.6 其他內(nèi)部對象,4.6.1 out對象4.6.2 page對象4.6.3 pageC

21、ontext對象4.6.4 config對象4.6.5 exception對象,4.6.1 out對象,out對象是一個輸出流,是JSP使用最頻繁的對象,能把結(jié)果輸出到網(wǎng)頁上。并且out對象還管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。out對象的常用方法如下:(1)out.print()或out.println() (2)out.newLine() (3)out.clearBuffer()(4)out.clear()(5)out.f

22、lush() (6)out.getBufferSize() (7)out.getRemaining() (8)out.isAutoFlush(),4.6.2 page對象,page對象屬于java.lang.Object類型,它是處理當(dāng)前請求的JSP實現(xiàn)類的實例。page對象指向當(dāng)前JSP頁面本身,更確切地說,它代表JSP被轉(zhuǎn)譯后的Servlet,因此,它可以調(diào)用Servlet類所定義的方法,在程序中可以用this來引用它。

23、【例】輸出JSP頁面對象的ID號和hash代碼值。本例調(diào)用page對象的hashCode()方法和toString()方法,分別獲取page對象的hash代碼值和ID號。程序源代碼詳見教材。,4.6.3 pageContext對象,pageContext是javax.servlet.jsp.PageContext類的一個實例。pageContext對象相當(dāng)于JSP頁面所有功能的大集成者,它提供了對JSP頁內(nèi)所有的對象及命名空間的訪問。

24、使用該對象可以訪問當(dāng)前頁所在session的屬性值,也可以訪問當(dāng)前頁所在application的屬性值,并且允許向其他應(yīng)用組件轉(zhuǎn)發(fā)Request對象,或者從其他應(yīng)用組件包含Request對象。,pageContext對象的常用方法如下:(1)getAttribute() (2)forward(String relativeUrlPath) (3)findAttribute() (4)getexception() (5)setA

25、ttribute()(6)removeAttribute(),4.6.3 pageContext對象,4.6.4 config對象,config對象是JSP頁面通過JSP Container進(jìn)行初始化時被傳遞的對象。config對象具有Web服務(wù)器環(huán)境設(shè)定值。使用config對象的優(yōu)點是在修改需要在Web服務(wù)器中處理的變量時,不需要逐一修改JSP文件,只要修改相應(yīng)屬性文件的內(nèi)容就可以了。,config對象的常用方法如下:(1)ge

26、tInitParameter(String name)(2)getInitParameterNames() (3)getServletNames() (4)getServletContext(),4.6.4 config對象,4.6.5 exception對象,exception對象用來處理JSP文件在執(zhí)行時所發(fā)生的錯誤和異常。exception對象可以配合page指令一起使用,通過指定某一頁面為錯誤處理頁面,把所有的錯誤都集中到

27、那個頁面進(jìn)行處理。這樣可以使得整個系統(tǒng)更加健壯,也使得程序的流程更加清晰,這也是JSP比ASP和PHP先進(jìn)的地方。,exception對象的常用方法如下:(1)getMessage()(2)printStackTrace()(3)toString(),4.6.5 exception對象,4.7 JSP程序的調(diào)試,4.7.1 三種錯誤類型4.7.2 JSP語法錯誤的調(diào)試4.7.3 JSP運(yùn)行錯誤的調(diào)試,4.7.1 三種錯誤類型,

28、當(dāng)程序不能正常運(yùn)行或運(yùn)行結(jié)果不正確時,就表明程序中有錯。在JSP程序中,常見的錯誤有以下3種:1)語法錯誤2)運(yùn)行錯誤3)邏輯錯誤,4.7.2 JSP語法錯誤的調(diào)試,本節(jié)以一個乘法九九表的的例子來分析在編寫JSP程序時經(jīng)常會遇到的語法錯誤。例題詳見教材,4.7.3 JSP運(yùn)行錯誤的調(diào)試,運(yùn)行錯誤是當(dāng)JSP引擎將JS文件編譯成的Servlet加載到內(nèi)存執(zhí)行時發(fā)生的錯誤,如數(shù)組越界、除零及一些數(shù)據(jù)操作都可能導(dǎo)致運(yù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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論