JSP隱含對象
為簡化Web頁面的開發過程,JSP提供了一些由容器實現和管理的隱含對象,這些對象在JSP頁面中可以直接使用,不需要JSP頁面編寫者實例化。在JSP頁面中,可以通過存取這些隱含對象實現與JSP頁面和Servlet環境的相互訪問。
JSP頁面的隱含對象就是在JSP頁面中不用聲明就可以使用的對象。隱含對象是JSP引擎自動創建的Java類實例,它們能與Servlet環境交互。隱含對象可以實現很多功能,如從客戶端獲得數據、向客戶端發回數據、控制傳輸數據的有效域和異常處理等。下面舉例說明利用隱含對象做的事:
·不必使用表達式,可以直接存取out對象來打印一些東西到客戶端:
<% out.println("Hello"); %>
·不必直接傳送參數,可以借助請求對象來取得客戶端輸入的參數值:
<% String name=request.getParameter("name"); %>
·完成頁面的重定向:<% response.sendRedirect(“/hello.jsp”);%>
·在錯誤頁面中顯示出錯信息:<% String st=exception.getMessage();%>
JSP規范中定義了9種隱含對象,它們是request、response、session、out、application、pageContext、page、config和exception,這些對象在服務器端和客戶端交互過程中分別完成不同的功能,見表3-1。
表3-1 JSP中9個隱含對象
隱含對象
所屬的類
說明
request
javax.servlet.http.HttpServletRequest
客戶端的請求信息
response
javax.servlet.http.HttpServletResponse
網頁傳回客戶端的響應
session
javax.servlet.http.HttpSession
與請求有關的會話
out
javax.servlet.jsp.JSPWriter
向客戶端浏覽器輸出數據的數據流
application
javax.servlet.ServletContext
提供全局的數據,一旦創建就保持到服務器關閉
pageContext
javax.servlet.jsp.PageContext
JSP頁面的上下文,用於訪問頁面屬性
page
java.lang.Object
同Java中的this,即JSP頁面本身
config
javax.servlet.servletConfig
Servlet的配置對象
exception
java.lang.Throwable
針對錯誤網頁,捕捉一般網頁中未捕捉的異常
這些隱含對象的可分為4類:
1. 與輸入/輸出有關的對象: request、response、out
2. 與屬性作用域有關的對象:session、application、pageContext
3. 與Servlet 相關對象:page、config
4. 與錯誤處理有關的:exception
*