有关用!声明的变量一个奇怪的问题

alexgao 2006-03-05 10:54:30
请教一下大家,下面一段最简单的jsp代码:

test.jsp

<%@ page contentType="text/html;charset=GBK" %>
<%!int i=0; %>
<%
i++;
out.print(i);
%>
个人访问本站。

该页面主要是说明用!声明的变量是整个JSP页面的全局变量,但我在实际试验时,发现打开一个浏览器第一次访问该页面,出现“1个人访问本站”后,再打开另一浏览器,同样访问该页面,竟然还是出现“1个人访问本站”,也就是i没有更新,但这时我刷新一下页面,页面出现“2个人访问本站”,之后两个浏览器轮流刷新,i可以轮流加1,这与预料一致。可问题是,为何当i为一时,第二个浏览器第一次访问却没有及时更新,这个问题,我已经在几架Tomcat的服务器上试了,问题都一样。

我甚至后来改了isTreadsafe="false",让它单线程运行,还是一样,就是从1递增到2时,有问题。如果用同一个浏览器,也可以发现,i=1时,再刷新一次,还是1,然后再刷新一下,才变2,奇怪,奇怪

请大家给解答一下,谢谢!
...全文
52 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
syp1979 2006-03-06
websphere 不是这样的.第一次是1.刷新一次就是2了.
  • 打赏
  • 举报
回复
Paripatetic 2006-03-05
楼上说的对
可能是tomcat的实现机制有些细节我们不了解

在建立servlet时可能运行流程和之后的访问不太一样
  • 打赏
  • 举报
回复
lydvqq 2006-03-05
真的是。楼主好仔细,但是如果重启下tomcat试下就没有你说的情况了。
这可能是因为你新建的文件,它第一次运行时要先把jsp页面编译。
不知是不是这个原因。
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-05 10:54
社区公告
暂无公告