位置:首頁 > Java技術 > JSP教學 > JSP隱式對象

JSP隱式對象

JSP隱含對象是Java對象的JSP容器使提供給開發者在每一個頁麵中,開發者可以直接調用它們冇有被顯式聲明。 JSP隱含對象也被稱為預定義變量。

JSP的支持下麵列出了9個隱式對象:

對象 描述
request This is the HttpServletRequest object associated with the request.
response This is the HttpServletResponse object associated with the response to the client.
out This is the PrintWriter object used to send output to the client.
session This is the HttpSession object associated with the request.
application This is the ServletContext object associated with application context.
config This is the ServletConfig object associated with the page.
pageContext This encapsulates use of server-specific features like higher performance JspWriters.
page This is simply a synonym for this, and is used to call the methods defined by the translated servlet class.
Exception The Exception object allows the exception data to be accessed by designated JSP.

request 對象:

request 對象是javax.servlet.http.HttpServletRequest對象的一個實例。每次客戶端請求一個頁麵的JSP引擎創建一個新的對象來表示該請求。

request 對象提供的方法來獲得,包括表單數據的HTTP頭信息,餅乾,HTTP方法等。

我們將看到一整套與請求對象在未來的章節相關的方法: JSP客戶端請求.

response 對象:

response 對象是一個javax.servlet.http.HttpServletResponse對象的一個實例。正如服務器創建的請求對象,它還會創建一個對象來表示響應給客戶端。

response 對象還定義了處理創造新的HTTP標頭的接口。通過這個對象的JSP程序員可以添加新的Cookie或日期標記,HTTP狀態代碼等。

我們將看到一整套與響應對象在未來章節相關的方法: JSP服務器響應.

out 對象:

out 隱含的對象是javax.servlet.jsp.JspWriter對象的一個實例,用於在發送一個響應內容。

最初的JspWriter對象實例化不同,具體取決於該頁麵是否被緩衝與否。緩衝可以通過使用page指令buffered='false'屬性很容易被關閉。 

JspWriter對象包含大部分相同的方法作為java.io.PrintWriter中的類。然而,JspWriter有專門用來對付緩衝一些額外的方法。不同的是PrintWriter對象,JspWriter拋出IOExceptions。

以下是我們將用它來寫布爾字符,整數,雙精度的對象,字符串等的重要方法

方法 描述
out.print(dataType dt) Print a data type value
out.println(dataType dt) Print a data type value then terminate the line with new line character.
out.flush() Flush the stream.

session 對象:

session對象是javax.servlet.http.HttpSession的實例和行為完全同樣的方式,會話對象的行為下的Java servlet。

session 會話對象用於跟蹤客戶端請求之間的客戶端會話。我們將看到在未來的章節會話對象的完整的用法:JSP會話跟蹤.

application 對象:

應用對象是圍繞著ServletContext對象直接包裝器生成的Servlet和現實中的javax.servlet.ServletContext對象的實例。

這個對象是JSP頁麵在其整個生命周期中的表示。當JSP頁麵初始化時創建此對象,當JSP頁麵將被jspDestroy()方法刪除。

通過增加一個屬性的應用程序,您可以確保所有的JSP文件,使您的Web應用程序可以訪問它。

您可以查看一個簡單的用一章Application對象: JSP 點擊記數器

config 對象:

config 對象是javax.servlet.ServletConfig的實例化,並為周圍的ServletConfig對象的直接包裝器生成的servlet。

這個對象允許JSP程序員訪問Servlet或者JSP引擎的初始化參數,如路徑或文件位置等等。

下麵的配置方法是你可能永遠使用唯一的一個,它的用法很簡單:

 
config.getServletName();

這將返回servlet的名稱,它是包含在WEB-INF web.xml文件中<servlet-name>元素定義了字符串。

pageContext 對象:

pageContext對象是javax.servlet.jsp. PageContext 對象的一個實例。pageContext對象被用來代表整個JSP頁麵。

這個對象的目的是作為訪問有關的頁麵信息,同時避免大部分的實現細節的手段。

此對象存儲引用的請求和響應對象為每個請求。該應用程序,配置,會話和輸出對象是通過訪問這個對象的屬性派生的。

pageContext對象還包含有關發行JSP頁麵的指示,包括緩衝資料,errorPageURL和頁麵範圍的信息。

PageContext類定義了幾個領域,包括PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE和APPLICATION_SCOPE,其中確定的四個領域。它還支持超過40種方法,其中大約一半是從javax.servlet.jsp繼承JspContext類。

其中一個重要的方法就是removeAttribute,它接受一個或兩個參數。例如,pageContext.removeAttribute(“attrName”)將刪除所有作用域的屬性,而下麵的代碼隻從頁麵範圍中刪除:

 
pageContext.removeAttribute("attrName", PAGE_SCOPE);

您可以查看pageContext中的一個很好的使用在未來的章節: JSP文件上傳.

page 對象:

這個對象是一個實際的參考頁的實例。它可以被看作是一個對象,它代表了整個JSP頁麵。

頁麵對象確實是一個直接的代名詞了這個對象。

exception 對象:

異常對象是包含異常從以前的頁麵拋出一個包裝。它通常被用來產生到錯誤條件的適當響應。

我們將看到在未來的章節此對象的完整的用法:JSP異常處理.