当前位置:编程学习 > JAVA >>

jsp中全局变量i,改代码后不断访问,为什么i会从0自增到2或3后又从0开始自增?求解释!


---------------------------
<%!int i=0; %>
<%int j=0; %>
  i的值为<%=i++%>
  j的值为<% out.print(j++); %>
---------------------------------
访问该jsp页面多次,i不断自增,而且一旦改变其代码,再运行,i又会从0自增。这没问题但问题是:在我的几个浏览器里,改其代码,不断访问该页面,i会重新从0开始自增到2或3时,它又会跳到0,开始自增。这我不懂为什么会这样?谢谢! --------------------编程问答-------------------- 了解过JSP的机制么?

每次修改JSP,中间件都会重新生成该JSP所对应的Servlet,然后再编译该Servlet得到class,然后再动态加载该class;在这么一系列过程中,显然原来JSP对象中的成员跟新生成JSP对象的成员是没有关系的。 --------------------编程问答-------------------- 改过代码后jsp又重新编译了啊。 --------------------编程问答-------------------- 同意,楼上jsp论 --------------------编程问答-------------------- jsp,改过后,myeclipse会重新部署到tomcat,当用户再一次访问该Jsp时,tomcat会重新翻译成相应的java文件,和class文件,
所以我能理解修改上述代码(如随便把j改成1等),再一次访问时,i变成了0.由于i是全局变量,所以再访问又变成1,以此递推上去。
但我不理解的是:为什么修改后,i变成了,不断重新加载,它会变成1,再变2,再变3,接着再变0,变1,(后面递推就没问题了),好像tomcat翻译有个时间差似的。不知别人电脑上是否这样,我试了很多次都是这样。不明白,求解释。 --------------------编程问答-------------------- 但我不理解的是:为什么修改后,i变成了0,不断重新加载,它会变成1,再变2,再变3,接着再变0,变1,(后面递推就没问题了),好像tomcat翻译有个时间差似的。不知别人电脑上是否这样,我试了很多次都是这样。不明白,求解释。  --------------------编程问答-------------------- 不理解,顶一下,求关注求解释 --------------------编程问答-------------------- 1楼已经说的很明白了,当你修改jsp页面时,jsp页面有需要重新编译生成java文件的,如果你没有修改,那变量就会在访问的时候不停地增加了,打印i++时,第一次当然是0了,第二次就会变为1,一次类推,也就是说i++时,是先打印i原来赋的值,然后才++的,这主要是jvm的原因的,java语言规定这样的。只是++分先加和后加的问题。如果是++i,就不一样的。 --------------------编程问答--------------------
引用 5 楼 WonderKewen 的回复:
但我不理解的是:为什么修改后,i变成了0,不断重新加载,它会变成1,再变2,再变3,接着再变0,变1,(后面递推就没问题了),好像tomcat翻译有个时间差似的。不知别人电脑上是否这样,我试了很多次都是这样。不明白,求解释。 


JSP页面更新,有个检查时间差,中间件一般也不是随时去检查是否有更新。

这个值是可以设置的:从不检查(那么JSP你再怎么修改也没用了,不会重新编译,生产环境一般用这种);每次都检查(每次请求时都会去检查下JSP是否被修改,降低速度,本机开发环境一般用这种);具体时间数。 --------------------编程问答--------------------
引用 8 楼 ldh911 的回复:
Quote: 引用 5 楼 WonderKewen 的回复:

但我不理解的是:为什么修改后,i变成了0,不断重新加载,它会变成1,再变2,再变3,接着再变0,变1,(后面递推就没问题了),好像tomcat翻译有个时间差似的。不知别人电脑上是否这样,我试了很多次都是这样。不明白,求解释。 


JSP页面更新,有个检查时间差,中间件一般也不是随时去检查是否有更新。

这个值是可以设置的:从不检查(那么JSP你再怎么修改也没用了,不会重新编译,生产环境一般用这种);每次都检查(每次请求时都会去检查下JSP是否被修改,降低速度,本机开发环境一般用这种);具体时间数。

大神一出现,我等只有膜拜...
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,