Application对象

简介:



(1)application对象作用:用于保存应用程序中的公有数据,实现了多客户之间的数据共享。

(2)application对象的生命周期:从Web服务器启动,直到Web服务器关闭。

(3)application对象的作用范围:application对象是一个应用程序级的对象,它作用于当前Web应用程序,也即作用于当前网站,所有访问当前网站的客户都共享一个application对象。

(4)application对象的基类是:javax.servlet.ServletContext类。

(5)application对象的常用方法

方法名

描述

String  getAttribute(String name)

根据属性名称获取属性值。

Enumeration  getAttributeNames()

获取所有的属性名称。

void  setAttribute(String name, Object object)

设置属性,指定属性名称和属性值。

void  removeAttribute(String name)

根据属性名称删除对应的属性。

ServletContext getContext(String uripath)

获取指定URLServletContext对象。

String getContextPath()

获取当前Web应用程序的根目录。

String getInitParameter(String name)

根据初始化参数名称,获取初始化参数值。

int getMajorVersion()

获取Servlet API的主版本号。

int getMinorVersion()

获取Servlet API的次版本号。

String getMimeType(String file)

获取指定文件的MIME 类型。

String getServletInfo()

获取当前Web服务器的版本信息。

String getServletContextName()

获取当前Web应用程序的名称。

void log(String message)

将信息写入日志文件中。


实例一:使用application对象获取初始化参数
一般来说,在web.xml文件中,设置初始化参数有如下两种方式:
(1)设置系统范围内的初始化参数
       对于系统范围内的初始化参数,可通过ServletContext 接口的getInitParameter(String name)方法,根据指定的参数名,获取对应的参数值。
(2)针对单个Servlet文件或JSP文件设置初始化参数
        对于针对单个Servlet文件或JSP文件设置初始化参数,可通过ServletConfig接口的 getInitParameter(String name)方法,根据指定的参数名,获取对应的参数值。

在web.xml文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version= "1.0"  encoding= "UTF-8" ?>
<web-app version= "2.5"
     xmlns= "http://java.sun.com/xml/ns/javaee"
     xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http: //java.sun.com/xml/ns/javaee
     http: //java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <display-name></display-name>
   <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
     <context-param>
         <param-name>appName</param-name>
         <param-value>MyJSP</param-value>
     </context-param>
     <context-param>
         <param-name>appVersion</param-name>
         <param-value> 1.0 . 0 </param-value>
     </context-param>
</web-app>

在index.jsp文件中:

1
2
3
4
5
6
7
8
<%
     //String appName=application.getInitParameter("appName");
     //String appVersion=application.getInitParameter("appVersion");
     String  appName=getServletContext().getInitParameter( "appName" );
     String  appVersion=getServletContext().getInitParameter( "appVersion" );
      %>
应用程序的名称:<%=appName%><br>
应用程序的版本:<%=appVersion%>


输出结果:

    应用程序的名称:MyJSP
    应用程序的版本:1.0.0    


实例二:使用application对象实现网站计数器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%
        if (application.getAttribute( "counter" ) ==  null )
        {
            application.setAttribute( "counter" "1" );
        }
        else
        {
            String  strnum =  null ;
            strnum = application.getAttribute( "counter" ).toString();
            int  icount =  0 ;
            icount = Integer.valueOf(strnum).intValue();
            icount++;
            application.setAttribute( "counter" , Integer.toString(icount));
                                                                                                         
        }
                                                                                                         
    %>
                                                                                                 
        您是第<%=application.getAttribute( "counter" ) %>位访问者!


session对象和application对象的比较

(1) 两者的作用范围不同:


session对象是用户级的对象,application对象是应用程序级的对象。


一个用户一个session对象,每个用户的session对象不同,在用户所访问网站的多个页面之间共享同一个session对象。


一个Web应用程序一个application对象,每个Web应用程序的application对象不同,但一个Web应用程序的多个用户之间共享同一个application对象。


在同一个网站下:

n每个用户的session对象不同

n所用用户的application对象相同


在不同网站下:

n每个用户的session对象不同

n每个用户的application对象不同



(2) 两者的生命周期不同:


session对象的生命周期:用户首次访问网站创建,用户离开该网站 (不一定要关闭浏览器消亡。


application对象的生命周期:启动Web服务器创建,关闭Web服务器销毁。



     本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1341703 ,如需转载请自行联系原作者








相关文章
|
JSON Java Maven
application.properties 文件和 application.yml 文件区别以及加载顺序
application.properties 文件和 application.yml 文件区别以及加载顺序
169 0
c:outrequest session application同时输出
c:outrequest session application同时输出
31 0
|
缓存 Android开发
Application 的简单介绍和生命周期
Application 的简单介绍和生命周期
Application 的简单介绍和生命周期
Zp
application.yml的集合写法在application.properties怎么写
application.yml的集合写法在application.properties怎么写
Zp
139 0
|
容器
使用Listener准备application作用域数据的小问题
在程序中,有些数据我们希望在程序启动的时候就准备好,并且只准备一次,放在application作用域中,这时候,我们通常会用Listener来准备这些数据。但是,用Listener准备application作用域的数据,在获取容器的时候会有一些小问题。
117 0
|
关系型数据库 Java MySQL
application.properties 文件和 application.yml 文件有什么区别呢?
application.properties  文件和 application.yml 文件有什么区别呢? yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的。 官方给的很多demo,都是用yml文件配置的。
1791 0