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

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,奇怪,奇怪

请大家给解答一下,谢谢!
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
syp1979 2006-03-06
  • 打赏
  • 举报
回复
websphere 不是这样的.第一次是1.刷新一次就是2了.
Paripatetic 2006-03-05
  • 打赏
  • 举报
回复
楼上说的对
可能是tomcat的实现机制有些细节我们不了解

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

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