application内置对象
application对象用于保存所有应用程序中的公有数据。它在服务器启动时自动创建,在服务器停止时销毁。所有用户都可以共享该 application对象。与 session对象相比, application对象的生命周期更长,类似于系统的“全局变量”。
- application对象是 ServletContext类的实例。
- application开始于服务器的启动,终止于服务器的关闭。在此期间,application对象一直存在。
- 在用户的前后连接或不同用户之间的连接中,可以对 application对象的同一属性进行操作。
- 类似于java中的静态成员属于整个类而不属于对象一样,applicatioan对象属于整个服务器,而不是属于某一个项目。
- 在任何地方对 application对象属性的操作,都将影响到其他用户对此的访问。
- 服务器的启动和关闭决定了 application对象的生命。
访问应用程序初始化参数
设置应用程序初始化参数
application对象提供了对应用程序初始化参数进行访问的方法。应用程序初始化参数在 web.xml文件中进行设置, web.xm文件位于Web应用所在目录下的 WEB-INF子目录中。在 web.xm文件中通过<context-param>
标记配置应用程序初始化参数,如下所示:1
2
3
4
5
6......
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://127.0.0.1:3306/databaseName</param-value>
</context-param>
</web-app>
获取初始化参数
在web.xml中设置好初始化参数后,就可以在JSP页面中获取这些初始化参数,
application对象提供了两种访问应用程序初始化参数的方法,下面分别进行介绍。
getlnitParameter()
列名 | 列名 |
---|---|
Enumeration<String> getInitParameterNames() |
获取所有初始化参数名称的枚举 |
String getInitParameter(String name) |
根据参数名称对应的参数值 |
实例:或是上述web.xml中设置的所有初始化参数1
2
3
4
5
6
7
8
9
10<%
Enumeration<String> initParameterNames = application
.getInitParameterNames();
String name = null;
while (initParameterNames.hasMoreElements())
{
name = initParameterNames.nextElement();
out.print(name + "=" + application.getInitParameter(name));
}
%>
显示效果:1
url=jdbc:mysql://127.0.0.1:3306/databaseName
管理应用程序环境属性
与 session对象相同,也可以在 application对象中设置属性。与 session对象不同的是, session只是在当前客户的会话范围内有效,当超过保存时间, session对象就被收回;而 application对象在整个应用区域中都有效。 application对象管理应用程序环境属性的方法分别介绍如下
方法 | 描述 |
---|---|
void setAttribute(String name, Object value) |
设置属性 |
Object getAttribute(String name) |
取得属性名称对应的属性值,没有该属性则返回null |
Enumeration<String> getAttributeNames() |
取得session中所有属性名称的枚举 |
void removeAttribute(String name) |
移除属性名为name的属性 |
其他方法
方法 | 描述 |
---|---|
String getServerInfo() | 返回JSP(servlet)引擎名及版本号 |
实例
1 | <%@ page language="java" contentType="text/html; charset=utf-8"%> |
运行结果:
可以看到除了我们自己设置的几个属性之外,还有一些内置的属性。