1. 程式人生 > >JSP之 application config……八大內建物件

JSP之 application config……八大內建物件

JSP常用的內建物件作用和說明

一、 application

該物件代表 Web 應用本身,整個 Web 應用共享同一個 application 物件,該物件主要用於在多個 JSP 頁面或 Servlet 之間共享變數。application 通過 setAttribute 方法將一個值放入某個屬性,該屬性的值對整個 Web 應用有效,因此 Web 應用的每個 JSP 頁面或Servlet 都可以訪問該屬性,訪問屬性的方法為 getAttribute 。
application 還有一個重要用處:可用於載入 Web 應用的配置引數。在web.xml寫入一些屬性,類似於hibernate或者是struts裡的配置,可以隨時呼叫。

二、 config物件

config物件代表當前jsp配置資訊。但是一般不用,因為jsp一般用不著配置資訊,但是servlet用的情況較多。因為servlet需要配置在web.xml中,可以指定配置引數。

三、 exception物件

exception物件是Throwable的例項,代表jsp頁面產生的錯誤和異常,是jsp框架的一部分。在jsp頁面無需處理異常,即使該異常是checked異常。實際上jsp的異常都由錯誤頁面處理了。
比如: try {//程式碼處理} catch(Exception e){//異常處理}
普通的jsp頁面只執行第一個部分,程式碼處理段。而出錯的頁面負責第二個部分,異常處理段。在這裡能看到一個異常物件,該物件就是內建物件exception。
在 JSP 的異常處理體系中,一個出錯頁面可以處理多個 JSP 頁面的異常。指定的異常處理頁面通過 page 指令的 errorPage 屬性確定。

四、 out物件

out物件代表一個頁面的輸出流,常常用於在頁面上輸出變數和常量。一般在使用輸出表單時的地方都可以使用out物件達到輸出的效果。

五、 pageContext物件

這個物件代表頁面上下文。組要用於訪問頁面共享資料。使用pageContext可以直接訪問request,session,application範圍的屬性,看看這些jsp的頁面:
 JSP 頁面使用 pageContext 物件多次設定屬性,在設定屬性時,如果沒有指定屬性存在的範圍,則屬性預設在 page 範圍內;如果指定了屬性所在的範圍,則屬性可以被存放在application,session,request 等範圍中。

六、 request物件

request 物件是 JSP 中重要的物件,每個 request 物件封裝著一次使用者請求,並且所有的請求引數都被封裝在 request 物件中。因此 request 物件也是獲取客戶端請求引數的方法。
request 物件不僅封裝了表單域值,還可以封裝位址列傳遞的引數。因此使用者也可在request 物件中增加請求屬性。
Request物件主要用在以下幾種場合:

1、 封裝表單域值

使用 request 物件來獲取表單域的值,主要有以下兩個方法:
String getParamete(String paramName): 獲取表單域的值。
String getParameterValues(String paramName): 獲取表單域的陣列值。

2、 封裝位址列引數

 如果需要傳遞的引數是普通字串,而且在傳遞少量引數時,可以通過地 址欄傳遞引數。位址列傳遞引數的格式是:
urI?para ml=value1&m2=value2&…
 URL和引數之間用問號隔開,各個引數之間用“&”符號來隔開。

3、 封裝請求屬性

HttpServletRequest 還包含用於設定和獲取請求屬性的兩個方法:
void setAttribute(String attName , object attValue) 。
object getAttribute(String attName)。

七、 Response物件

response 代表伺服器對客戶端的響應。大部分的時候,程式無須使用 response 來響應客戶端請求,因為有個更簡單的響應物件——out,它是頁面輸出流,是 JstWriter 的例項。JspWriter 是 Writer 的子類, Writer 是字元流,不能輸出位元組。
假如需要在 JSP 頁面中動態生成一幅點陣圖,使用 out 作為響應將無法完成,此時必須使用 response 作為響應輸出。除此之外,還可以使用 response 來重定向請求,以及用於向客戶端增加 Cookie 。
以下是response的幾個作用:
1、 Response響應生成圖片
2、 重定向
重定向是 response 的另外一個用處,與 forward 不同的是,重定向會丟失所有的請求引數及請求屬性。
response.sendRedirect("XXXX.jsp"):
使用重定向指令時,位址列的地址會變成重定向的地址。
3、 增加cookie
Cookie 與 session 的不同之處在於: session 關閉瀏覽器後就失效,但是cookie會一直儲存在客戶機上除非它超過生命週期。

八、 Session物件

Session 物件也是一個非常常用的物件,這個物件代表一次使用者會話。一次使用者會話的含義是:從客戶端瀏覽器連線伺服器開始,到客戶端瀏覽器與伺服器斷開為止,這個過程就是一次會話。
Session 通常用於跟蹤使用者的會話資訊,如判斷使用者是否登入系統,或者在購物車應用中,系統是否跟蹤使用者購買的商品等。
Session 裡的屬性可以在多個頁面的跳轉之間共享。一旦關閉瀏覽器,即session 結束, session 裡的屬性將全部清空。
Session的兩個常用方法:
setAttribute(String name,Object value) 設定一個session屬性
getAttribute(String name) 獲取一個session值