ava调用WebService接口实现发送手机短信验证码功能

 

 

二:前台的注册页面的代码:reg.jsp 

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@page import="cn.gov.csrc.base.action.FindAllData"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>中国证券会证券期货违法违规举报中心-注册</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="shortcut icon" type="image/x-icon" href="<%=request.getContextPath()%>/images/favicon.ico" />
<link rel="stylesheet" type="text/css"
 href="<%=request.getContextPath()%>/css/main.css">
<link
 href="<%=request.getContextPath()%>/formValidator1/style/validator.css"
 rel="stylesheet" type="text/css" />
<style type="text/css">
button {
 background: #F0F0F0 repeat-x;
 padding-top: 3px; 
 border-top : 1px solid #708090;
 border-right: 1px solid #708090;
 border-bottom: 1px solid #708090;
 border-left: 1px solid #708090;
 width: auto;
 line-height: 12pt; 
 font-size : 10pt;
 cursor: hand;
 font-size: 10pt;
 border-top: 1px solid #708090;
}
</style>
<script src="<%=request.getContextPath()%>/js/jquery-1.7.2.min.js"
 type="text/javascript"></script>
<script src="<%=request.getContextPath()%>/formValidator1/formValidator-4.0.1.js"
 type="text/javascript"></script>
<script src="<%=request.getContextPath()%>/formValidator1/formValidatorRegex.js"
 type="text/javascript"></script>
<script src="<%=request.getContextPath()%>/js/register.js"
 type="text/javascript"></script>
<script src="<%=request.getContextPath()%>/js/sms.js"
 type="text/javascript"></script>
<script type="text/javascript">
 function changeCheckNum() {
  var checkNumImage_ = document.getElementById("checkNumImage");
  checkNumImage_.src = "${pageContext.request.contextPath}/image.jsp?timeStamp="+ new Date().getTime();
 }
</script>
<script type="text/javascript">
 var msg = "${message}";
 if (msg != "") {
  alert(msg);
 }
</script>
</head>
<body>
 <%@include file="/statics/top.jspf"%>
 <div class="center_division">
  <div class="center_body">
   <div class="center_menu">
    <font color="#000000">当前位置:</font>
    <a href="<%=request.getContextPath()%>/statics/reg.jsp"><font color="#000000">用户注册</font></a>
   </div>
  </div>
  <div class="center_body_menu">
   <s:form action="RegisterAction_register" id="form1" name="form1" method="post" namespace="/">
    <table id="tb">
     <tr>
      <td colspan="3" align="center" bgcolor="#DDDFE1">举报人基本信息</td>
     </tr>
     <tr>
      <td align="center" width="30%">&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/new_reg_xing.gif"/>用户名:</td>
      <td align="center" width="40%">
       <s:textfield name="username" id="username" cssStyle="width:160px;height:24px;" onblur="checkusername()"/>
      </td>
      <td align="left" width="30%">
       <span id="usernameTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>username</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%"><img src="images/new_reg_xing.gif"/>登录密码:</td>
      <td align="center" width="40%">
       <s:password name="password" id="password" cssStyle="width:160px;height:24px;" onblur="checkpassword()"/>
      </td>
      <td align="left" width="30%">
       <span id="passwordTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>password</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%"><img src="images/new_reg_xing.gif"/>确认密码:</td>
      <td align="center" width="40%">
       <s:password name="passwordRepeat" id="passwordRepeat" cssStyle="width:160px;height:24px;" onblur="checkpasswrodb()"/>
      </td>
      <td align="left" width="30%">
       <span id="passwordRepeatTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>passwordRepeat</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%"><img src="images/new_reg_xing.gif"/>姓&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名:</td>
      <td align="center" width="40%">
       <s:textfield name="nickname" id="nickname" cssStyle="width:160px;height:24px;" onblur="checknickname()"/>
      </td>
      <td align="left" width="30%">
       <span id="nicknameTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>nickname</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%">性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别:</td>
      <td align="center" width="40%">
       <s:radio list="#application.dataMap.get(‘10001‘)" name="jbSex" cssStyle="height:24px;"/>
      </td>
      <td align="left" width="30%"></td>
     </tr>
     <tr>
      <td align="center" width="30%">联系地址:</td>
      <td align="center" width="40%">
       <s:textfield name="jbAddress" id="jbAddress" cssStyle="width:160px;height:24px;" />
      </td>
      <td align="left" width="30%">
       <span id="jbAddressTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>jbAddress</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%"><img src="images/new_reg_xing.gif"/>联系手机:</td>
      <td align="center" width="40%">
       <s:textfield id="jbPhone" name="jbPhone" cssStyle="width:160px;height:24px;" onblur="checkjbPhone()"/>
      </td>
      <td align="left" width="30%">
       <span id="jbPhoneTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>jbPhone</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center"><img src="images/new_reg_xing.gif"/>短信验证码:</td>
      <td align="left" colspan="2" style="padding-left: 112px;">
       <s:textfield id="SmsCheckCode" name="SmsCheckCode" cssStyle="width:80px;height:24px;" maxLength="6" />
       <span><input type="button" id="btnSendCode" name="btnSendCode" value="免费获取验证码" onclick="sendMessage()" /></span>
       <span id="SmsCheckCodeTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>SmsCheckCodeTip</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%"><img src="images/new_reg_xing.gif"/>证件类型:</td>
      <td align="center" width="40%">
      <s:select list="#application.dataMap.get(‘10002‘)" label=""
        headerKey="" headerValue="--请选择--" value="1" listValue="value" onchange="enableCredentialsCode(this)"
        name="jbCredentialsName" id="jbCredentialsName" cssStyle="width:160px;height:24px;"/>
      </td>
      <td align="left" width="30%">
       <s:fielderror cssStyle="color:red;padding-left:10px;">
        <s:param>jbCredentialsName</s:param>
       </s:fielderror>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%"><img src="images/new_reg_xing.gif"/>证件号码:</td>
      <td align="center" width="40%">
       <s:textfield name="jbCredentialsCode" id="jbCredentialsCode" cssStyle="width:160px;height:24px;" onblur="checkjbCredentialsCode()"/>
      </td>
      <td align="left" width="30%">
       <span id="jbCredentialsCodeTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>jbCredentialsCode</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%">单位名称:</td>
      <td align="center" width="40%">
       <s:textfield name="jbCompanyName" id="jbCompanyName" cssStyle="width:160px;height:24px;" />
      </td>
      <td align="left" width="30%">
       <span id="jbCompanyNameTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>jbCompanyName</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%"><img src="images/new_reg_xing.gif"/>所在地区:</td>
      <td align="center" width="40%">
      <s:select list="#application.dataMap.get(‘10003‘)" label=""
        headerKey="" headerValue="--请选择--" listKey="key"
        cssStyle="width:160px;height:24px;" listValue="value" id="jbSourceArea"
        name="jbSourceArea" onblur="checkjbSourceArea()"/>
      </td>
      <td align="left" width="30%">
       <span id="jbSourceAreaTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>jbSourceArea</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td align="center" width="30%">&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/new_reg_xing.gif"/>验证码:</td>
      <td align="center" width="40%">
       <s:textfield id="checkNum" name="checkNum" cssStyle="width:60px;height:24px;" onblur="checkNumber()" maxLength="4"/>
       <img id="checkNumImage" src="${pageContext.request.contextPath}/image.jsp">
       <a onClick="changeCheckNum()" title="点击换一张" style="cursor:hand;">&nbsp;换一张</a>
      </td>
      <td align="left" width="30%">
       <span id="checkNumTip">
        <s:fielderror cssStyle="color:red;padding-left:10px;">
         <s:param>checkNumTip</s:param>
        </s:fielderror>
       </span>
      </td>
     </tr>
     <tr>
      <td colspan="3" style="vertical-align: top; padding-top: 5px;padding-bottom: 5px;">
       <input type="submit" value="注册" style="width:50px; height:24px;"/>
       &nbsp;&nbsp;
       <input type="reset" value="重置" style="width:50px; height:24px;"/>
      </td>
     </tr>
    </table>
   </s:form>
  </div>
 </div>
 <%@include file="/common/buttom.jspf"%>
