JSP从零开始学(视频教学版)
上QQ阅读APP看书,第一时间看更新

4.4 application对象

application对象实现接口javax.servlet.ServletContext。它的生命周期是从application对象创建到应用服务器关闭,也就是说当服务器关闭application对象才消失。可以将它视为Web应用的全局变量,当服务器运行时有效,如果关闭服务器,其中保存的信息也都消失了。

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应用的运行时是一直存在于服务器中的,因此保存这种全局变量相对来说比较占用资源,因此不被推荐使用。在实际的开发中,一般都是让对象存在于必要的时间中,否则当访问量加剧时,会造成内存不足等情况。