JSP運算式和scriptlets中的代碼,提供了8種自動定義的變數,有時稱做implicit objects(固有對象)。它們是:request,response,out,session,application,config,pageContext,和 page。下面我們來詳細的瞭解它們。
request
與request相聯絡的是HttpServletRequest類,使您可以得到request的參數(通過getParameter方法),request 的類型(GET,POST,HEAD,等等),和引入的HTTP頭(cookies,Referer,等等)。嚴格來說,request是類ServletRequest的一個子類而不是HttpServletRequest類的,事實上,如果request的協議不是HTTP,那麽它幾乎不會工作。
response
對用戶端的response與HttpServletResponse 相連。請注意,因為輸出資料流是放入緩衝的,所以可以設定HTTP狀態代碼和response頭,儘管在標準的servlets中不允許將之發送到用戶端。
out
這裡使用PrintWriter類來發送輸出到用戶端。然而,為了使response對象有效,可使用一個PrintWrite類的使用緩衝的版本JspWriter。使用session的屬性page directive,您可以自己定義緩衝的大小,甚至可以在使用了buffer屬性後關閉緩衝。也請注意,out僅用於scriptlets之中,因為JSP運算式自動的放入輸出資料流,所以極少需要明確的聲明out。
session
應用與request相聯絡的HttpSession類。因為session是自動建立的,即使沒有一個引入的session,這種變數仍可綁定。有一個例外是,如果您用page directive關閉session,再試圖使用session時將導致錯誤(在JSP頁面向servlet轉換時)。
application
使用ServeletContext類,通過使用getServletConfig().getContext()得到。
config
是一個ServletConfig類的對象。
pageContext
這是JSP中的一個新的類PageContext,用於精練特定伺服器的特點時使用,如提高JspWriters的執行效率。如果您通過這個類訪問而不是直接的,您的代碼將仍然運行在“規則”的JSP /servlet引擎 br>
page
在JAVA中不是很有用,它僅僅是用來儲存在指令碼的語言不是JAVA時的時間。