官术网_书友最值得收藏!

4.4 application對象

application對象實現接口javax.servlet.ServletContext。它的生命周期是從application對象創建到應用服務器關閉,也就是說當服務器關閉application對象才消失??梢詫⑺暈閃eb應用的全局變量,當服務器運行時有效,如果關閉服務器,其中保存的信息也都消失了。

4.4.1 application對象的常用方法

application對象的常用方法參見表4.5。

表4.5 application對象的常用方法

4.4.2 獲取指定頁面的路徑

【例4.9】獲取指定頁的實際路徑、相對路徑和當前應用程序路徑

application.jsp是指定頁輸出其所在的實際路徑和相對路徑,其源代碼如下:

      -----------------application.jsp----------------
      01   <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      02   <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      03   <html>
      04    <head>
      05      <title>My JSP 'application.jsp' starting page</title>
      06    </head>
      07    <body>
      08       <h3>指定頁的實際路徑、相對路徑和當前應用程序路徑</h3>
      09        <hr/>
      10        <table border="1" bordercolor="black">
      11           <tr>
      12              <td>當前服務器的名稱和版本</td>
      13               <td><%=application.getServerInfo() %></td>
      14           </tr>
      15           <tr>
      16              <td>頁面application.jsp的實際路徑</td>
      17               <td><%=application.getRealPath("application.jsp") %></td>
      18           </tr>
      19           <tr>
      20              <td>頁面application.jsp的URL</td>
      21               <td><%=application.getResource("application.jsp") %></td>
      22           </tr>
      23           <tr>
      24              <td>當前Web程序的路徑</td>
      25               <td><%=application.getContextPath() %></td>
      26           </tr>
      27        </table>
      28    </body>
      29   </html>

上述代碼中,第11~25行分別輸出application中指定頁的實際路徑、相對路徑和當前應用程序路徑等信息。頁面效果如圖4.18所示。

圖4.18 application.jsp運行結果

4.4.3 設計一個網站計數器

application對象還可以保存訪問網站的人數,也就是常說的網站計數器,下面通過一個例子來演示。

【例4.10】網站計數器

applicationCount.jsp是網站計數器頁面,其源代碼如下:

      ----------------- applicationCount.jsp----------------
      01   <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      02   <%
      03      Integer count =(Integer) application.getAttribute("count");
      04      if(count==null){
      05       count=1;
      06      }else{
      07          count++;
      08      }
      09      application.setAttribute("count", count);
      10   %>
      11
      12   <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      13   <html>
      14    <head>
      15      <title>網站計數器</title>
      16    </head>
      17    <body>
      18       歡迎訪問本網站,您是第<%=count %>位訪問客戶!
      19    </body>
      20   </html>

【代碼解析】

第02~09行代碼從頁面中獲得計數值,如果為空則設定初始值為1,如果有則加1。程序運行結果如圖4.19所示。

圖4.19 網站計數器

提示

application對象在Web應用的運行時是一直存在于服務器中的,因此保存這種全局變量相對來說比較占用資源,因此不被推薦使用。在實際的開發中,一般都是讓對象存在于必要的時間中,否則當訪問量加劇時,會造成內存不足等情況。

主站蜘蛛池模板: 洱源县| 衢州市| 连江县| 孟州市| 青冈县| 温州市| 新巴尔虎左旗| 衡山县| 黔西| 谷城县| 邹平县| 河间市| 涞源县| 芮城县| 项城市| 湖口县| 新邵县| 海城市| 营山县| 沁水县| 吉安县| 平昌县| 平遥县| 元氏县| 濮阳县| 绵阳市| 砀山县| 五家渠市| 安溪县| 阳朔县| 剑阁县| 马鞍山市| 邢台县| 武宣县| 北宁市| 新宁县| 息烽县| 财经| 庆阳市| 哈尔滨市| 元阳县|