application实例

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轻量级开发全体验

posted @ 2017-07-30 16:17  袁骞骞  阅读(1095)  评论(0编辑  收藏  举报