日期:2014-05-17  浏览次数:20765 次

session可做计数器码?
看书上有这样一个计数器的实例,不能明白,session能做计数器码?session不是和单个连接有关的吗?
代码如下:
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<body>
  <%! int number=0;  
  synchronized void countpeople()
  { 
  number++;
  }
  %>
  <%
  if(session.isNew())
  {
  countpeople();
  String str=String.valueOf(number);
  session.setAttribute("count",str);
  }
  %>
<p>您是第<%=(String)session.getAttribute("count")%>个访问本站的人。
<body>
<html>


------解决方案--------------------
是啊!
你要是单纯的只是使用session,而不把count的值持久化(保存到数据库),
那么使用session做计数器,那么只能是通过关闭浏览器,这种方式来测试,
你看一下你书上的那个例子,在程序发布运行和发布时的情况,绝对是这样的。

而3楼的兄弟说的也是使用了一种持久化方式,只是使用了ServletContext来实现罢了