JSP腳本中的9個內置對象

一、JSP腳本中包含9個內置對象,這9個內置對象都是 Servlet API 接口的實例,只是JSP 規範對它們進行了默認初始化(由JSP頁面對象Servlet的 _jspService() 方法來創建這些事例)。也就是說,它們已經是對象,可以直接使用。9個內置對象一次如下:

1、application: javax.servlet.ServletContext 的實例,該實例代表 JSP 所屬的Web 應用本身,可 用於JSP頁面,或者在Servlet 之間交換信息。常用的方法有 getAttribute(String attName)、setAttribute(String attName, String attValue) 和 getInitParameter(String paramName) 等。

2、config : javax.servlet.ServletConfig 的實例,該實例代表該Jsp 的配置信息。常用的方法有 getInitParameter(String paramName) 和getInitParameternames() 等方法。事實上,Jsp 頁面通常無需配置,也就不存在配置信息。因此,該對象更多地在Servlet 中有效。

3、exception : java.lang.Throwable 的實例,該實例代表其他頁面中的異常和錯誤。只有當頁面是錯誤處理頁面,即編譯指令 page  的 isErrorPage 屬性爲true時,該對象纔可以使用。通常的方法有 getMessage()  和 printStackTrance() 等。

4、out : javax.servlet.jsp.JspWriter 的實例,該實例代表 JSP 頁面的輸出流,用於輸出內容,形成 HTML 頁面。

5、page:代表該頁面本身,通常沒有太大用處。也就是 Servlet  中的 this,其類型就是生成的 Servlet 類,能用 page 的地方就可用 this。

6、pageContext : javax.servlet.jsp.PageContext 的實例,該對象代表該JSP 頁面上下文使用該對戲那個可以訪問頁面中的共享數據。常用的方法有 getServletContext() 和 getServletConfig() 等。

7、request: javax.servlet.http.HttpServletRequest 的實例,該對象封裝了一次請求,客戶端的請求都被封裝在該對象裏。這是一個常用的對象,獲取客戶端請求參數必須使用該對象。 常用的方法有: getParameter(String  paramName) 、 getParameterValues(String paramName) 、setAttribute(String  attrName, Object attrValue) 、getAttribute(String attrName) 和 setCharacterEncoding(String env) 等。

8、response : javax.servlet.http.HttpServletResponse 的實例,代表服務器對客戶端響應。通常很少使用該對象直接響應,而是使用out 對象,除非需要生成非字符相應。而 response 對象常用語重定向。常用的方法有 getOutputStream() 、sendRedirect(java.lang.String location )   等。

9、session : javax.servlet.http.HttpSession 的實例,該對象代表一次會話。當客戶端瀏覽器與站點建立連接時,會話開始: 當客戶端關閉瀏覽器時,會話結束。常用的方法有:getAttribute(String attrName) 、setAttribute(String attrName, Object attrValue) 等。

二、Web 應用裏的JSP 頁面、Servlet 等程序都將由Web服務器來調用,JSP、Servlet 之間通常不會相互調用,這就產生一個問題:JSP、Servlet之間如何交換數據?

爲了解決這個問題,幾乎所有WEB 服務器(包括 Java 、ASP、PHP、Ruby等)都會提供4個類似Map的結構,分別是application 、session、request、page,並允許JSP、Servlet 將數據放入這4個類似Map 的結構中,並允許從這4個Map 結構中取出數據。這4個Map 結構的區別是範圍不同。

1、application :對於整個Web 應用有效,一旦JSP、Servlet將數據放入application 中,該數據將可以被該應用下其他所有的Jsp 、 Servlet  訪問。

2、session : 僅對一次會話有效,一旦 JSP 、 Servlet 將數據放入到session 中,該數據將可以被 本次會話的其他所有的JSP 、 Servlet   訪問。

3、request : 僅對本次請求,一旦JSP 、Servlet 將數據放入request 中,該數據將可以被該次請求的其他JSP 、Servlet 訪問。

4、page: 僅對當前頁面有效:一旦JSP 、Servlet 將數據放入 page 中,該數據只可以被當前頁面的JSP腳本、聲明部分訪問。

JSP中的application 、session、request 和 pagecontext 4個內置對象分別用於操作 application 、session、request和page 範圍中的數據。

發佈了28 篇原創文章 · 獲贊 21 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章