JSP學習筆記五之application和page物件
這篇部落格將9大物件的剩下的物件部分全部講掉。
E、Application內建物件
Application物件直接包裝了servlet的ServletContext類的物件,是javax.servlet.ServletContext 類的例項。這個物件在JSP頁面的整個生命週期中都代表著這個JSP頁面。這個物件在JSP頁面初始化時被建立,隨著jspDestroy()方法的呼叫而被移除。通過向Application中新增屬性,則所有組成web應用的JSP檔案都能訪問到這些屬性。
JSP內建物件Application:
1、Application物件實現了使用者間資料的共享,可存放全域性變數;
2、Application開始於伺服器的啟動,終止於伺服器的關閉;
3、在使用者的前後連線或不同使用者之間的連線中,可以對Application物件的同一屬性進行操作;
4、在任何地方對Application物件屬性的操作,都將影響其他使用者對此的訪問;
5、Application物件是ServletContext類的例項;
JSP內建物件Application常用方法:
(1)public void setAttribute(String name, Object value) 使用指定名稱將物件繫結到此會話(為此會話新增application物件屬性)
(2)public Object getAttribute(String name) 返回此次會話中指定名稱的物件。如果沒有物件繫結在該名稱,則返回null
(3)Enumeration getAttributeNames() 返回所有可用屬性名的列舉
(4)String getServerInfo() 返回JSP(SERVLET)引擎名及版本號
程式碼演示:
<body>
<h1>application內建物件</h1>
<%
application.setAttribute("city", "北京");
application.setAttribute("postcode", "10000");
application.setAttribute("email", " [email protected]");
%>
所在城市是:<%=application.getAttribute("city") %><br>
application中的屬性有:<%
Enumeration attributes = application.getAttributeNames();
while(attributes.hasMoreElements())
{
out.println(attributes.nextElement()+" ");
}
%><br>
JSP(SERVLET)引擎名及版本號:<%=application.getServerInfo() %><br>
</body>
結果顯示:
session ID資訊如下:
F、page物件
這個物件就是頁面例項的引用。它可以被看做是整個JSP頁面的代表。
JSP內建物件-page:
(1)JSP物件是java.lang.Object類的例項。
(2)page物件指向當前JSP頁面本身,有點類似this指標。
程式碼演示:
<body>
<h1>page內建物件</h1>
當前page頁面物件的字串描述:<%=page.toString() %><br>
</body>
結果顯示
--------------後面幾個物件由於用的不多,這裡我就總結了物件的方法,沒有用例項去演示了。--------------------
G、pageContext物件
pageContext物件是javax.servlet.jsp.PageContext 類的例項,用來代表整個JSP頁面。
這個物件主要用來訪問頁面資訊,同時過濾掉大部分實現細節。
這個物件儲存了request物件和response物件的引用。application物件,config物件,session物件,out物件可以通過訪問這個物件的屬性來匯出。
常用方法:
JspWriter getOut(); //返回當前客戶端響應被使用的JspWriter流(out)
HttpSession getSession(); //返回當前頁面中HttpSession物件(session)
Object getPage(); //返回當前頁面的Object物件(Object)
ServeletRequest getRequest(); //返回當前頁面的ServletRequest物件(request)
ServeletResponse getResponse(); //返回當前頁面的ServletResponse物件(response)
void setAttribute(String name,Object attribute); //設定屬性及屬性值
void getAttribute(String name,int scope); //在指定範圍內取屬性的值
int getAttributeScope(String name); //返回某屬性的作用範圍
void forward(String relativeUrlPath); //使當前頁面重導到另一頁面
void include(String relativeUrlPath); //在當前位置包含另一檔案
H、Config物件
config物件是一個Servlet超初始化是,Jsp引擎向他傳遞資訊用的,Servlet初始化是所要用到的引數
(通常屬性名和屬性構成)以及伺服器有關的資訊(通常傳遞一個ServletContext物件),常用方法如下
ServletContext getServletContext()返回一個含有伺服器有關Servlet有關資訊的ServletContext物件
String getInitParameter(String name)返回初始化引數的值
Enumeration getInitParameterNames()返回Servlet初始化所需要引數的列舉
I、內建物件exception
產生異常的頁面page語句加上errorPage="指向的異常處理頁面";
處理異常的頁面page語句加上isErrorPage="true"來接收異常;
常用方法:
(1)String getMessage()返回異常訊息;
(2)String toString()返回異常的字串描述;
(3)void printStackTrace()顯示異常及其棧軌跡
(4)Throwable FillinStackTrace()重寫異常的執行棧軌跡