上周由於其他的工作繁忙,都沒時間來寫博客,這不一有時間,就馬上來寫最近實現的性功能了。
這篇主要講的是怎么讓短信驗證碼具有時效性,我手上的項目要求的時效性是5分鍾,那么話不多說,我就開始碼代碼了~這里主要還用到了第三方的短信接口,互億無線短信平台。www.ihuyi.com
實現步驟:(springmvc)
1、controller中,獲取session對象,取code,取不到新生成,並存儲session中;
2、單手機號發送量,判斷並+1記入數據庫;
3、Timer定時器,設置新線程延時執行TimerTask任務(刪除code)
@RequestMapping(value="sendMessage",method=RequestMethod.GET)
publicObjectsendMessage(finalHttpServletRequestrequest){
Stringphone=request.getParameter("phone");
inttimes=userService.messageSendToday(phone);//二次驗證,單個手機號每日發送上限
if(times<=MAX_PER_DAY){
StringcheckCode=GenerateRandomCode.createRandomNumber(6);
finalHttpSessionhttpSession=request.getSession();
httpSession.setAttribute("checkCode",checkCode);
CheckCodeMessagecheckCodeMessage=newCheckCodeMessage(phone,checkCode);
try{
HttpSender.batchSend(checkCodeMessage);
//TimerTask實現5分鍾后從session中刪除checkCode
finalTimertimer=newTimer();
timer.schedule(newTimerTask(){
@Override
publicvoidrun(){
httpSession.removeAttribute("checkCode");
System.out.println("checkCode刪除成功");
timer.cancel();
}
},5*60*1000);
}catch(Exceptione){
e.printStackTrace();
}
return"redirect:/index.jsp";
}
}