当JSP 全局变量 遇上 刷新

heaven_hao 2008-03-29 05:07:19
我在<%! %>中定义了一个全局变量
_page[i][j][8];

第一次运行,正常显示
但是当我点刷新“F5”的时候就出错了
提示:使用了超出范围的数组下标
“java.lang.ArrayIndexOutOfBoundsException: 8”
...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
临远 2008-03-29
  • 打赏
  • 举报
回复
尽量别用<%!%>定义变量,多用户的时候,一定会发生冲突

除非你这个东西只是自己玩的,否则还是赶快改掉的好。把变量放到四个scope中。

关于作用域的介绍,请参考我们教程中的部分内容:

http://www.family168.com/tutorial/jsp/html/jsp-ch-04.html
huihui0103 2008-03-29
  • 打赏
  • 举报
回复
page_no++

你刷新几次后发生这个问题?
heaven_hao 2008-03-29
  • 打赏
  • 举报
回复
。。。不行,这个全局变量是必须定义的,只是刷新的时候下标被累计了。。。
因为有这么一段
page[x][y][page_no]//x,y坐标,page_no是页码
有一处使用了page_no++;
结果刷新的时候会不断累计
我现在加上了
finally{
page_no=0;
}
解决了这个问题。
mxsoftware 2008-03-29
  • 打赏
  • 举报
回复
全局变量很危险,因为编译过后只产生一个实例,这样的话每访问一次都会对全局变量进行修改等等,尤其商业性质的网站,很容易造成串户现象。
所以你这里不能这样定义,应该改成局部变量。

81,092

社区成员

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

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