|
有一产生验证码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{不等}
却是相等的,但是第一次填写的时候会提示不等,以后则是相等的了。
请教各位大侠,这是什么原因啊?应该怎么解决呢?
先谢谢了!
|
|