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異常處理.