- 搞定J2EE核心技術與企業應用
- 常建功 王向華編著
- 1250字
- 2018-12-29 13:50:06
6.3 JSP的內置對象
在JSP中預先定義了一些常用的對象,在腳本語言中不用聲明就可以直接使用,這些對象包括request對象、response對象、pageContext對象、session對象、application對象、out對象、config對象和page對象。其實JSP中內置對象的方法都來自于Servlet中提供的各種方法,主要來自于javax.servlet、javax.servlet.http和javax.servlet.jsp。下面分別介紹一下前6個內置對象。
6.3.1 request對象
request對象的類型來自于javax.servlet.http.HttpServletRequest接口。當客戶端請求一個JSP網頁時,JSP引擎會將客戶端的請求信息包裝在這個request對象中,請求的信息包括請求的標頭信息、請求方式、參數值和客戶端主機名稱等。request對象的方法如表6.1所示。
表6.1 request對象的方法

在本書中主要使用以下3個方法:
● getParameter(String name),取得參數名稱為name的參數值,傳回值類型是String。
● getParameterNames(String name),取得所有的參數名稱,傳回值類型是java.util.Enumeration。
● getParameterValues(String name),如果名稱為name的參數包含一個以上的參數值,就可以利用該函數來取得所有的內容,傳回值類型是字符串數組String[]。
6.3.2 response對象
response對象的類型來自于javax.servlet.http.HttpServletResponse接口。response對象主要將JSP處理數據后的結果傳回到客戶端。JSP引擎會根據客戶端的請求建立一個預設的response回應對象,然后傳入service方法,用來給客戶端瀏覽器提供參考的信息,如回應標頭、內容和服務器狀態碼等。response對象的方法如表6.2所示。
表6.2 response對象的方法

6.3.3 pageContext對象
pageContext對象提供存取所有關于JSP程序執行時期間所需要用到屬性的方法,如session、application、config和out對象屬性。JSP引擎利用JSPFactory.getDefaultFactory()取得預設的JSPFactory對象,然后用這個JSPFactory對象的getPageContext()方法取得pageContext對象,可以在JSP所產生的Servlet Class中看到這樣的聲明:
JSPFactory _JSPxFactory=null; PageContext pageContext=null; _JSPxFactory=JSPFactory.getDefaultFactory(); pageContext=JSPxFactory.getPageContext(this, request, response, "",true,8192,true);
當使用getPageContext()取得pageContext對象時,會先用指定的參數內容來調用這個initialize()方法,然后才返回pageContext對象。pageContext對象的方法如表6.3所示。
表6.3 pageContext對象的方法

6.3.4 session對象
session對象的類型來自于javax.servlet.http.HttpSession接口,取得的方式是調用pageContext.getSession()方法,當客戶端請求超過一個以上的JSP程序網頁時,session對象提供保存請求時期所有對象屬性的方法,所保存的對象在請求的過程中都是有效的。session對象提供了3個方法來存取和移除保存對象,分別是setAttribute、getAttribute和removeAttribute。
setAttribute(java.lang.String name, java.lang.Object value),其中name是對象的名稱,value可以是任意類型的對象。如果要保存的是純量值(primitive),如int、char、float等,則必須分別用new Integer(intValue)、new Charater(character)和new Float(floatValue)先轉換成對象然后再傳入;如果對象名稱name已經存在于session中,那么原來的值會被新的對象取代,因為session內的對象名稱必須是唯一的。getAttribute(java.lang.String name)方法用來取得名為name的對象,它的回傳值是java.lang.Object,所以將它取出時,對它進行強制轉換類型。removeAttribute()方法用來移除session中名為name的對象。session對象的方法如表6.4所示。
表6.4 session對象的方法

6.3.5 application對象
application對象與session對象的作用類似,最大的不同之處在于作用域,Web服務器會為每個用戶創建一個session,但所有用戶會共享一個application,一旦創建了applicatin對象,這個對象將一直存在,直到服務器關閉。application對象經常被使用在存取環境的信息中,因為環境的信息通常都存儲在ServletContext中,所以常利用application對象來存取ServletContext中的信息。
application對象的類型來自于javax.servlet.ServletContext接口類,它取得的方式是調用pageContext.getServletContext()方法。application對象的方法如表6.5所示。
表6.5 application對象的方法

6.3.6 out對象
out對象的類型是一個繼承自抽象類javax.servlet.JSP.JSPWriter的類,它取得的方式是調用pageContext.getOut()方法。out對象能把結果輸出到網頁上。out主要用來控制管理輸出的緩沖區(buffer)和輸出流(output stream)。out對象的方法如表6.6所示。
表6.6 out對象的方法

- Dreamweaver CS3網頁設計與網站建設詳解
- Visual C# 2008開發技術實例詳解
- 機器自動化控制器原理與應用
- Mastering Elastic Stack
- 永磁同步電動機變頻調速系統及其控制(第2版)
- 工業機器人安裝與調試
- 單片機技術一學就會
- 計算機組網技術
- 精通LabVIEW程序設計
- INSTANT VMware vCloud Starter
- IBM? SmartCloud? Essentials
- Building Google Cloud Platform Solutions
- 手把手教你學Photoshop CS3
- 計算機硬件技術基礎學習指導與練習
- PostgreSQL High Performance Cookbook