本文实例为大家分享了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中删除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短信验证码失效时间_java实现短信验证码5分钟有效时间相关推荐

  1. java短信验证码失效时间_Java实现短信验证码--设置发送间隔时间,以及有效时间(Java+Redis)...

    Java实现短信验证码--设置发送间隔时间,以及有效时间(Java+Redis) 这篇文章,实现了Java发送手机短信验证码发送的间隔时间,以及手机验证码的有效时间和手机验证码格式的合法性验证,可以防 ...

  2. java中短信验证登录_java实现短信验证码功能

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这几天老大让我弄一个发送短信验证码的功能,使用的是大汉云通讯的短信平台接口,调用短信平台提供的接口(遵循短信平台的接口规范即可).具体看代码: impor ...

  3. Java设置短信间隔时间_Java实现短信验证码--设置发送间隔时间,以及有效时间(Java+Redis)...

    标签:url   control   operation   短信验证码   reg   cep   ppi   任务   用户 Java实现短信验证码--设置发送间隔时间,以及有效时间(Java+R ...

  4. java发送短信是乱码_java发送短信内容乱码

    一.场景: 1.我在客户端要通过get方式调用服务器端的url,将中文参数做utf-8编码,需要在js中两次的进行编码,服务器端才能用decode方法一次获取. 例如: var xing=encode ...

  5. java 拖动验证码实现_java实现拖动图片验证码

    思路是,对原图产生两张图片,一张是底图,被抠掉一部分的图片,另外一张是移动图,被抠出的来部分 只写了后台怎么生成拖动验证码的两个图片,前端的还没写,待续.以下是后台的代码 class="ja ...

  6. java发送qq邮箱验证_java代码发送邮箱验证码与qq邮箱smtp服务

    importjavax.mail.Session;importjavax.mail.Transport;importjavax.mail.internet.InternetAddress;import ...

  7. java 登陆短信验证码_Java实现短信验证码

    原标题:Java实现短信验证码 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 短信验证码 短信验证码都是调 ...

  8. java短信验证平台_JAVA实现利用第三方平台发送短信验证码

    前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例, ...

  9. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用...

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

最新文章

  1. Java 8 一行代码解决了空指针问题,太厉害了...
  2. Linux内核ipsec密码库,关于2.6.18 ipsec内核支持(NETKEY)的问题
  3. pythonweb开发面试_Python web 面试题(一)
  4. YARP(Yet Another Reverse Proxy)是使用 .NET 构建的高度可定制的反向代理
  5. leetcode剑指 Offer 14- I. 剪绳子(动态规划)
  6. linux非编工作站,高清EDIUS非编网络系统建设 在线非编系统
  7. struts2学习笔记(一) MVC模式
  8. 烂泥:Postfix邮件服务器搭建之软件安装与配置
  9. sql有循环吗_我把 SQL 执行效率提高了 10,000,000 倍!
  10. 个人随笔——衰人自叙卷贰
  11. 遗传算法解决作业调度c语言,应用遗传算法解决车间作业调度问题
  12. JAVA项目案例模板,仅供参考怎么写
  13. Windows 虚拟机介绍以及安装系统教程
  14. Java新手入门值得看的五本书!
  15. win7 旗舰版激活工具(附件下载)
  16. 计算机d盘可以格式化吗,d盘怎么格式化
  17. 【总结】计算机网络原理
  18. Supervisor 命令
  19. 职业规划要看的书单。
  20. 测试数据准备之 CMD 命令:copy(指定尺寸图片1M放大成6M)

热门文章

  1. 你所理解的新鲜感是什么呢?
  2. 用Keras单层网络预测银行客户流失率
  3. 鼻炎的症状主要体现哪些方面?
  4. 大数据科学与工程专业毕业设计选题汇总
  5. 从实际业务出发,浅显的聊聊如何理解领域驱动设计
  6. python使用线程解决窗口卡顿问题
  7. JavaScript输出语句,输入框,确认框
  8. particles超炫酷的粒子背景特效
  9. 用python画的炫酷图形_推荐一个炫酷Python 手绘图形库
  10. SQLite损坏修复