一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Spring MVC 中 短信驗證碼功能的實現方法

Spring MVC 中 短信驗證碼功能的實現方法

2020-06-19 11:36chendongj JAVA教程

短信驗證功能在各個網站應用都非常廣泛,那么在springmvc中如何實現短信驗證碼功能呢?今天小編抽時間給大家介紹下Spring MVC 中 短信驗證碼功能的實現方法,一起看看吧

在外部網站中短信的驗證很有必要,比如在實現注冊、驗證用戶信息等的情況下。在SpringMVC中的實現如下:

短信接口

短信接口,有些企業會購買的有移動的短信平臺接口。如果是個人或者是小企業可以使用一些云服務的。比如百度的API Store上面的。

我使用的是:http://apistore.baidu.com/apiworks/servicedetail/1018.html

當然短信接口肯定都是要付費的,而且是基于模板的,具體的使用說明可以看這個網址里面的使用說明。

前端界面

前端的界面,可能如下,點擊獲取驗證碼,然后按鈕變為灰色并且倒計時。(手機號是我的~~)

Spring MVC 中 短信驗證碼功能的實現方法

HTML代碼就不寫了,JS如下:vailidationCode是獲取驗證碼按鈕的ID。phone是手機號碼的ID,手機號碼只是簡單的驗證了,如果是要更精確,使用正則,其中的url的sendSms是后臺的springMVC的路徑。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$("#validationCode").click(function(){
var phone = $("#phone").val();
if($("#phone").val() && $("#phone").val().length == 11){
$.ajax({
cache : false,
url : "sendSms",
data : {phone : phone}
});
updateButtonStatus();
}else {
alert("請輸入合法的手機號");
}
});
var countdown=60;
function updateButtonStatus(){
var phone = $("#validationCode");
if (countdown == 0) {
phone.attr("disabled","false");
phone.val("免費獲取驗證碼");
countdown = 60;
return;
} else {
phone.attr("disabled","true");
phone.val("重新發送(" + countdown + ")");
countdown--;
}
setTimeout(function() {
updateButtonStatus() }
,1000)
}

后端代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@RequestMapping(value = "/sendSms")
@ResponseBody
public String sendSMS(@RequestParam("phone") String phone, HttpServletRequest request){
StringBuilder code = new StringBuilder();
Random random = new Random();
// 生成6位驗證碼
for (int i = 0; i < 6; i++) {
code.append(String.valueOf(random.nextInt(10)));
}
HttpSession session = request.getSession();
session.setAttribute(VALIDATE_PHONE, phone);
session.setAttribute(VALIDATE_PHONE_CODE, code.toString());
session.setAttribute(SEND_CODE_TIME, new Date().getTime());
String smsText = "您的驗證碼是:"+code;
SMSUtil.send(phone,smsText);
return "success";
}

其中的SMSUtil是封裝的上面的短信接口的發送類。參考如下,其中的API_KEY改成自己的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class SMSUtil {
final static String API_KEY = "xxxx";
public static String send(String phone,String content) {
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
try {
String httpArg = "mobile="+phone+"&content="+URLEncoder.encode(content,"UTF-8")+"&tag=2";
httpUrl = httpUrl + "?" + httpArg ;
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
// 填入apikey到HTTP header
connection.setRequestProperty("apikey",API_KEY);
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}

前臺的表單提交前還需要使用ajax做一下表單的驗證,驗證一下驗證碼是否正確:

?
1
2
3
4
5
6
7
8
9
10
11
12
@RequestMapping("/validate")
@ResponseBody
protected String validate(HttpServletRequest request,@RequestParam("phone") String inputPhone,@RequestParam ("code") String inputCode){
HttpSession session = request.getSession();
String code = (String) session.getAttribute(VALIDATE_PHONE_CODE);
String phone = (String) session.getAttribute(VALIDATE_PHONE);
if(phone.equals(inputPhone) && code.equalsIgnoreCase(inputCode)){
return "success";
}else{
return "failure";
}
}

以上所述是小編給大家介紹的Spring MVC 中 短信驗證碼功能的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://my.oschina.net/chendongj/blog/753785

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好涨好大我快受不了了视频网 | 亚洲激情在线视频 | 欧美洲大黑香蕉在线视频 | 亚洲国产精品ⅴa在线观看 亚洲国产高清一区二区三区 | 亚洲国产资源 | 毛片a区 | 黑人巨大和日本娇小中出 | 久久国产精品高清一区二区三区 | 日本激情网 | 男同精品视频免费观看网站 | 波多野结衣黑人系列在线观看 | 日本 片 成人 在线 日b视频免费 | sex5·性屋娱乐 | 99av涩导航| 青草悠悠视频在线观看 | 欧美猛男同志同性video | 久久久无码精品无码国产人妻丝瓜 | 99热国产在线观看 | 国产高清露脸学生在线观看 | 四虎库 | 欧美一区二区免费 | 贰佰麻豆剧果冻传媒一二三区 | 亚洲国产成人精品不卡青青草原 | 国产日本韩国不卡在线视频 | 久久久久久久久a免费 | 国内永久第一免费福利视频 | 国产成人精品999在线 | 欧美高清片 | 天天色天天综合 | 欧美巨胸| 亚洲高清中文字幕一区二区三区 | 99只有精品 | 亚洲国产精品一区二区久久 | 日本剧情片在线播放中文版 | 奇米影视在线视频 | 国内精品久久久久影院男同志 | 俄罗斯图书馆无打码久久 | 国产成人夜色影视视频 | 男生的j桶女人屁免费视频 男生操男生 | 国产精品高清一区二区三区不卡 | 九九热国产视频 |