jsp文件如下:
<%! int a=0; %>
<%
  int b=0;
  a++;
  b++;
%>
a:<%=a %><br>
b:<%=b %>当第2次访问该页时,页面显示为
a:2
b:1
这是为什么?我重启tomcat和IE,仍是如上显示,就好像"a"成了windows的环境变量,
那么变量声明的含义是把这个变量放在了什么地方呢?application还是内存?

解决方案 »

  1.   

    现在你所编写的JSP要变成一个类的定义。所有你编写的scriptlets要放置到这个类的一个方法中。同样,你可以增加变量和方法声明到这个类中。当然你也可以从scriptlets和表达式中使用这些变量和方法。为了增加一个声明,你必须使用<%! and %>来圈起你的声明,比如:<%@ page import="java.util.*" %><HTML><BODY><%!Date theDate = new Date();Date getDate(){System.out.println( "In getDate() method" );return theDate;}%>Hello! The time is now <%= getDate() %></BODY></HTML>上面的例子已经声明了变量和方法:一个Date变量theDate以及一个方法getDate。这两个从现在开始在scriptlets和表达式中都是有效的了,因为它们已经定义了。但是不幸的是,上面的这个例子并不能正常工作:不管你怎么重载网页,日期都是相同的。其中的原因是这些声明,它们只在网页被装载的时候才被计算一次。这一点就象我们在Visual C++中创建一个类并定义变量的初始化值。