日期:2014-05-18  浏览次数:20708 次

困多时的问题,请大侠们指点一下!
有一产生验证码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. 整型转字符?