jsp的9大内置对象:out、request、response、session、application、exception、page、pageContext和config,今天就说说如何用application内置对象做一个简单的网页访问计数器。
application对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有setAttribute(String name,Object object)、getAttribute(String name)和removeAttribute(String name)等,application的存活范围比request和session都要大,只要服务器没有关闭,application对象中的数据就会一直存在,在整个服务器的运行过程中,application对象只有一个,它会被所有的用户共享,所以经常用它来做网页访问计数器,具体代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'countTime.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<%
if (application.getAttribute("counter") == null) {
application.setAttribute("counter", 1);
} else {
String countString = null;
countString = application.getAttribute("counter").toString();
int count = 0;
count = Integer.valueOf(countString).intValue();
count++;
application.setAttribute("counter", Integer.toString(count));
}
%>
您是第<%=application.getAttribute("counter")%>位访问者!
</body>
</html>
结果如下:
刷新后: