application详解及实例

application对象用来在多个程序或者是多个用户之间共享数据,用户使用的所有application对象都是一样的,这与session对象不同。服务器一旦启动,就会自动创建application对象,并一直保持下去,直至服务器关闭,application就会自动消失。

application对象的方法

application对象实现了javax.servlet.ServletContext接口,此接口位于servlet-api.jar包中,代表当前web应用上下文。application对象的常用方法有如下一些。

实例  网站计数器

代码如下:

<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="javax.servlet.*" %>
<HTML>
<head>
<title>网站计数器</title>
</head>
<BODY>
<%!
synchronized void countPeople(){//串行化计数函数
ServletContext application=((HttpServlet)(this)).getServletContext();
Integer number=(Integer)application.getAttribute("Count");
if(number==null){ //如果是第1个访问本站
number=new Integer(1);
application.setAttribute("Count",number);
}else{
number=new Integer(number.intValue()+1);
application.setAttribute("Count",number);
}
}
%>
<% if(session.isNew())//如果是一个新的会话
countPeople();
Integer yourNumber=(Integer)application.getAttribute("Count"); %>
<P><P>欢迎访问本站,你是第
<%=yourNumber%>
个访问用户。
</BODY>
</HTML>

程序用synchronize关键字对计数函数进行了串行化(或者叫序列化),以确保当两个客户端同时访问网页而修改计数值时不会产生冲突;getServletContext()方法来得到application对象,因为有些Web服务器并不直接支持application对象,必须先得到其上下文;如果还是第一个访问的客户,则前面代码中得到的number会是空值,故置初值为1,否则做增1处理;如果是一个新的会话则调用计数函数,得到计数值并将其显示。网站计数器程序的运行结果如下图所示:

第一次访问:

关闭浏览器后,再次访问:

Java_Web轻量级开发全体验

application实例的更多相关文章

  1. WPF入门教程系列二——Application介绍

    一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只 ...

  2. [转]Android中Application类的用法

    原文链接:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application ...

  3. WPF基础——Application

    一.Application介绍 WPF中的Application对象用来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在.WPF App ...

  4. Android清单文件详解(三)----应用程序的根节点<application>

    <application>节点是AndroidManifest.xml文件中必须持有的一个节点,它包含在<manifest>节点下.通过<application>节 ...

  5. WPF入口Application

    1.WPF和 传统的WinForm 类似, WPF 同样需要一个 Application 来统领一些全局的行为和操作,并且每个 Domain (应用程序域)中只能有一个 Application 实例存 ...

  6. 【转】Android中Application类用法

    转自:http://www.cnblogs.com/renqingping/archive/2012/10/24/Application.html Application类 Application和A ...

  7. Android使用Application总结

    对于application的使用,一般是 在Android源码中对他的描述是; * Base class for those who need to maintain global applicati ...

  8. 【转载】Android使用Application总结

    Application 配置全局Context 第一步.写一个全局的单例模式的MyApplication继承自Application 覆盖onCreate ,在这个方法里面实例化Application ...

  9. 【WPF】Application应用程序启动

    wpf应用程序在启动的时候会自动创建Main函数并调用Application实例的run(),从而启动Application进程.Main函数在一个App.g.cs文件中,App.g.cs文件的位置在 ...

随机推荐

  1. Android Studio 出现 Gradle's dependency cache may be corrupt 解决方案

    将 .\项目地址\gradle\wrapper\gradle-wrapper.properties 文件中的 gradle版本 与 正常的版本 修改一致即可.

  2. 【技术分享会】 @第二期 微信开放API简述-0212

    什么是微信开放平台? 微信开放平台作为第三方移动程序提供接口,使用户可将第三方程序的内容发布给好友或分享至朋友圈,第三方内容借助微信平台获得更广泛的传播.从而形成了一种主流的线上线下微信互动营销方式. ...

  3. 【MySQL】 Cannot load from mysql.proc. The table is probably corrupted

    解决办法 在 mysql 这张表里边.执行sql ALTER TABLE `proc` MODIFY COLUMN `comment` text CHARACTER SET utf8 COLLATE ...

  4. 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)

    最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...

  5. xmlWriter

    MemoryStream msXml = new MemoryStream(); XmlTextWriter xmlWriter = new XmlTextWriter(msXml, Encoding ...

  6. What you should know about .so files

    In its early days, the Android OS was pretty much supporting only one CPU architecture: ARMv5.Do you ...

  7. Unity3D Android动态反射加载程序集

    这种办法在iOS下是不让用的,只能在Android下用.用起来也很方便了. 1.先创建一个c#工程,引用到的UnityEngine.dll在Unity的安装目录里找吧 2.将编译的dll放入Unity ...

  8. 编译安装的gitlab8.x如何修改时区设置

    编译安装的gitlab 8.x版本默认的时区是UTC,在页面上显示的时间默认是零时区的区时,安装完成之后,如果页面上显示的时间比北京时间少了8个小时,则需要修改一下时区 把gitlab.yml文件中的 ...

  9. 使用eclipse执行maven-release-plugin插件发布jar异常问题(.project)(Cannot prepare the release because you have local modifications )

    开发是用的eclipse,里面有工程文件.project这种文件,运行release:prepare的时候报异常: Cannot prepare the release because you hav ...

  10. Unity3D笔记十五 碰撞、移动

    碰撞 Collision. [kəˈliʒən] 碰撞:冲突:(意见,看法)的抵触:(政党等的)倾轧 选择一个需要添加碰撞器的游戏对象后 Component->Physics- Unity一共为 ...