JSP內(nèi)置對象

大家好,我是IT修真院深圳分院第01期學員,一枚正直純潔善良的web程序員。今天給大家分享一下,修真院官網(wǎng)JAVA(職業(yè))任務(wù)4的知識點——JSP內(nèi)置對象。

1.背景介紹

內(nèi)置對象(又叫隱含對象):不需要預先聲明就可以在腳本代碼和表達式中隨意使用。jsp內(nèi)置了9大對象:request、response、session、application、out、pageContext、config、page、exception。。

2.知識剖析

2.1 request對象

request對象是javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用于接受通過HTTP協(xié)議傳送到服務(wù)器的數(shù)據(jù)。(包括頭信息、系統(tǒng)信息、請求方式以及請求參數(shù)等)。request對象的作用域為一次請求。

2.2 response對象

response代表的是對客戶端的響應(yīng),主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內(nèi)有效。

2.3 session對象

session對象是由服務(wù)器自動創(chuàng)建的與用戶請求相關(guān)的對象。服務(wù)器為每個用戶都生成一個session對象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。session對象內(nèi)部使用Map類來保存數(shù)據(jù),因此保存數(shù)據(jù)的格式為“Key/value”。session對象的value可以使復雜的對象類型,而不僅僅局限于字符串類型。

2.4 application對象

application對象可將信息保存在服務(wù)器中,直到服務(wù)器關(guān)閉,否則application對象中保存的信息會在整個應(yīng)用中都有效。與session對象相比,application對象生命周期更長,類似于系統(tǒng)的“全局變量”。

2.5 out對象

out對象用于在Web瀏覽器內(nèi)輸出信息,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。在使用out對象輸出數(shù)據(jù)時,可以對數(shù)據(jù)緩沖區(qū)進行操作,及時清除緩沖區(qū)中的殘余數(shù)據(jù),為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后,要及時關(guān)閉輸出流。

2.6 pageContext對象

pageContext對象的作用是取得任何范圍的參數(shù),通過它可以獲取JSP頁面的out、request、reponse、session、application等對象。pageContext對象的創(chuàng)建和初始化都是由容器來完成的,在JSP頁面中可以直接使用pageContext對象。

2.7 config對象

config對象的主要作用是取得服務(wù)器的配置信息。通過pageConext對象的getServletConfig()方法可以獲取一個config對象。當一個Servlet初始化時,容器把某些信息通過config對象傳遞給這個Servlet。 開發(fā)者可以在web.xml文件中為應(yīng)用程序環(huán)境中的Servlet程序和JSP頁面提供初始化參數(shù)。

2.8 page對象

page對象代表JSP本身,只有在JSP頁面內(nèi)才是合法的。page隱含對象本質(zhì)上包含當前Servlet接口引用的變量,類似于Java編程中的this指針。

2.9 exception對象

exception對象:exception對象的作用是顯示異常信息,只有在包含isErrorPage="true"的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統(tǒng)提供的繼承結(jié)構(gòu)。exception對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關(guān)鍵字來處理異常情況; 如果在JSP頁面中出現(xiàn)沒有捕獲到的異常,就會生成exception對象,并把exception對象傳送到在page指令中設(shè)定的錯誤頁面中,然后在錯誤頁面中處理相應(yīng)的exception對象。

3. 常見問題

實際使用

4. 解決方案

在jsp頁面中寫腳本代碼直接使用(<%...%>)

5. 編碼實戰(zhàn)

6. 擴展思考

關(guān)于jsp:servlet是一個Java類,是一個可以獨立運行的小程序,可以用“請求-響應(yīng)”編程模型訪問,jsp實際上就是一個servlet,也就是說jsp會在servlet容器中編譯成Java類,因此jsp可以接收請求和響應(yīng)。

7.參考文獻

參考一:慕課網(wǎng)

8.更多討論

請求轉(zhuǎn)發(fā)與請求重定向

請求轉(zhuǎn)發(fā)發(fā)生在服務(wù)端內(nèi)部,使用request.getRequestDispatcher().forward(request,response)轉(zhuǎn)發(fā),前后是一次請求,轉(zhuǎn)發(fā)后請求對象會保存,最終瀏覽器url地址不會改變;請求重定向是客戶端行為,使用response.sendRedirect()方法,本質(zhì)上等同于兩次請求,前一次的請求對象不會保存,瀏覽器url地址會發(fā)生改變。

PPT鏈接


JSP內(nèi)置對象_騰訊視頻

提問:這九大對象中最常用的對象是哪些?

答:request、response、session、pageContext最常用,目前寫web工程都用spring MVC框架,很多內(nèi)置對象的功能都被框架的功能替代。

提問:out.clearBuffer( )和out.clear( )有什么區(qū)別?

答:clear()用來清除輸出緩沖區(qū)。這種方法不寫任何內(nèi)容到客戶機。該方法拋出異常,如果緩沖被刷新。

clearBuffer():清除輸出緩沖區(qū)。這種方法不寫任何內(nèi)容到客戶機。該方法不會拋出異常,如果緩沖被刷新。

提問:ServletContext對象是什么?

答:ServletContext,是一個全局的儲存信息的空間,服務(wù)器開始,其就存在,服務(wù)器關(guān)閉,其才釋放。運行在JAVA虛擬機中的每一個Web應(yīng)用程序都有一個與之相關(guān)的Servlet上下文。ServletContext對象是Web服務(wù)器中的一個已知路徑的根,一個ServletContext對象表示了一個Web應(yīng)用程序的上下文。

鳴謝

感謝大家觀看

------------------------------------------------------------------------------------------------------------------------

今天的分享就到這里啦,歡迎大家點贊、轉(zhuǎn)發(fā)、留言、拍磚~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 內(nèi)置對象簡介 JSP 內(nèi)置對象是 Web 容器創(chuàng)建的一組對象,不需使用 new 關(guān)鍵字就可以直接使用的內(nèi)置對象。 ...
    Yanci516閱讀 1,603評論 0 5
  • 前言:在開始介紹JSP的內(nèi)置對象之前,先講解JSP中4種屬性范圍,分別是page、request、session和...
    秋高靠古今閱讀 317評論 0 1
  • JSP包含九種內(nèi)置對象,包含:(以下都是對象的引用,而不是類名。)1、request,請求對象2、response...
    exmexm閱讀 657評論 0 0
  • 1.學習內(nèi)容 JSP技術(shù)入門和常用指令 JSP的內(nèi)置對象&標簽介紹 EL表達式&EL的內(nèi)置對象 2.JSP技術(shù)入門...
    WendyVIV閱讀 2,330評論 1 18
  • 內(nèi)置對象的簡介:內(nèi)置對象是web容器常見的一組對象,不使用new關(guān)鍵字就可以使用的內(nèi)置對象。九大內(nèi)置對象:常用的:...
    zzj丶閱讀 376評論 0 2

友情鏈接更多精彩內(nèi)容