標籤:儲存 encoding one 16px 資訊 使用者 通過 java基礎 內建對象
何為JSP?
要解釋JSP的九個內建對象,必須先要搞懂何為JSP?JSP全稱Java Service Pages中文:Java伺服器頁面。其實看到JSP學過.NET都可能對想到ASP,沒錯,兩者確實很像。ASP是在HTML頁面中加入C#用於顯示層,像後台傳遞資料之類。而JSP是在HTML頁面注入Java語言,便於向後端傳遞資訊。JSP從本質上來分析就是一個簡化版的Servlet。而jsp和Servlet的區別就是,jsp需要Servlet容器先編譯成Servlet類,然後才能運行它。
在Tomcat中發布項目後,可以在Tomcat的工作目錄中找到該JSP檔案翻譯後的xxx_jsp.java檔案以及xxx_jsp.class檔案,開啟xxx_jsp.java上面預設都是初識化jsp的九個內建對象,而且這九個內建對象都是Servlet API,編譯成Servlet使用這九個對象操作客戶與伺服器之間的資訊傳遞,而JSP檔案中的所以在翻譯前也就是在編寫JSP檔案時就已經聲明了JSP中的這九個對象,進行了預設初識化,並且沒有展示。
九個內建對象
1、request:javax.servlet.http.HttpServletRequest的執行個體,代表了用戶端的請求資訊,主要用於接受通過Http協議傳送到伺服器的資料。(包括頭資訊,系統資訊,請求方式以及請求參數),擷取用戶端請求參數必須使用該對象。
常用的方法
傳回值 |
方法 |
說明 |
String |
getParameter(String name) |
返回請求中的參數值 |
String[] |
getParameterValues(String name) |
返回請求參數中集合屬性的值 |
Void |
setAttribute(String key , Object value) |
設定屬性的值 |
Object |
getAttribute(String name) |
返回指定屬性的屬性值 |
String |
getCharacterEncoding() |
返回字元編碼方式 |
String |
getContentType() |
返回請求頁面的MIME類型 |
2、response:javax.serlvet.http.HttpServletResponse的執行個體,代表格服務器對用戶端的響應,主要是將Servlet容器處理過的對象傳回給用戶端。通常很少使用該對象直接響應,而是使用out對象。一般response對象常用於重新導向。
常用的方法
傳回值 |
方法 |
說明 |
String |
getCharacterEncoding() |
返迴響應應用哪種字元編碼 |
Void |
setContentType(String name) |
設定響應的MIME類型 |
Void |
addCookies(Cookie cookie) |
向用戶端儲存Cookies |
Void |
sendRedirect(String URL) |
頁面重新導向 |
ServletOutputStream |
getOutputStream() |
返迴響應的一個二進位輸出資料流 |
3、Out:javax.serlvet.jsp.JspWriter的執行個體,代表JSP頁面的輸出資料流,用於輸出內容,形成HTML頁面。
4、Session:javax.serlvet.http.HttpSession的執行個體,該對象代表一次會話,是由伺服器自動建立的與使用者請求相關的對象。伺服器為每個使用者都產生一個session對象,用於儲存該使用者的資訊,跟蹤使用者的操作狀態。session對象內部使用Map類來儲存資料,因此儲存資料的格式為 “Key/value”。 session對象的value可以使複雜的物件類型,而不僅僅局限於字串類型。
常用方法:
傳回值 |
方法 |
說明 |
Void |
setAttribute(String key , Object value) |
設定屬性的值 |
Object |
getAttribute(String name) |
返回指定屬性的屬性值 |
5、application:javax.servlet.ServletContext的執行個體,該執行個體代表JSP所屬的web應用本事,可用於JSP頁面,或者在Servlet之間交換資訊。application 對象可將資訊儲存在伺服器中,直到伺服器關閉,否則application對象中儲存的資訊會在整個應用中都有效。與session對象相比,application對象生命週期更長,類似於系統的“全域變數”。
常用方法:
傳回值 |
方法 |
說明 |
Void |
setAttribute(String key , Object value) |
設定屬性的值 |
Object |
getAttribute(String name) |
返回指定屬性的屬性值 |
RequestDispatcher |
getRequestDispatcher(String uripath) |
返回指定資源的RequestDispatcher對象 |
String |
getInitParameter(String paramName) |
用來調用初始化在web.xml中存放的參量 |
ServletContext |
getContext(String uripath) |
返回指定WebApplication的application對象 |
6、pageContext:javax.servlet.jsp.PageContext的執行個體。代表該JSP頁面上下文,使用該對象可以訪問頁面中的共用資料,也就是取得任何範圍的參數,通過它可以擷取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的建立和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象
常用方法:
傳回值 |
方法 |
說明 |
ServletConfig |
getServletConfig() |
返回當前頁的ServletConfig對象(config) |
ServletContext |
getServletContext() |
返回當前頁的ServletContext對象(application) |
7、config:javax.servlet.ServletConfig的執行個體,對象的主要作用是取得伺服器的配置資訊。通過 pageConext對象的 getServletConfig() 方法可以擷取一個config對象。當一個Servlet 初始化時,容器把某些資訊通過 config對象傳遞給這個 Servlet。開發人員可以在web.xml 檔案中為應用程式環境中的Servlet程式和JSP頁面提供初始化參數。
8、exception:java.lang.Throwable的執行個體,代表其他頁面中的異常和錯誤,只有當頁面是錯誤處理頁面,即編譯指令page的isErrorPage屬性為true時,對象才能使用。
常用方法:
傳回值 |
方法 |
說明 |
String |
getMessage() |
返回描述異常的訊息 |
Void |
printStackTrace() |
顯示異常及其棧軌跡 |
9、page:代表頁面本身,也就是Servlet中的this,其類型是產生Servlet類,能用page的地方就可以用this。
【總結】
上述就是JSP的九個內建對象,從自己的項目來說經常用到,區分每個對象的作用,對每個對象的方法做的一定的認知,不足的地方慢慢查漏補缺!
給自己個信念,堅信在學習這件事上,付出和收穫一定成正比,為自己加油!
【Java基礎】——JSP九個內建對象