作用:模拟获取验证码,10s后,重新获取。未过期前不可重复获取;

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%//获取随机短信  --不使用了Random r = new Random();StringBuilder sb =  new StringBuilder();for(int i=0;i<=5;i++){int s = r.nextInt(10);sb.append(s);}%><!DOCTYPE HTML>
<html><head><title>短信验证码</title><script src="mobile/jquery-1.4.3.min.js" charset="utf-8"></script><link rel="stylesheet" href="mobile/mobile.css"><script type="text/javascript">$(function(){var code = 0;var flag = false;var get = false;$('#get').click(function(){if(flag)return;//未过期 不可再获取sendSmsCode();});function sendSmsCode(){//url:'getSms',      也可以//因为存在 异步执行的问题 所以 在ajax成功后,再设置某些值$.ajax({type : "POST",url  : '<%=path%>/getSms',data : {method:"getSmsCode"},dataType : "json",success : function(data) {code = data;$('#code').html('验证码为:'+code);$('#get').attr('disabled','true');flag = true;get = true;time();},error : function(data) {$('#code').html("对不起服务器繁忙,请稍后再试!");}});}function time(){var t = 10;var time = window.setInterval(function(){t--;$('#get').val(t+'秒后失效');if(t==0){$('#code').html('验证码已失效,请重新获取!');$('#get').val('获取验证码');$('#get').removeAttr('disabled');flag = false;send = false;clearInterval(time);}    },1000);}$('#in').click(function(){if(!get) {alert('请获取短信验证码!');return;}if(!flag) {alert('短信验证码已失效!');return;}var rs = $('input[name="sms"]').val();if(rs.length==0){alert('请输入短信验证码!');return;}if(rs != code){alert('短信验证码错误!');}else{alert('正确!');}});});</script></head><body><div><br/><h3 style="margin-left:110px">短信验证码 倒计时重新获取</h3></br><span style="margin-left:100px;font-weight:bold;color:red">短信验证码:</span> <input type="text" style="margin-left:0px;width:85px;font-weight:bold;" name="sms" placeholder="请输入验证码"/><input type="button" style="height:30px;width:90px;color:blue;font-weight:bold;margin-left:10px" id="get" value="获取验证码"/><br/><span id="code" style="margin-left:150px;color:red"></span><br/></div><br/><input type="button" style="margin-left:130px;height:30px;width:200px;color:blue;font-weight:bold" value="确定并提交" id="in"/></body>
</html>

后台随机产生验证码:

public class SmsService extends HttpServlet {private static final long serialVersionUID = 5846536395092919495L;@Overridepublic void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String param = request.getParameter("method");System.out.println("================");System.out.println("param="+param);System.out.println("================");Random r = new Random();StringBuilder sb =  new StringBuilder();for(int i=0;i<=5;i++){int s = r.nextInt(10);sb.append(s);}System.out.println("短信验证码 :"+sb);PrintWriter pw = response.getWriter();pw.write(sb.toString());pw.flush();pw.close();}}

效果示意--

Java技术圆桌会-微信群,欢迎大家的加入,专注技术讨论和学习。

加入的同学可以先加我微信:surwen0988 备注-圆桌会,然后拉你进群。

验证码过期(小功能)相关推荐

  1. php实现短信找回密码,thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能...

    thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能 发布时间:2020-12-11 12:33:42 来源:亿速云 阅读:60 作者:小新 小编给大家分享一下thinkphp5怎么调用云 ...

  2. java 后端 验证码逻辑_Java后端产生验证码后台验证功能的实现代码

    直接跳severlet在java后台生成验证码: @RequestMapping(value="yzm.action") public void Yzm(HttpSession s ...

  3. vue3.0 抽奖 小功能

    vue3.0 抽奖 小功能 我给写进组件了 <template><div id="toll"><div class="lottery-box ...

  4. html5实现短信验证修改密码,thinkphp5如何调用云片接口实现发送短信验证码找回密码功能...

    下面由thinkphp框架教程栏目给大家介绍thinkphp5如何调用云片接口实现发送短信验证码找回密码功能,希望对需要的朋友有所帮助! 思路: 1.用户输入手机号,请求获取短信验证码. 2.thin ...

  5. 如何使用短信验证码完成注册功能

    如何使用短信验证码完成注册功能 一. MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithm ...

  6. iOS 生成带 logo 的二维码,区域截屏保存至相册(小功能二连发 (一))

    原文链接:http://www.jianshu.com/p/36e9f012ef39 生成带 logo 的二维码 区域截屏相关 -- 由3033分享 开篇 最近项目需要搞了几个相对独立的小功能,今天有 ...

  7. 高德地图小蓝点_一会晴天一会下雨?夏日想要顺利出行 高德地图这些小功能最实用...

    不同于其他三个季节,夏天总是有很多种烦恼,变化不定的天气就是其中最为影响出行的一项因素.而面对忽晴忽雨的天气,如何才能在夏日顺利出行呢?看看高德地图的这些实用小功能吧. ·实时天气预报 高德地图可以实 ...

  8. 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。...

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 简介 iOS中的很多小功能都 ...

  9. 手机息屏后停止_手机息屏还能这样玩?华为这几个隐藏小功能快学起来

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 注:本文转载自网络,如有侵 ...

最新文章

  1. 珍惜那些爱你的人,不要令他们失望,加油吧,我们。
  2. 国密算法椭圆曲线参数
  3. python xlsx 大文件_Python这样操作能存储100多万行的xlsx文件!Python让你事半功倍!
  4. UIImageView圆角,自适应图片宽高比例,图片拉伸,缩放比例和图片缩微图
  5. JavaEE实战班第十七天
  6. [luoguP2679] 子串(DP)
  7. XMLHttpRequset发送GET请求
  8. 离散数学第二版屈婉玲教材pdf_离散数学 第二版 [屈婉玲,耿素云,张立昂 编著] 2015年版...
  9. python3.5手册下载_python3.5.2官方帮助文档 参考手册(CHM版)
  10. 人人商城小程序 java版_人人商城小程序用户授权问题
  11. laravel 图片流_laravel 做图片的缩略图 踩坑
  12. 人工智能学习常用网站推荐
  13. 《重构》一书总结(二)
  14. 如何制作3D动画人物
  15. python报错(一):takes no arguments
  16. C++ switch怎么用
  17. 【AIGC使用教程】Notion AI 从注册到体验:如何免费使用
  18. 分析天平计算机分类,分析化学之分析天平的概述和分类
  19. 基于树莓派实现AS608指纹识别
  20. arduino uno r3单片机封装图_单片机控制的OLED简易电子表原型

热门文章

  1. 题目 1343. 挤牛奶
  2. Python实现发短信
  3. 计算机网络——网络层之移动IP
  4. 程序设计大作业:教务管理系统(C语言)
  5. 《pyMail.py》使用说明
  6. 撑起“Web III”的支柱:信息 + 契约 + 身份
  7. Space Invaders 太空侵略者
  8. 全国计算机考的是ms还是mps,请问有没有人了解Cornell的MPS program啊
  9. SAP批次管理-内容概览
  10. 云米冰箱能控制扫地机器人_在云米的大屏冰箱就能操控其他智能家电?一起到京东618了解更多...