</body>
</html>

 

三:前台获取短信验证码的js:sms.js

 var InterValObj; //timer变量,控制时间
var count = 120; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
function sendMessage() {
 curCount = count;
 var jbPhone = $("#jbPhone").val();
 var jbPhoneTip = $("#jbPhoneTip").text();
 if (jbPhone != "") {
  if(jbPhoneTip == "√ 该手机号码可以注册,输入正确" || jbPhoneTip == "√ 短信验证码已发到您的手机,请查收"){
   // 产生验证码
   for ( var i = 0; i < codeLength; i++) {
    code += parseInt(Math.random() * 9).toString();
   }
   // 设置button效果,开始计时
   $("#btnSendCode").attr("disabled", "true");
   $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
   InterValObj = window.setInterval(SetRemainTime, 1000); // 启动计时器,1秒执行一次
   // 向后台发送处理数据
   $.ajax({
    type: "POST", // 用POST方式传输
    dataType: "text", // 数据格式:JSON
    url: "UserAction_sms.action", // 目标地址
    data: "jbPhone=" + jbPhone +"&code=" + code,
    error: function (XMLHttpRequest, textStatus, errorThrown) { 
     
    },
    success: function (data){ 
     data = parseInt(data, 10);
     if(data == 1){
      $("#jbPhoneTip").html("<font color=‘#339933‘>√ 短信验证码已发到您的手机,请查收</font>");
     }else if(data == 0){
      $("#jbPhoneTip").html("<font color=‘red‘>× 短信验证码发送失败,请重新发送</font>");
     }else if(data == 2){
      $("#jbPhoneTip").html("<font color=‘red‘>× 该手机号码今天发送验证码过多</font>");
     }
    }
   });
  }
 }else{
  $("#jbPhoneTip").html("<font color=‘red‘>× 手机号码不能为空</font>");
 }
}
//timer处理函数
function SetRemainTime() {
 if (curCount == 0) {                
  window.clearInterval(InterValObj);// 停止计时器
  $("#btnSendCode").removeAttr("disabled");// 启用按钮
  $("#btnSendCode").val("重新发送验证码");
  code = ""; // 清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
 }else {
  curCount--;
  $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
 }
}
$(document).ready(function() {
 $("#SmsCheckCode").blur(function() {
  var SmsCheckCodeVal = $("#SmsCheckCode").val();
  // 向后台发送处理数据
  $.ajax({
   url : "UserAction_checkCode.action", 
   data : {SmsCheckCode : SmsCheckCodeVal}, 
   type : "POST", 
   dataType : "text", 
   success : function(data) {
    data = parseInt(data, 10);
    if (data == 1) {
     $("#SmsCheckCodeTip").html("<font color=‘#339933‘>√ 短信验证码正确,请继续</font>");
    } else {
     $("#SmsCheckCodeTip").html("<font color=‘red‘>× 短信验证码有误,请核实后重新填写</font>");
    }
   }
  });
 });
});

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。