jsp隱式對象
JSP有九大內置隱式對象,通過這些對象簡化了對Servlet中HTTPServletRequest、HttpServletResponse、ServletConfig、HttpSession對象的訪問。下面表格給出了內置對象與Servlet中對象類型的對應關係。
對象 | 類型 | 描述 |
---|---|---|
request | java.servlet.http.HttpServletRequest | 該對象代表了客戶端的請求信息,主要用於接收通過HTTP協議傳送到服務器的數據(包括頭信息、系統信息、請求方式以及請求參數)。request的作用域爲一次請求。 |
response | javax.servlet.http.HttpServletResponse | 將JSP容器處理過的對象傳回到客戶端。response對象只在JSP頁面內有效。 |
out | javax.servlet.jsp.JspWriter | 對象用於在Web瀏覽器內輸出信息 |
session | javax.servlet.http.HttpSession | 對象是由服務器自動創建的與用戶請求相關的對象。用戶保存用戶信息,跟蹤用戶的操作狀態 |
application | javax.servlet.ServletContext | application 對象可將信息保存在服務器中,直到服務器關閉,否則application對象中保存的信息會在整個應用中都有效。與session相比,其生命週期更長。 |
config | javax.servlet.ServletConfig | 取得服務器的配置信息,通過pageContext.getServletConfig()可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中爲應用程序環境中的Servlet程序和JSP頁面提供初始化參數。 |
pageContext | javax.servlet.jsp.PageContext | pageContext對象可以取得任何範圍的參數,可以獲取得到jsp內的out、request、response、session、application等對象。pageContext的創建由容器完成,頁面可以直接使用。 |
page | javax.servlet.jsp.HttpJspPage | page 對象代表JSP本身,只有在JSP頁面內纔是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似於Java編程中的 this 指針。 |
exception | java.lang.Throwable | exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中纔可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 對象,並把 exception 對象傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 對象。 |
${requestScope.}使用
${requestScope.}獲取request設置的屬性值。那麼與<%= request.getParameter%>有什麼區別?
1、requestScope通常是將某個變量或者對象在servlet或者action中通過request.setAttribute()方法放入到request對象中,然後在頁面中使用requestScope來進行數據的顯示的,獲取方式如下:
${requestScope.xxx} //等價於<%=request.getAttribute("xxx")%>
注:${requestScope.}是拿不到2中表單提交的值,但可以通過${param.xxx}獲取表單提交的值。
2、request.getParameter則更多的用在servlet或者action中,它的作用是接收表單提交的數據,比兔你的jsp頁面中表單提交的數據
3、所以兩者的區別大概如下:requestScope更多的用於展示頁面,從request對象中取出對象或者變量來顯示,而request中的對象或者變量也是程序員通過手動的方式request.setAttribute方法來放入request對象中的;而request.getParameter則更多的應用於後臺的方法中,它的參數不是程序手動設置的,而是由接收表單中用戶輸入的值的,這些值存放在請求的request對象中。