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