1. 程式人生 > >jsp的九大內置對象及作用

jsp的九大內置對象及作用

般的 error obj 參數 創建 保存 系統信息 只有一個 常用

內置對象名 類型

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的九大內置對象及作用