JSP application 是 javax.servlet.ServletContext 的实例对象。在服务器部署应用和项目时,Web 容器仅创建一次 ServletContext 实例,也就是说 application 设置的任何属性和值可以用于整个应用(所有 JSP 页面)。可以将 application 对象看作 Web 应用的全局变量。一般用于保存应用程序的公用数据。
application 对象在 Web 应用运行时一直存在于服务器中,非常占用资源,因此在实际开发中不推荐使用,否则容易造成内存不足等情况。
application 对象常用方法如下:
方 法 | 说 明 |
---|---|
Object getAttribute(String attributeName) | 获取 attributeName(属性名称)对应的 object |
void setAttribute(String attributeName, Object object) | 设置 attributeName 对应的属性值 |
Enumeration getAttributeNames() | 返回 application 对象中所有的 attributeName |
void removeAttribute(String objectName) | 删除 application 对象中指定 attributeName 的属性 |
String getServerInfo() | 获取当前 Servlet 的版本信息 |
String getRealPath(String value) | 获取指定文件的实际路径 |
可以使用 application 对象来保存 JSP 页面的访问人数,也就是我们常说的网站计数器,下面通过一个例子来演示。index.jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<!DOCTYPE html>
<html>
<head>
<title>城东书院(www.cdsy.xyz)</title>
</head>
<body>
<%
Integer count = (Integer) application.getAttribute("count");
if (count == null) {
count = 1;
} else {
count++;
}
application.setAttribute("count", count);
%>
<h2>城东书院网站计数器</h2>
欢迎访问城东书院,您是第<%=count%>位访问客户!
</body>
</html>
运行结果如下: