欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-04 16:28:31
...

 

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>");
    }
   }
  });
 });
});

 

转载于:https://my.oschina.net/WvTKXOU/blog/318273