1. 程式人生 > >JSP學習筆記五之application和page物件

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()重寫異常的執行棧軌跡