1. 程式人生 > >JSP資料互動(二)----application

JSP資料互動(二)----application

一 . application內建物件

答 : application物件類似於系統的"全域性變數" , 用於同一個應用內的所有使用者之間的資料共享 , application物件的生命週期是貫穿伺服器的執行週期 ;

二 . application的常用方法

答 : 1 . void setAttribute(String key , Object value) : 以key/value的形式將物件儲存到application中 , 此處如果儲存常用資料型別的話 , 需要儲存封裝型別的資料物件 , 用法如下 ; 

            示例 :

<%

    Integer count = (Integer) application.getAttribute("count");

    if(count!=null){

    count+=1;

    }else{

    count=1;

    }

    application.setAttribute("count", count);

%>

      2 . Object getAttribute(String key) : 通過key獲取application中儲存的物件 , 使用方法如下 ; 

           示例 :

<%

    String username=(String)application. getAttribute (“username”);

    out.println(username);

%>

      3 . String getRealPath(String path) : 返回相對路徑的真實路徑 ;

      4 . Enumeration getAttributeNames() : 該方法返回所有與當前application物件繫結在一起的引數或者java物件的名字 , 這個物件的返回值是一個列舉物件 , 使用方法如下 :

           示例 :

<%

     Enumeration enum1=application.getAttributeNames();

     while(enum1.hasMoreElements()){

          String attrName=(String)enum1.nextElement();

          out.println(attrName+”<br>”);

      }

%>

      5 . getServerInfo() : 該方法可以獲得當前伺服器的詳細資訊,不同的伺服器返回的資訊格式不一樣 ;

     6 . removeAttribute(String name) : 此方法可以刪除已經儲存的key/value鍵值對 , 刪除之後則不能再用getAttribute()方法來獲取值 , 否則返回null值 ;

      7 .  log(String msg) : 該方法用於往伺服器的log檔案中寫入資訊,利用這個方法,我們可以在log檔案中記錄訪問者的資訊,這對於統計訪問流量來源方面十分有用,同時也便於管理員監控網站的執行情況。其實,還有一個同名但使用不同引數的log()方法,利用後者,我們可以將JSP程式執行過程中所發生的錯誤事件都記入log檔案中 ; 

三 . application的用法以及注意事項

答 : 1 . 登入控制頁面中增加如下程式碼 : 

<%

    Integer count = (Integer) application.getAttribute("count");

    if(count!=null){

    count+=1;

    }else{

    count=1;

    }

    application.setAttribute("count", count);

%>

      2 . 在顯示統計資料中增加如下程式碼 :

<body>

<%

Integer i = (Integer) application.getAttribute("count");

%>

訪問量統計 : 目前共有<%=i %>個人訪問過本網站

<a href="invalidateSession.jsp">登出登陸</a>

</body>

      3 . invalidateSession.jsp是會話失效頁面 , 在此頁面中該會話失效並返回登入頁面 :

<body>

<%

    session.invalidate();

    response.sendRedirect("login.jsp");

%>

</body>

注意事項 : 

      伺服器啟動後產生了這個application物件,當客戶在訪問的網站的各個頁面之間瀏覽時,這個物件都是同一個,直到伺服器關閉 , 如果是上面的例子 , tomcat伺服器停止後 , 計數將會清零 ;

四 . 獲得application物件的方式

答 : 1 . 在JSP程式中直接使用application代表application物件 , 比如我們上面的例子中的用法 ;

      2 . 使用ServletConfig介面

           ⑴ . 使用ServletConfig介面可以間接獲取application物件,但是這個application物件的名字不能同樣為        application,因為application是JSP引擎建立的預設的application物件的副本,不能夠被覆蓋 ; 

           ⑵ . 使用ServletConfig介面其實就是使用config物件,config物件是實現ServletConfig介面的類的例項        物件,它可以通過呼叫getServletContext()方法返回一個ServletContext介面的物件,也就是application          物件的一個副本

           示例:

           <%
ServletContext app = config.getServletContext();
        out.println(app.getServerInfo());
    %>

      3 . pageContext物件的getServletContext()方法同樣可以返回一個application物件的副本 ;

           示例 :

<%

     ServletContext app= pageContext. getServletContext();

     out.println(app.getServerInfo());

%>

五 . JSP常用內建物件的總結

答 : 1 . out : 用與向客戶端輸出訊息 ; 

      2 . request : 主要用於處理客戶端請求的資料資訊 ; 

      3 . response : 用於響應客戶端請求並向客戶端輸出資訊 ;

      4 . session : 用於記錄會話狀態的相關資訊 ; 

      5 . application : 類似於系統的全域性變數 , 用於實現web應用中的資源共享 ;

      6 . pageContext : 提供了JSP在執行時訪問和其相關的環境資訊的能力 , 通過該物件可以訪問和當前JSP頁面相關聯的所有作用域 , 以及一些頁面屬性 , 常用方法如下 :

           ⑴ . ServletRequest getRequest() : 獲得reuqest物件 ;

           ⑵ . ServletContext getServletContext() : 獲得application物件的一個副本 ; 

           ⑶ . ServletResponse getResponse() : 獲得response物件 ;

           ⑷ . HttpSession getSession() : 獲得session物件 ; 

           ⑸ . JspWriter getOut() : 獲得out物件 ;

           ⑹ . void setAttribute() : 儲存屬性 ;

           ⑺ . Object getAttribute() : 獲得屬性 ; 

           ⑻ . void include() : 請求指定的資源 , 並將目標資源的響應結果包含在呼叫頁面的相應中 ;

      page : 表示當前頁面 , 類似於java中的this , 在JSP頁面中 , 很少使用page物件 ;

      config : 用於存放JSP編譯後的初始資料 , 與page物件一樣 , 在JSP頁面中很少使用 ;

     exception : 表示JSP頁面執行時產生的異常和錯誤資訊 , 該物件只有在錯誤頁面(page指令中設定isErrorPage為true的頁面)中才能夠使用 ;