【JSP進階】JSP九大內建物件,這你也不知道?
前言
之前我們已經學習了JSP的基礎了,今天我們繼續來學習JSP九大內建物件,這也是JSP的重點部分,同時也是面試的重點,大家在看完之後一定要自己動手練習。同時JSP基礎不知道的可以去看往期內容在回來繼續。
傳送門:【JSP入門】只知道HTML卻不知道JSP?
接下來正式來學習JSP九大內建物件吧!
目錄
前言
初識內建物件
深析九大內建物件
JSP案例演示
獲取其他內建物件
結語
初識內建物件
所謂內建物件就是在JSP中無需建立就可以直接使用的九個物件
這九大內建物件分別是:
(1)out(JspWriter):等同與response.getWriter(),用來向客戶端傳送文字資料;
(2)config(ServletConfig):對應“真身”中的ServletConfig;
(3)page(當前JSP的真身型別):當前JSP頁面的“this”,即當前物件;
(4)pageContext(PageContext):頁面上下文物件,它是最後一個沒講的域物件;
(5)exception(Throwable):只有在錯誤頁面中可以使用這個物件;
(6)request(HttpServletRequest):即HttpServletRequest類的物件;
(7)response(HttpServletResponse):即HttpServletResponse類的物件;
(8)application(ServletContext):即ServletContext類的物件;
(9)session(HttpSession):即HttpSession類的物件,不是每個JSP頁面中都可以使用,如果在某個JSP頁面中設定<%@pagesession=”false”%>,說明這個頁面不能使用session。
雖然內建物件是重點,但是不是所有的內建物件都很常用。
基本不會使用的內建物件:config、page、exception。
有兩個物件不是每個JSP頁面都可以使用的:exception、session。
深析九大內建物件
1、request物件
request 物件是 javax.servlet.httpServletRequest型別的物件。 該物件代表了客戶端的請求資訊,主要用於接受通過HTTP協議傳送到伺服器的資料。(包括頭資訊、系統資訊、請求方式以及請求引數等)。request物件的作用域為一次請求。
2、response物件
response 代表的是對客戶端的響應,主要是將JSP容器處理過的物件傳回到客戶端。response物件也具有作用域,它只在JSP頁面內有效。
3、session物件
session 物件是由伺服器自動建立的與使用者請求相關的物件。伺服器為每個使用者都生成一個session物件,用於儲存該使用者的資訊,跟蹤使用者的操作狀態。session物件內部使用Map類來儲存資料,因此儲存資料的格式為 "Key/value"。 session物件的value可以使複雜的物件型別,而不僅僅侷限於字串型別。
4、application物件
application 物件可將資訊儲存在伺服器中,直到伺服器關閉,否則application物件中儲存的資訊會在整個應用中都有效。與session物件相比,application物件生命週期更長,類似於系統的“全域性變數”。
5、out 物件
out 物件用於在Web瀏覽器內輸出資訊,並且管理應用伺服器上的輸出緩衝區。在使用 out 物件輸出資料時,可以對資料緩衝區進行操作,及時清除緩衝區中的殘餘資料,為其他的輸出讓出緩衝空間。待資料輸出完畢後,要及時關閉輸出流。
6、pageContext 物件
pageContext 物件的作用是取得任何範圍的引數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等物件。pageContext物件的建立和初始化都是由容器來完成的,在JSP頁面中可以直接使用pageContext物件。
7、config 物件
config 物件的主要作用是取得伺服器的配置資訊。通過 pageConext物件的 getServletConfig() 方法可以獲取一個config物件。當一個Servlet 初始化時,容器把某些資訊通過 config物件傳遞給這個 Servlet。 開發者可以在web.xml 檔案中為應用程式環境中的Servlet程式和JSP頁面提供初始化引數。
8、page 物件
page 物件代表JSP本身,只有在JSP頁面內才是合法的。 page隱含物件本質上包含當前 Servlet介面引用的變數,類似於Java程式設計中的 this 指標。
9、exception 物件
exception 物件的作用是顯示異常資訊,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該物件將無法編譯JSP檔案。excepation物件和Java的所有物件一樣,都具有系統提供的繼承結構。exception 物件幾乎定義了所有異常情況。
在Java程式中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 物件,並把 exception 物件傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 物件。
JSP九大內建物件分為四類:
(1)輸入輸出物件:out物件、response物件、request物件
(2)通訊控制物件:pageContext物件、session物件、application物件
(3)Servlet物件: page物件、config物件
(4)錯誤處理物件:exception物件
JSP案例演示
老規矩我們寫一個簡單的JSP來演示一下常用的內建物件的用法。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
String url = request.getRequestURL().toString();//HttpServletRequest物件
response.getWriter().println(url);//HttpServletResponse物件
%>
<%
out.println("<br>ABCCC");//等同於response.getWriter()
session.setAttribute("user", "張三");//HttpSession類的物件
out.println((String)session.getAttribute("user"));
%>
<%
String cp = application.getInitParameter("copyright");//ServletContext
out.println("<hr/>");
out.println(cp);
%>
<%
//通過使用pageContext獲取其他物件
pageContext.getRequest();
pageContext.getResponse();
pageContext.getSession();
pageContext.getServletContext();
%>
</body>
</html>
根據輸出的頁面鑽研一下對應關係。
JSP四大域:
Servlet中有三大域,而JSP中有四大域:
ServletContext:整個應用程式。
session:整個會話(一個會話中只有一個使用者)。
request:一個請求鏈。
pageContext:一個jsp頁面,這個域是在當前jsp頁面和當前jsp頁面中使用的標籤之間共享資料。
其有效期分別為:
(1)application(ServletContext):在整個伺服器上儲存,所有使用者都可使用。 重啟伺服器後無效。
(2)session:再一次會話中有效。伺服器跳轉、客戶端跳轉都有效。 網頁關閉重新開啟無效。
(3)request:只在一次請求中有效,伺服器跳轉之後有效。 客戶端跳無效。
(4)page(pageContext):只在一個頁面中儲存屬性。 跳轉之後無效。
獲取其他內建物件
一個pageContext物件等於所有內建物件,即1個當9個。這是因為可以使用pageContext物件獲取其它8個內建物件:
(1)JspWriter getOut():獲取out內建物件;
(2)ServletConfig getServletConfig():獲取config內建物件;
(3) Object getPage():獲取page內建物件;
(4)ServletRequest getRequest():獲取request內建物件;
(5)ServletResponse getResponse():獲取response內建物件;
(6) HttpSession getSession():獲取session內建物件;
(7)ServletContext getServletContext():獲取application內建物件;
(8)Exception getException():獲取exception內建物件;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014874/viewspace-2868528/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JSP 內建物件(一)JS物件
- JSP九大內建物件JS物件
- jsp進階教程和ServletJSServlet
- JSP九大內建物件 sessionJS物件Session
- 實驗三 JSP內建物件使用JS物件
- JSP九大內建物件解析、JSP指令(page、include)、靜態聯編概述JS物件
- JSP九大內建物件 out request responseJS物件
- jsp隱式物件-Servlet物件JS物件Servlet
- EL 表示式對照 JSP 內建物件表JS物件
- Servlet與JSP進階五:瀏覽器CookieServletJS瀏覽器Cookie
- JSP中無法使用內建物件解決方法JS物件
- JSP簡介以及各種內建物件的用法JS物件
- 只知道HTML卻不知道JSP?HTMLJS
- JSP(JSTL EL表示式 三個指令 六個動作標籤 九個JSP內建物件)JS物件
- JSP筆記-隱式物件JS筆記物件
- jsp標籤jsp:useBean用法JSBean
- jsp基礎-初識jspJS
- 關於EL在JSP內呼叫RequestScope內建物件報錯的問題JS物件
- JSPJS
- 詳談JSP執行原理、生命週期、語法、指令、動作標籤、九大內建物件(JSP 全家桶)JS物件
- 2020 12 06 JSP九大內建物件和四個作用域JS物件
- JavaEE學習之走進JSPJavaJS
- JSP原理JS
- ajax從JSP傳遞物件陣列到後臺JS物件陣列
- JSP入門JS
- index.jspIndexJS
- JSP三(JSTL)JS
- JSP 結構JS
- jsp forward 指令JSForward
- JavaWeb之JSPJavaWebJS
- 你瞭解jsp中的c:forEach嗎?JS
- 人事管理系統為你解剖JSPJS
- JSP九大內建物件、四大作用域以及session的生命週期JS物件Session
- Jsp+JavaBean模式,Jsp+Servlet模式,MVC模式介紹JSJavaBean模式ServletMVC
- JSP_入門JS
- JSP&&EL&&JSTLJS
- 第一個JSPJS
- JSP基本語法JS