jsp访问人数统计时,每次刷新都加2而不是加1

来源:百度知道 编辑:UC知道 时间:2024/09/26 01:20:49
代码如下: sumlogined 显示已访问人数, 为什么每次刷新都加2而不是加1?问题出在哪里?请告诉我。
int sumlogined=1050;;

System.out.println(sumlogined);

sumlogined= (Integer) application.getAttribute("alreadycome");
sumlogined++;
application.setAttribute("alreadycome",sumlogined);

你的全部代码什么样的啊?

你这样写JSP代码应该就没问题了:
<%!
int sumlogined= 1050;
%>
<%=sumlogined%>
<%
sumlogined++;
application.setAttribute("counter",sumlogined);
sumlogined= (Integer)application.getAttribute("sumlogined");
%>

=====================

但以上代码在多个人同时访问一个Web应用时,
也会出现统计问题,也就是线程不安全,
可以采用以下代码,达到线程安全效果:
<%!
int sumlogined=1050;;
%>
<%
synchronized(this){
System.out.println(sumlogined);
sumlogined++;
application.setAttribute("alreadycome",sumlogined);
sumlogined= (Integer) application.getAttribute("alreadycome");
}
%>