码迷,mamicode.com
首页 > 移动开发 > 详细

【jsp网站计数功能】 application session

时间:2014-11-06 21:32:52      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   使用   java   sp   文件   div   

在jsp页面中实现网站计数器的方法有很多,其中比较普遍的做法是利用application 和session对象。application对象可被所有用户共享;session是单用户共享,用户从访问系统开始到退出系统,都可以使用session。网站计数器的实现思路是:当系统创建一个session对象时,将application中保存的计数变量加1

 

count.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
  </head>
  
  <body>
    <%!
        synchronized void countPeople(){
            ServletContext application = this.getServletContext();
            Integer number = (Integer) application.getAttribute("count");
            if(number == null){
                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>

 

在上述代码中,为了避免使用application 对象出现并发问题,因此使用了synchronized 关键字。为了避免页面刷新问题,添加了session.isNew()判断,如果session对象是新建的,表明用户开始访问系统,将计数器加1;当用户刷新当前页面时,由于session对象不是新建的,因此避免了重复加1的问题

 

实际上,在实现计数器功能是,需要注意一些细节问题,例如频繁刷新和并发访问等。由于application对象的生命周期与服务器启动和停止相关,因此如果服务器由于出现问题重启,application保存的计数器将清空。要解决该问题可以将计数器的值保存在文件中,利用读写文件的功能再对计数器加1.

【jsp网站计数功能】 application session

标签:style   blog   io   color   使用   java   sp   文件   div   

原文地址:http://www.cnblogs.com/balfish/p/4079812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!