获取Session 里面的验证码值,用Ajax进行验证

 

验证码的 生成的例子很多,这里就不再写了..

以下是 用Ajax 对用户输入的验证码和 随机的验证码进行比较. 注册、登陆的时候,往往会用验证码进行验证才能进行操作。

我的验证码的是放在Session里面。

开始尝试着在jsp页面获取 Session 里面的验证码的值,因为验证码是一张图片,所以得把值赋给一个隐藏的文本框内,取得验证码的值之后, 再和用户输入的验证码的值进行比较. 但第一次加载的页面,  隐藏的文本框里面获取的验证码的值第一次总是null,

刷新页面就是第一次验证码的值, 原因是:因为页面先加载,验证码后生成的, 为了解决这个问题,所以用Ajax实现验证码的验证。

 

Ajax : 后台方法

//返回Boolean 值

public boolean checkverifyCode(HttpServletRequest request, String seccode)
 {
       if(seccode==null){
        return false;
   }
  return seccode.equals( request.getSession().getAttribute("rand"));
   }

 

会用ajax的都知道 ,需要对这个方法进行配置.这里就不写了

 

登陆页面 index.jsp

//ajax验证验证码
 <script type="text/javascript">
 var t=new Boolean();

 function checkCode(){

//设置成同步
  DWREngine.setAsync(false);
  var s=DWRUtil.getValue("verifyCode");
  if(s=="") {
  document.getElementById("fst").innerHTML="请输入附加码";
  return false;
  } else {

// 调用后台的方法,传用户输入的验证码的值到后台进行验证
  ajaxService.checkverifyCode(s,dealcode);

//设置成异步
   DWREngine.setAsync(true);
   return t;
  }
 }
 //回调函数
 function dealcode(datacode){
  if(datacode==true){
     t=datacode;
   return  t;
   } else {
   DWRUtil.setValue("fst","验证码错误");
   t=datacode;
 return  t;

  }
 }

 

//提交表单时验证验证码

function login(){

checkCode();

var theForm = document.forms["userloginform"];

if(checkCode()==false)  {
    document.getElementById("user.userpwd").focus();
    return false;
  }    else {

//表单提交
  theForm.submit();
  return true;
  }

}

</script>

 

 

<form name="userloginform" id="userloginform"     action="<%=request.getContextPath()%>/jsp/common/login.do"
      method="post" οnsubmit="return login();">
           <p>
        帐号         <input name="user.userid" id="user.userid"     />
        密码        <input name="user.userpwd" id="user.userpwd" type="password"    />
        附加码   <input name="verifyCode" type="text" class="verifyinput"     id="verifyCode" size="15" maxlength="4"  />    

                        <img id="viewverifypic" src="<%=request.getContextPath()%>/jsp/common/image.do" />
                        <input name="ulbutton" id="ulbutton" type="image"       src="../../images/common/ulbutton.jpg" align="bottom"    />
     
                        <div id="erdivcode" >
                    <span id="fst" style="color: red;font-weight: bold;"></span>
                      </div>
      </form>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值