国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java實現短信驗證碼5分鐘有效時間

2024-07-14 08:41:36
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java實現短信驗證碼5分鐘有效時間,供大家參考,具體內容如下

實現一個發送短信驗證碼的請求,要求5分鐘之內重復請求,返回同一個驗證碼。 

網上可找到幾種方案: 

如,存儲數據庫或緩存中。實現起來比較麻煩,舍棄; 
另一種方式即本例,使用session存儲。其他方式,暫未進一步了解。

實現步驟: (springmvc) 

1、controller中,獲取session對象,取code,取不到新生成,并存儲session中; 
2、單手機號發送量,判斷并 +1 記入數據庫; 
3、Timer定時器,設置新線程延時執行TimerTask任務(刪除code)

@RequestMapping(value = "sendMessage",method = RequestMethod.GET)public Object sendMessage(final HttpServletRequest request){  String phone=request.getParameter("phone");  int times=userService.messageSendToday(phone);  //二次驗證,單個手機號每日發送上限  if(times <= MAX_PER_DAY){    String checkCode=GenerateRandomCode.createRandomNumber(6);    final HttpSession httpSession=request.getSession();    httpSession.setAttribute("checkCode",checkCode);    CheckCodeMessage checkCodeMessage=new CheckCodeMessage(phone,checkCode);    try {      HttpSender.batchSend(checkCodeMessage);      //TimerTask實現5分鐘后從session中刪除checkCode      final Timer timer=new Timer();      timer.schedule(new TimerTask() {        @Override        public void run() {          httpSession.removeAttribute("checkCode");          System.out.println("checkCode刪除成功");          timer.cancel();        }      },5*60*1000);    } catch (Exception e) {      e.printStackTrace();    }    return "redirect:/index.jsp";  }}

Timer定時任務:

//TimerTask實現5分鐘后從session中刪除checkCodefinal Timer timer=new Timer();timer.schedule(new TimerTask() {  @Override  public void run() {    httpSession.removeAttribute("checkCode");    System.out.println("checkCode刪除成功");    timer.cancel();  }},5*60*1000);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆林| 清水河县| 红安县| 威海市| 南丹县| 宁乡县| 武夷山市| 凌海市| 东安县| 彰化县| 临泽县| 富锦市| 广丰县| 长宁县| 嘉禾县| 永川市| 石景山区| 湘阴县| 利辛县| 庄河市| 冀州市| 长寿区| 盖州市| 新干县| 浠水县| 崇州市| 怀宁县| 瑞丽市| 赣榆县| 澄江县| 正宁县| 青浦区| 巴青县| 上杭县| 衡阳县| 达拉特旗| 精河县| 民权县| 汉源县| 北京市| 溆浦县|