- JSP從零開始學(視頻教學版)
- 劉鑫編著
- 619字
- 2021-03-12 12:32:01
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應用的運行時是一直存在于服務器中的,因此保存這種全局變量相對來說比較占用資源,因此不被推薦使用。在實際的開發中,一般都是讓對象存在于必要的時間中,否則當訪問量加劇時,會造成內存不足等情況。
推薦閱讀
- 深入理解Bootstrap
- Java 開發從入門到精通(第2版)
- Instant Apache Stanbol
- SQL Server 2012數據庫技術及應用(微課版·第5版)
- C++面向對象程序設計習題解答與上機指導(第三版)
- Building Android UIs with Custom Views
- Android Wear Projects
- Python+Tableau數據可視化之美
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理
- 實驗編程:PsychoPy從入門到精通
- Mastering Object:Oriented Python(Second Edition)
- Joomla!Search Engine Optimization
- 計算機程序的構造和解釋(JavaScript版)
- Learning Gerrit Code Review
- Hands-On GUI Application Development in Go