jsp的九大內置對象及作用
內置對象名 類型
request HttpServletRequest
response HttpServletResponse
config ServletConfig
application ServletContext
session HttpSession
exception Throwable
page Object(this)
out JspWriter
pageContext PageContext
1、request對象
request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用於接受通過HTTP協議傳送到服務器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域為一次請求。
常用方法:
getParameter(String name)
返回指定參數名稱的數值。如果沒有相對應的數值則返回null
getParameterValues(String name)
返回具有相同參數名稱的數值的集合,返回String類型的數組
getRequestDispatcher(String uripath)
頁面的轉發,地址不會發生改變,因為針對客戶端來說只發生了一次請求
2、response對象
response 代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效。
Response對象叫響應,服務器端向客戶端的請求作出響應。
常用方法:
response.sendRedirect("index.jsp");
頁面的重定向,地址會發生改變,因為針對客戶端來說,一共發生了兩次請求
3、session對象
session 對象是由服務器自動創建的與用戶請求相關的對象。服務器為每個用戶都生成一個session對象,用於保存該用戶的信息,跟蹤用戶的操作狀態。session對象內部使用Map類來保存數據,因此保存數據的格式為 “Key/value”。 session對象的value可以使復雜的對象類型,而不僅僅局限於字符串類型。
3.1 session對象叫會話:每一個瀏覽器訪問網站,服務就會給這個請求創建一個會話。
存儲到服務器端,服務器根據每一個會話的ID來區分每一個請求的用戶。
3.2 常用方法:
3.3 Session過期時間的三種設置方式
a.在Tomcat服務器的web.xml文件中進行設置,Tomcat默認設置的時間是30分鐘
web.xml文件在tomcat的conf文件夾下,具體設置如下:(單位為分鐘)
<session-config>
<session-timeout>30</session-timeout>
</session-config>
b.在項目的web.xml 文件中進行設置
設置方法如a,優先順序b>a,也就是說b設置了,a就無效了。
c.在代碼中設置
通過setMaxInactiveInterval()的方法設置
3.4 session的銷毀
a.設置的時長到了以後自動銷毀,常見的情況就是你在一個頁面無操作一定時間後需要重新登錄。
b.調用invalidate()方法銷毀,常見的情況就是註銷登錄。
3.5 註意事項
Session中存儲的數據可以是任意類型。存儲位置在服務器端,安全性比較高。
在同一臺電腦中,不同的瀏覽器也認為是不同的用戶,也會分配一個SesionID。
Session 會隨著瀏覽器關閉也失效。但請註意,Session還會保留在服務端,一直要到設定的時間,才真正的銷毀。
4、application對象
application 對象可將信息保存在服務器中,直到服務器關閉,否則application對象中保存的信息會在整個應用中都有效。與session對象相比,application對象生命周期更長,類似於系統的“全局變量”。
整個應用程序只有一個,所有的用戶都可以訪問到,安全性較高。隨應用程序啟動就產生了,一直保存在服務器端,要到應用程序關閉,才銷毀。
通常用於存儲一些所有用戶都需要的數據。
簡單例子:
if (application.getAttribute("count") == null) {
application.setAttribute("count", 1);
} else {
int count = (Integer) application.getAttribute("count");
count++;
application.setAttribute("count", count);
}
out.print("訪問過本網站的人次為:" + application.getAttribute("count"));
5、out 對象,out對象類型是JspWriter類,相當於帶緩存的PrintWriter(不帶緩存)
out 對象用於在Web瀏覽器內輸出信息,並且管理應用服務器上的輸出緩沖區。在使用 out 對象輸出數據時,可以對數據緩沖區進行操作,及時清除緩沖區中的殘余數據,為其他的輸出讓出緩沖空間。待數據輸出完畢後,要及時關閉輸出流。
PrintWriter:write("內容") 直接向瀏覽器輸出內容
JspWriter:writer("內容") 向jsp緩沖區寫出內容
JspWriter當滿足以下條件時之一時,緩沖區的內容寫出:
a,緩沖區滿了
b,刷新緩沖區
c,關閉緩沖區
d,jsp頁面執行完畢
6、pageContext 對象
pageContext 對象的作用是取得任何範圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。
使用場景:在自定義標簽時會頻繁使用到PageContext對象;或者是定義一個方法需要用到多個對象時,傳一個pageContext對象就能解決問題.
page域: 只能在當前jsp頁面使用 (當前頁面)
request域: 只能在同一個請求中使用 (轉發)
session域: 只能在同一個會話(session對象)中使用 (私有的)
context域: 只能在同一個web應用中使用 (全局的)
7、config 對象
config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。
8、page 對象
page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似於Java編程中的 this 指針。
9、exception 對象
exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 對象,並把 exception 對象傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 對象。
page域: 只能在當前jsp頁面使用 (當前頁面)
request域: 只能在同一個請求中使用 (轉發)
session域: 只能在同一個會話(session對象)中使用 (私有的)
context域: 只能在同一個web應用中使用 (全局的)
jsp的九大內置對象及作用