关于jsp的一个计数器
我用tomcat配置了一个服务器,然后在里面写了这样一个jsp网页:
<%@ page contentType= "text/html;charset=gb2312 "%>
<html>
<body>
<%!int counter=0;
synchronized void counterFunction()
{
counter++;
}
%>
<%counterFunction();%>
网站计数器 <br>
您是第 <%=counter%> 位访问者
</body>
</html>
,然后用127.0.0.1:8080访问该网页,可是怎么搞网页只是显示”您是第0位访问者"怎么刷新还是访问者为零,我觉得synchronized void counterFunction()
{
counter++;
}
这个函数没有得到执行.好奇怪哦.有人知道原因么?
------解决方案--------------------to nighteagle82 :
synchronized是用实现同步,避免几个用户同一时间实现counter++,
to for_cyan :
jsp 最终是转化为 servlet , <%! ... %>最终是转化为servlet的init()方法,而servlet是单态的,因而其只进行一次初始化,因而只会运行一次int counter = 0 进行初始化,下一个用户来访问时只是直接调用<%..%>里面的方法,而不会再调用int counter = 0 ;
LZ,你的代码没错,我运行了,正常