有一产生验证码rand.jsp页面:
// 取随机产生的认证码(4位数字)
String sRand= " ";
for (int i=0;i <4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.drawString(rand,11*i+1,12);
}
//session保存rand
session.setAttribute( "rand ",sRand);
登陆页面index.jsp:
<form action= " <%=request.getContextPath()%> /login.do " name= "loginform " method= "post ">
<td> 用户: <input type=textbox name= "username " value= " " /> </td>
<td> 密码: <input type=password name= "password " value= " " /> </td>
<td> 验证码: <input type=textbox name= "randt " value= " " />
<img border=0 src= "rand.jsp " > </td>
<td>
<input type=submit value= "登陆 " name= "loginsub " >
<input type=reset value= "重写 " name= "loginres " >
</td>
<%=session.getAttribute( "rand ") %>
为什么这里的session.getAttribute( "rand ") 的值 和 <img border=0 src= "rand.jsp> 的值显示出来的不一样呢? session.getAttribute( "rand ") 显示的是 <img border=0 src= "rand.jsp> 的前一个值,如果是第一次 session.getAttribute( "rand ") 显示的是null,而 <img border=0 src= "rand.jsp> 却有值
但是在LoginAction中
session.getAttribute( "rand ");
String rand = (String)session.getAttribute( "rand ");
String randt= forms.getRandt() ;
if(randt.equals(rand))
{相等}
else{不等}
却是相等的,但是第一次填写的时候会提示不等,以后则是相等的了。
请教各位大侠,这是什么原因啊?应该怎么解决呢?
先谢谢了!
------解决方案--------------------
禁用页面缓存,它每次显示的前一次缓存的值了!
------解决方案--------------------
JSP编程技巧集锦(一个问题一段代码)
实用性问题汇总 一个问题一段代码 浓缩精华收藏品 新手实战必备手册
买本书三五十元 还不如买实用代码 初学者能上台阶 老手具备参考价值
一份30元(WORD文件电子文档)
需要者请联系:e_mail:fz lotuscn@yahoo.com.cn QQ:59 5563946 (地址中空格去掉)
目 录
1. 选中的一行记录高亮显示?
2. 在下拉列表框里选择一个值后跳出新窗口?
3. 在JSP中启动execl?
4. 两级下拉列表框联动菜单?
5. java中如何把一个目录下的文件移到另一个指定的目录?
6. 制作表格线?
7. jsp如判别一个字符在A到Z之间?
8. 得到一浮点数小数点后4位,如何写以函数截取为两位
9. 整型转字符?
10. 显示数据库的记录,点击哪个标题栏,就按照哪个标题排序