Web服务器一旦启动,就会自动创建application对象,并一直保持,直到服务器关闭。
application对象负责提供应用程序在服务器中运行时的一些全局信息,客户端使用的application对象都是一样的。在此期间,在任何地方对application对象相关属性的操作,将会影响到其他和用户对此的访问。
application对象可以实现用户数据的共享和传递。
application.setAttribute(String name, Object value)用来value来初始化application对象摸个属性(name指定)的值。如果指定的属性不存在,则新建一个;如果已存在,就改变name属性的值。
application.getAtrribute(String name)用来获取name指定名称的application对象属性值,其返回是一个Object对象。因此对返回对象要用强制转黄的方式将其转换成此对象原来的类型。如果属性不存在,则返回NULL。
注意
- 对象application是javax.servlet.ServerContext接口类型的实例。
- application为全局变量,而seesion变量是局部变量
示例:使用application和session统计页面访问次数
- 使用application对象属性保存页面的访问量
- 当有新的seesion产生时,访问量+1
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 7 <title>页面访问次数统计</title> 8 9 </head> 10 11 <body> 12 <% 13 int visit_num; 14 String strNum = (String)application.getAttribute("num"); 15 if(strNum != null){ 16 visit_num = Integer.parseInt(strNum); 17 }else{ 18 visit_num = 1; //首次访问 19 } 20 if(session.isNew()){ 21 visit_num += 1; 22 } 23 application.setAttribute("num",String.valueOf(visit_num)); 24 %> 25 <h3>欢迎您,您是本页面第<%=visit_num %>位访客</h3> 26 </body> 27 </html>