一.注册页面代码
<div style="float: left;background-color: #342e40;width: 675px;height: 498px"> <div style="width: 450px;height: 300px;background-color: #ffffff;margin-left: 100px;margin-top: 100px;"> <div style="text-align: center; font-size: 20px;"> 注册 </div> <form class="form-inline" id="form"> <div class="form-group" style="margin-top: 20px; margin-left: 40px;"> <div class="input-group"> <div class="input-group-addon">手机号码*</div> <input type="text" class="form-control" id="accountTel" name="accountTel" placeholder="请输入手机号码"> </div> <span id="span1" style="color: red; font-size: 11px;"></span> </div> <div class="form-group" style="margin-top: 13px; margin-left: 40px;"> <div class="input-group"> <div class="input-group-addon">验证码*</div> <input type="text" class="form-control" id="code" name="code" placeholder="请输入验证码"> </div> <input type="button" class="btn btn-danger" id="getCode" value="获取验证码" style="height: 30px; width: 120px;"> <br><span id="span2" style="color: red; font-size: 11px;"></span> </div> <div class="form-group" style="margin-top: 13px; margin-left: 40px;"> <div class="input-group"> <div class="input-group-addon">登录密码*</div> <input type="password" class="form-control" id="accountPwd" name="accountPwd" placeholder="请输入登录密码"> </div> <span id="span3" style="color: red; font-size: 11px;"></span> </div> <div class="form-group" style="margin-top: 13px; margin-left: 40px;"> <div class="input-group"> <div class="input-group-addon">确认密码*</div> <input type="password" class="form-control" id="accountPwd2" name="accountPwd2" placeholder="请输入确认密码"> </div> <span id="span4" style="color: red; font-size: 11px;"></span> </div> <div style="margin-left: 140px; margin-top: 20px;"> <input type="button" class="btn btn-danger col-md-6" value="立即注册" οnclick="ljzc()"> </div> </form> </div> </div> </div>
<script type="text/javascript"> $(function(){ $("#getCode").removeAttr("disabled"); //发送验证码 $("#getCode").click(function(){ var accountTel = $("#accountTel").val();//取得输入的手机号的值 if(accountTel.length==11){//判断手机号是否是11位 $("#span1").text(""); $.ajax({ //触发Ajax url:"/account/messageServlet", data:{ "accountTel":$("#accountTel").val(), }, type:"post", async:false, dataType:"json", success : function(data) { if(data == true){ alert("验证码发送成功,收到后请输入验证码"); time(this); } else { alert("验证码发送失败"); } } }); }else{ $("#span1").text(""); $("#span1").append("手机号不能为空且必须为11位"); } }); }); //验证码倒计时 var wait = 60; function time(obj) { if(wait==0) { $("#getCode").removeAttr("disabled"); $("#getCode").val(" 获取验证码"); wait = 60; }else { $("#getCode").attr("disabled","true"); $("#getCode").val(wait+" 秒后重试"); wait--; setTimeout(function() { //倒计时方法 time(obj); },1000); // 间隔为1s } } var sb = '${sb}';//获取后台session中的验证码 //注册 function ljzc() { alert(sb); var code = $("#code").val(); var accountTel = $("#accountTel").val(); var accountPwd = $("#accountPwd").val(); var accountPwd2 = $("#accountPwd2").val(); alert(code); if(accountTel.length!=11){ $("#span1").text(""); $("#span1").append("手机号不能为空且必须为11位"); } else if(sb!=code){ $("#span2").text(""); $("#span2").append("您输入的验证码不正确,请重新获取"); } else if(code == ""){ $("#span2").text(""); $("#span2").append("验证码不可以为空!"); } else if(accountPwd==""){ $("#span3").text(""); $("#span3").append("密码不可以为空!"); } else if(accountPwd2==""){ $("#span4").text(""); $("#span4").append("密码不可以为空!"); } else if(accountPwd!=accountPwd2){ $("#span4").text(""); $("#span4").append("两次输入密码不一致!"); } else{ $("#span1").text(""); $("#span2").text(""); $("#span3").text(""); $("#span4").text(""); $.ajax({ url:"/account/checktel", data:{accountTel:accountTel}, dataType:"json", type:"post", success:function(obj){ if(obj.code=='success'){ $.ajax({ url:"/account/addregistacount", data:$("#form").serialize(), type:"post", dataType:"json", success : function(obj) { if(obj.code=='success'){ alert("恭喜您,注册成功"); location.href="/page/login" } else { alert("注册失败"); } } }); }else{ alert("该手机号已被注册!"); } } }); } } </script>
二.注册Controller信息
package com.miqian.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import java.util.Random; import javax.servlet.http.HttpSession; import com.alibaba.fastjson.JSONObject; import com.miqian.model.Account; import com.miqian.service.AccountService; import com.miqian.util.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/account") public class AccountController { @Autowired @Qualifier("accountService") public AccountService accountService; //注销 @RequestMapping("/logout") public String logout(HttpSession session){ //清空session session.invalidate(); return "login"; } //验证手机号唯一 @RequestMapping("/checktel") @ResponseBody public Object checktel(String accountTel){ int i = accountService.queryBytel(accountTel); Map<String, Object> map = new HashMap<String, Object>(); if(i>0){ map.put("code", "success"); }else{ map.put("code", "fasle"); } return map; } //回显个人信息 @RequestMapping("/toupdaccount") @ResponseBody public Object toupdaccount(String aid,Map<String,Object> maps){ maps.put("aid",aid); Account account = accountService.queryByaid(maps); Map<String, Object> map = new HashMap<String, Object>(); map.put("account", account); return map; } //完善个人资料 @RequestMapping("/updateaccount") @ResponseBody public Object updateaccount(Account account){ int i = accountService.updateaccount(account); Map<String, Object> map = new HashMap<String, Object>(); if(i>0){ map.put("code", "success"); }else{ map.put("code", "false"); } return map; } //登录 @RequestMapping("/login") @ResponseBody public Integer login(Account account,HttpSession session){ String accountPwd = SecurityUtils.md5(account.getAccountPwd()); System.out.print(accountPwd); account.setAccountPwd(accountPwd); Account a = accountService.findAccountByTel(account.getAccountTel()); if(a == null){ return 1; } else if(!account.getAccountPwd().equals(a.getAccountPwd())){ return 2; } else{ session.setAttribute("account", a); return 3; } } //注册 @RequestMapping("/addregistacount") @ResponseBody public Object addregistacount(HttpSession session,String accountTel,Account account) throws Exception{ String accountPwd = SecurityUtils.md5(account.getAccountPwd()); account.setAccountPwd(accountPwd); HashMap<String, Object> map = new HashMap<String, Object>(); int i = accountService.addregistacount(account); if(i>0){ map.put("code", "success"); }else{ map.put("code", "false"); } return map; } //接收短信验证码 @RequestMapping("/messageServlet") @ResponseBody public boolean getmessage(HttpSession session,String accountTel) throws Exception{ String str="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; StringBuilder sb=new StringBuilder(4); for(int i=0;i<4;i++) { char ch=str.charAt(new Random().nextInt(str.length())); sb.append(ch); } System.out.println(sb.toString()); // 用户名 String name = "15934472606"; // 密码 String pwd = "A54F6DBABD08CB21CAEA5C5DC4E1"; // 电话号码字符串,中间用英文逗号间隔 StringBuffer mobileString = new StringBuffer(accountTel); // 内容字符串 StringBuffer contextString = new StringBuffer("您的验证码是:"+sb+"。请不要把验证码泄露给其他人"); // 签名 String sign = "咪钱金融"; // 追加发送时间,可为空,为空为及时发送 String stime = ""; // 扩展码,必须为数字 可为空 StringBuffer extno = new StringBuffer(); System.out.println(doPost(name, pwd, mobileString, contextString, sign, stime, extno)); session.setAttribute("sb", sb); return true; } //97到208行为短信API接口 /** * 发送短信 * * @param name 用户名 * @param pwd 密码 * @param mobileString 电话号码字符串,中间用英文逗号间隔 * @param contextString 内容字符串 * @param sign 签名 * @param stime 追加发送时间,可为空,为空为及时发送 * @param extno 扩展码,必须为数字 可为空 * @return * @throws Exception */ public static String doPost(String name, String pwd, StringBuffer mobileString, StringBuffer contextString, String sign, String stime, StringBuffer extno) throws Exception { StringBuffer param = new StringBuffer(); param.append("name=" + name); param.append("&pwd=" + pwd); param.append("&mobile=").append(mobileString); param.append("&content=").append(URLEncoder.encode(contextString.toString(), "UTF-8")); param.append("&stime=" + stime); param.append("&sign=").append(URLEncoder.encode(sign, "UTF-8")); param.append("&type=pt"); param.append("&extno=").append(extno); URL localURL = new URL("http://web.cr6868.com/asmx/smsservice.aspx?"); URLConnection connection = localURL.openConnection(); HttpURLConnection httpURLConnection = (HttpURLConnection) connection; httpURLConnection.setDoOutput(true); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Accept-Charset", "utf-8"); httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpURLConnection.setRequestProperty("Content-Length", String.valueOf(param.length())); OutputStream outputStream = null; OutputStreamWriter outputStreamWriter = null; InputStream inputStream = null; InputStreamReader inputStreamReader = null; BufferedReader reader = null; String resultBuffer = ""; try { outputStream = httpURLConnection.getOutputStream(); outputStreamWriter = new OutputStreamWriter(outputStream); outputStreamWriter.write(param.toString()); outputStreamWriter.flush(); if (httpURLConnection.getResponseCode() >= 300) { throw new Exception( "HTTP Request is not success, Response code is " + httpURLConnection.getResponseCode()); } inputStream = httpURLConnection.getInputStream(); resultBuffer = convertStreamToString(inputStream); } finally { if (outputStreamWriter != null) { outputStreamWriter.close(); } if (outputStream != null) { outputStream.close(); } if (reader != null) { reader.close(); } if (inputStreamReader != null) { inputStreamReader.close(); } if (inputStream != null) { inputStream.close(); } } return resultBuffer; } /** * 转换返回值类型为UTF-8格式. * @param is * @return */ public static String convertStreamToString(InputStream is) { StringBuilder sb1 = new StringBuilder(); byte[] bytes = new byte[4096]; int size = 0; try { while ((size = is.read(bytes)) > 0) { String str = new String(bytes, 0, size, "UTF-8"); sb1.append(str); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb1.toString(); } }
注册短信验证的代码
最新推荐文章于 2024-05-07 16:08:33 发布