JSP中如何定义静态变量,急需呀
<%!
private static int a = 0;
%>追问
private static int a = 0;
%>追问
我是这样定义的
后面代码中有累加i,调试时,i值会每点一次,增加,
但重新关闭tomcat,重新调试,i又从1开始,想问,如何永久保存记录i的值
tomcat关闭时,i的值是肯定会还原成1,想保存i的值,可以把i保存在数据库中,或是保存在文件中,都可以啊
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-06-19
jsp页面中<%! %>内定义的是全局变量。
使用<%! %>定义的变量编译成servlet后成为servlet的私有成员变量,在servlet环境中,对于一个JSP页只允许有一个结果servlet的实例在运行和响应所有的页面请求。因此,在结果servlet中所有的成员变量可以被所有的请求所共享,所以只要成员变量没有重新赋值,下次访问该页面时仍然不变。而在<% %>中定义的变量编译成servlet后成为service()方法的一个本地变量,而service()方法中的本地变量只能每响应一次请求就重建一次。
使用<%! %>定义的变量编译成servlet后成为servlet的私有成员变量,在servlet环境中,对于一个JSP页只允许有一个结果servlet的实例在运行和响应所有的页面请求。因此,在结果servlet中所有的成员变量可以被所有的请求所共享,所以只要成员变量没有重新赋值,下次访问该页面时仍然不变。而在<% %>中定义的变量编译成servlet后成为service()方法的一个本地变量,而service()方法中的本地变量只能每响应一次请求就重建一次。
第2个回答 2011-06-17
<%
..........(这里可以写Java代码)
%>追问
..........(这里可以写Java代码)
%>追问
我是这样定义的
后面代码中有累加i,调试时,i值会每点一次,增加,
但重新关闭tomcat,重新调试,i又从1开始,想问,如何永久保存记录i的值
你想做网站访问的累加器吗?
容器都关了,你怎么可能还希望保存住变量的值啊?
所以用其它的东西来保存,
1.存到数据库里。
2.存到一个文件里。
做一个侦听器,Tomcat启动时读取出数据,
如果你放心的话,就在tomcat关闭时再写回去,不放心就设置一个时机写回取,不要频繁的写就行了。
第3个回答 2011-06-17
<%!
//加一个!,这里声明的变量可以在不同客户端之间共享
%>追问
//加一个!,这里声明的变量可以在不同客户端之间共享
%>追问
我是这样定义的
后面代码中有累加i,调试时,i值会每点一次,增加,
但重新关闭tomcat,重新调试,i又从1开始,想问,如何永久保存记录i的值
想要永久保存,只能把i的值存进数据库
第4个回答 2011-06-17
<%!
static Integer n = 5;
%>追问
static Integer n = 5;
%>追问
我是这样定义的
后面代码中有累加i,调试时,i值会每点一次,增加,
但重新关闭tomcat,重新调试,i又从1开始,想问,如何永久保存记录i的值