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 ,如需转载请自行联系原作者








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值