欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

實(shí)現(xiàn)一個(gè)發(fā)送短信驗(yàn)證碼的請(qǐng)求,要求5分鐘之內(nèi)重復(fù)請(qǐng)求,返回同一個(gè)驗(yàn)證碼。

網(wǎng)上可找到幾種方案:

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

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

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

@RequestMapping(value = "sendMessage",method = RequestMethod.GET)
public Object sendMessage(final HttpServletRequest request){
 String phone=request.getParameter("phone");
 int times=userService.messageSendToday(phone); //二次驗(yàn)證,單個(gè)手機(jī)號(hào)每日發(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實(shí)現(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定時(shí)任務(wù):

//TimerTask實(shí)現(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);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • RabbitMQ消息隊(duì)列之持久化機(jī)制詳解

    RabbitMQ消息隊(duì)列之持久化機(jī)制詳解

    這篇文章主要介紹了RabbitMQ消息隊(duì)列之持久化機(jī)制詳解,持久化,即將原本存在于內(nèi)存中的數(shù)據(jù)寫入到磁盤上永久保存數(shù)據(jù),防止服務(wù)宕機(jī)時(shí)內(nèi)存數(shù)據(jù)的丟失,Rabbitmq 的持久化分為隊(duì)列持久化、消息持久化和交換器持久化,需要的朋友可以參考下
    2023-08-08
  • Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題

    Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題

    這篇文章主要介紹了Mybatis-plus foreach拼接字符串查詢無數(shù)據(jù)返回問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java布隆過濾器的原理和實(shí)現(xiàn)分析

    Java布隆過濾器的原理和實(shí)現(xiàn)分析

    數(shù)組、鏈表、樹等數(shù)據(jù)結(jié)構(gòu)會(huì)存儲(chǔ)元素的內(nèi)容,一旦數(shù)據(jù)量過大,消耗的內(nèi)存也會(huì)呈現(xiàn)線性增長(zhǎng)所以布隆過濾器是為了解決數(shù)據(jù)量大的一種數(shù)據(jù)結(jié)構(gòu)。本文就來和大家詳細(xì)說說布隆過濾器的原理和實(shí)現(xiàn),感興趣的可以了解一下
    2022-10-10
  • Java的Channel通道之FileChannel類詳解

    Java的Channel通道之FileChannel類詳解

    這篇文章主要介紹了Java的Channel通道之FileChannel類詳解,FileChannel類是Java NIO中的一個(gè)重要類,用于在文件中進(jìn)行讀寫操作,它提供了一種高效的方式來處理大文件和隨機(jī)訪問文件的需求,需要的朋友可以參考下
    2023-10-10
  • Java中String類(字符串操作)的10個(gè)常見問題和解決方法

    Java中String類(字符串操作)的10個(gè)常見問題和解決方法

    這篇文章主要介紹了Java中String類(字符串)操作的10個(gè)常見問題,需要的朋友可以參考下
    2014-04-04
  • java中Callback簡(jiǎn)單使用總結(jié)

    java中Callback簡(jiǎn)單使用總結(jié)

    正好學(xué)習(xí)到j(luò)ava Callback,就整理了一下,希望整理的文章內(nèi)容對(duì)大家有所幫助
    2017-04-04
  • SpringBoot中使用HTTP客戶端工具Retrofit

    SpringBoot中使用HTTP客戶端工具Retrofit

    這篇文章主要為大家介紹了SpringBoot中使用HTTP客戶端工具Retrofit方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 解決springboot配置logback-spring.xml不起作用問題

    解決springboot配置logback-spring.xml不起作用問題

    這篇文章主要介紹了解決springboot配置logback-spring.xml不起作用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot實(shí)現(xiàn)阿里云快遞物流查詢的示例代碼

    SpringBoot實(shí)現(xiàn)阿里云快遞物流查詢的示例代碼

    本文將基于springboot實(shí)現(xiàn)快遞物流查詢,物流信息的獲取通過阿里云第三方實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-10-10
  • Spring多個(gè)數(shù)據(jù)源配置詳解

    Spring多個(gè)數(shù)據(jù)源配置詳解

    在實(shí)際場(chǎng)景中,會(huì)有需要配置多個(gè)數(shù)據(jù)源的場(chǎng)景,本文就介紹一下如何配置Spring多數(shù)據(jù)源,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-08-08

最新評(píng)論