最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實現(xiàn)短信驗證碼5分鐘有效時間

 更新時間:2020年10月11日 11:04:06   作者:kidQ  
這篇文章主要為大家詳細介紹了java實現(xiàn)短信驗證碼5分鐘有效時間,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

實現(xiàn)一個發(fā)送短信驗證碼的請求,要求5分鐘之內重復請求,返回同一個驗證碼。

網上可找到幾種方案:

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

實現(xiàn)步驟: (springmvc)

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

@RequestMapping(value = "sendMessage",method = RequestMethod.GET)
public Object sendMessage(final HttpServletRequest request){
 String phone=request.getParameter("phone");
 int times=userService.messageSendToday(phone); //二次驗證,單個手機號每日發(fā)送上限
 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實現(xiàn)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實現(xiàn)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);

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

相關文章

  • java JSP開發(fā)之Spring中Bean的使用

    java JSP開發(fā)之Spring中Bean的使用

    這篇文章主要介紹了java JSP開發(fā)之Spring中Bean的使用的相關資料,在Spring中,bean的生命周期就比較復雜,這里就詳細介紹下,需要的朋友可以參考下
    2017-08-08
  • Java 開啟多線程常見的4種方法

    Java 開啟多線程常見的4種方法

    本文主要介紹了Java 開啟多線程常見的4種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Java中EnumMap和EnumSet枚舉操作類的簡單使用詳解

    Java中EnumMap和EnumSet枚舉操作類的簡單使用詳解

    這篇文章主要介紹了Java中EnumMap和EnumSet枚舉操作類的簡單使用詳解,EnumMap是Map接口的一種實現(xiàn),專門用于枚舉類型的鍵,所有枚舉的鍵必須來自同一個枚舉?EnumMap不允許鍵為空,允許值為空,需要的朋友可以參考下
    2023-11-11
  • Java中創(chuàng)建對象的5種方式總結

    Java中創(chuàng)建對象的5種方式總結

    本篇文章主要介紹了Java中創(chuàng)建對象的5種方式總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)

    Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)

    這篇文章主要給大家介紹了關于Java多線程之JUC(java.util.concurrent)的常見類(多線程編程常用類)的相關資料,Java中的JUC(java.util.concurrent)包提供了一些并發(fā)編程中常用的類,這些類可以幫助我們更方便地實現(xiàn)多線程編程,需要的朋友可以參考下
    2024-02-02
  • jcl與jul?log4j1?log4j2?logback日志系統(tǒng)機制及集成原理

    jcl與jul?log4j1?log4j2?logback日志系統(tǒng)機制及集成原理

    這篇文章主要介紹了jcl與jul?log4j1?log4j2?logback的集成原理,Apache?Commons-logging?通用日志框架與日志系統(tǒng)的機制,有需要的朋友可以借鑒參考下
    2022-03-03
  • 一文詳解如何通過Java實現(xiàn)SSL交互功能

    一文詳解如何通過Java實現(xiàn)SSL交互功能

    這篇文章主要為大家詳細介紹了如何通過Java實現(xiàn)SSL交互功能,文中的示例代碼講解詳細,對我們的學習或工作有一定的幫助,需要的可以參考一下
    2023-04-04
  • java簡單冒泡排序實例解析

    java簡單冒泡排序實例解析

    這篇文章主要為大家詳細介紹了java簡單冒泡排序實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 基于Tomcat7、Java、WebSocket的服務器推送聊天室實例

    基于Tomcat7、Java、WebSocket的服務器推送聊天室實例

    HTML5 WebSocket實現(xiàn)了服務器與瀏覽器的雙向通訊,本篇文章主要介紹了基于Tomcat7、Java、WebSocket的服務器推送聊天室實例,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12
  • jdk8升級到jdk11如何升級的真實案例(親身經歷)

    jdk8升級到jdk11如何升級的真實案例(親身經歷)

    JDK11升級因G1GC性能提升及Spring?Boot?2.7+不再支持Java?8,需調整依賴和GC參數(shù),帶來內存優(yōu)化和性能提升(如TPS增70%),并增強String、Files、Stream等API及新HTTP?Client
    2025-10-10

最新評論

宣武区| 鸡西市| 乐至县| 大港区| 东明县| 电白县| 平阴县| 韩城市| 丽江市| 富宁县| 罗江县| 开封县| 怀仁县| 尖扎县| 安顺市| 德保县| 姜堰市| 台中县| 张掖市| 沅陵县| 兰溪市| 成安县| 湛江市| 中宁县| 砚山县| 阿图什市| 时尚| 广饶县| 庆阳市| 双辽市| 马山县| 特克斯县| 上饶市| 碌曲县| 大悟县| 龙陵县| 那曲县| 吉木萨尔县| 曲靖市| 东方市| 沅陵县|