簡化JSP表達(dá)式中代碼
JSP表達(dá)式中”預(yù)定義變量”的使用
為了簡化JSP表達(dá)式和scriptlets中的代碼,提供了8種自動定義的變量,有時稱做implicit objects(固有對象)。它們是:request,response,out,session,application,config,pageContext,和 page。下面我們來詳細(xì)的了解它們。
request
與request相聯(lián)系的是HttpServletRequest類,使您可以得到request的參數(shù)(通過getParameter方法),request 的類型(GET,POST,HEAD,等等),和引入的HTTP頭(cookies,Referer,等等)。嚴(yán)格來說,request是類 ServletRequest的一個子類而不是HttpServletRequest類的,事實(shí)上,如果request的協(xié)議不是HTTP,那麼它幾乎不會工作。
response
對客戶端的response與HttpServletResponse 相連。請注意,因?yàn)檩敵隽魇欠湃刖彌_的,所以可以設(shè)置HTTP狀態(tài)碼和response頭,盡管在標(biāo)準(zhǔn)的servlets中不允許將之發(fā)送到客戶端。
out
這里使用PrintWriter類來發(fā)送輸出到客戶端。然而,為了使response對象有效,可使用一個PrintWrite類的使用緩沖的版本JspWriter。使用session的屬性page directive,您可以自己定義緩沖的大小,甚至可以在使用了buffer屬性后關(guān)閉緩沖。也請注意,out僅用于scriptlets之中,因?yàn)镴SP表達(dá)式自動的放入輸出流,所以極少需要明確的聲明out。
session
應(yīng)用與request相聯(lián)系的HttpSession類。因?yàn)閟ession是自動創(chuàng)建的,即使沒有一個引入的session,這種變量仍可綁定。有一個例外是,如果您用page directive關(guān)閉session,再試圖使用session時將導(dǎo)致錯誤(在JSP頁面向servlet轉(zhuǎn)換時)。
application
使用ServeletContext類,通過使用getServletConfig().getContext()得到。
config
是一個ServletConfig類的對象。
pageContext
這是JSP中的一個新的類PageContext,用于精練特定服務(wù)器的特點(diǎn)時使用,如提高JspWriters的執(zhí)行效率。如果您通過這個類訪問而不是直接的,您的代碼將仍然運(yùn)行在“規(guī)則”的JSP /servlet引擎。
page
在JAVA JSP表達(dá)式中不是很有用,它僅僅是用來保存在腳本的語言不是JAVA時的時間。HTML,scripting elements,directives,和 actions。
【編輯推薦】