JSP爲簡化頁面的開發提供了一些內部對象。這些內部對象不需要由JSP的編寫者實例化,它們由容器(Tomcat context)實現和管理,在所有的JSP頁面中都能使用內部對象。所有的內部對象只有對腳本或表達式有用,但在JSP聲明中不可用。JSP裏有以下內部對象:
request
該對象是請求對象,每個request對象封裝這一次用戶請求,並且所有的請求參數都被封裝在request對象中。因此它是獲取請求參數的重要途徑。它被包裝成HttpRequest接口,通過getParamter()方法得到request對象的請求參數。
該對象是HttpServletRequest接口的實例。
其中比較重要的方法有:getAttribute、getParameter、getCookies、getParameterNames,getParameterValues,getSession、setAttribute、getAttributeNames、 getMethod、getQueryString等。
response
該對象被包裝成HttpServletResponse接口。它封裝了JSP產生的響應,然後被髮送到客戶端以響應客戶的請求。
- 其中比較重要的方法有:addCookie、setContentType、 sendRedirect(重定向)、flushBuffer、setHeader()
- 重定向:它會丟失所有的請求參數和request範圍的屬性,它將產生第二次請求,與前一次請求不在同一個request範圍。
pageContext
pageContext對象被封裝成javax.servlet.pageContext接口,它爲JSP頁面包裝頁面的上下文。管理對屬於JSP中特殊可見部分中以命名對象的訪問。使用它還可以訪問page,request,session,application範圍的變量。
其中比較重要的方法有:getAttribute(page範圍)、getRequest、getResponse、setAttribute、getServletContext、getSession。
out
對象是javax.jsp.JspWriter的一個實例,並提供了幾個方法使你能用於向瀏覽器回送輸出結果。
session
- session對象用來保存每個用戶的信息,以便跟蹤每個用戶的操作狀態。其中session信息保存在容器裏,
- 一般情況下,用戶首次登陸系統時容器會給此用戶分配一個唯一標識的session id,這個ID用於區分其他的用戶,當用戶退出系統時(瀏覽器時),這個session就會自動消失。
- session對應的是HttpSession接口。
其中比較重要的方法有:getAttribute、getAttributeNames、removeAttributes、setAttribute。
config
該對象被封裝成javax,servlet.ServletConfig接口,它表示Servlet的配置。當一個Servlet被初始化時,容器把某些信息通過此對象傳遞給這個Servlet。
page
該對象是java.lang.Object類的一個實例。它指的是JSP實現類的實例,也就是說,它是JSP本身,通過這個可以對它進行訪問。指Servlet的this對象
exception
該對象是java.lang.Throwable類的一個實例。它指的是運行時的異常,也就是被調用的錯誤頁面的結果,只有在錯誤頁面(在頁面指令裏有isErrorPage=true的頁面)纔可以使用該對象。
application
application對象爲多個應用程序保存信息,對於一個容器而言,每個用戶都共同使用一個application對象,這和session對象是不一樣的。服務器啓動後,就會自動創建application對象,這個對象會一直會保持直到服務器關閉爲止
其中比較重要的方法有:setAttribute、getAttribute、getInitParameter、getServletInfo()、getAttributeNames、等。