我的qq  2038373094

1、借助第三方免费的sdk接口,下载java sdk

http://smsow.zhenzikj.com/doc/sdk.html

下载后的SDK只包含一个jar文件,并且不依赖任何其他jar包或文件,直接导入到工程中即可使用。

 把下载结束的jar包导入工程中

2、还需要带入三个包:https://download.csdn.net/download/qq_37591637/11162911

commons-httpclient-3.1.jar

commons-logging-1.0.4.jar

codec-1.3.jar

3、查看自己的AppId、AppSecret,这个后面会用到


4、可以编辑短信模板,这样的好处不需要每次发送短信都要输入


思路:

1、前端用户填写手机号码,点击发送校验码,点击这个事件把手机号码通过ajax传给后台

2、后台随机生成一个校验码,把这个校验码通过短信接口发送给相应的手机用户

3、后台把校验码和当前的时间存储起来,当用户在前端页面填写校验码的时候,把两个值进行比较,把两个时间做差,5分钟之内或者半个小时之内;


jsp代码如下

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>手机获取校验码操作</title><script src="js/jquery-3.3.1.min.js"></script>
<script src="js/regedit.js"></script>
</head>
<body><form><div>手机号: <input type="text" id="number"></div><div>验证码: <input type="text" id="jym"><button type="button" onclick="getmess()">获取短信验证码</button></div><div><button type="button" class="sub-btn"  onclick="check()">提交</button></div></form>
</body>
</html>

java后台代码

我采用的是ssh框架

package cn.com.service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;
import com.zhenzi.sms.ZhenziSmsClient;
@Repository(value="getMessage")
@Scope("prototype")
public class GetMessage {
private String tell;public String getTell() {return tell;
}public void setTell(String tell) {this.tell = tell;
}public String sendSms() {JSONObject json=null;//生成6位验证码String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);//发送短信ZhenziSmsClient client = new ZhenziSmsClient("https://sms_developer.zhenzikj.com", "你的id", "你的密钥");String result;try {result = client.send(tell, "在线心理测试平台,您的验证码为:" + verifyCode + ",该码有效期为5分钟,若非本人操作,请忽略这条信息");json = JSONObject.fromObject(result);} catch (Exception e1) {e1.printStackTrace();}if(json.getInt("code") != 0){System.out.println("发送短信失败");}//将验证码给前台做校验HttpServletResponse response=ServletActionContext.getResponse();JSONObject js=new JSONObject(); js.put("screct", verifyCode);try {response.getWriter().write(js.toString());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;
}
}

js代码

var jym;
var time;
function getmess(){//1.获取手机号码var tell=$("#number").val();//开始ajax$.ajax({type : "post",url : "http://localhost:8080/PsychoSys/sendmess.action",dataType :"text",data : {tell : tell},success : function(ret) {//关闭模态框var jb= eval('(' + ret + ')');  //根据:分成前后两个,然后前面的校验码,后面的是时间,存储起来为全局变量jym=jb.screct;//获取当前的时间time =new Date().getTime();alert(jym);},})//开始ajax
}
function check(){var my=$("#jym").val();var time1 =new Date().getTime();var zc=(time1-time)/300000;alert(zc);if(my==jym&&zc<5){alert("输入正确");}else{alert("输入错误");}
}

不足之处

1、还有需要完善的地方,点击获取验证码,是1分钟才能点击一次的

2、点击验证码会有倒计时

java+jsp如何实现发送手机短信验证登录相关推荐

  1. 利用java实现的一个发送手机短信的小例子

    今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...

  2. java 发送短信例子_利用java实现的一个发送手机短信的小例子

    今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...

  3. java实现的一个发送手机短信

    利用java实现的一个发送手机短信的小例子 JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注 ...

  4. Vue与Node.js实现手机短信验证登录

    手机短信使用的第三方平台是联容云,注册就送8块钱体验费,足够自己用用了,注册完自己建一个应用就能拿到需要使用的配置了,如图 注册完之后1就可以使用了. Node.js后端使用了Express框架 &q ...

  5. Java实现的一个发送手机短信(亲测可用)

    原文地址:http://sms.webchinese.cn/api.shtml JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webs ...

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

    原文地址:  http://blog.csdn.net/sxdtzhaoxinguo/article/details/34437591 近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用 ...

  7. Java基于网易云信实现手机短信验证

    本文只是网易云信开发文档中的一个简单的例子,详情大家可以去看网易云信的开发手册.(后续可能会把这demo应用到web项目的登录中去,到时候会把GitHub链接贴过来) 网易云信网址 首先进入网易云信, ...

  8. 瑞吉外卖项目中手机短信验证登录的问题及过程处理

    瑞吉外卖中手机短信验证码登陆的问题以及过程整理 本篇接上一篇文章: <基于SpringBoot+MybatisPlus开发的外卖管理项目>戳戳戳 http://t.csdn.cn/cRJY ...

  9. PHP 发送手机短信验证

    首先我们要清楚以下要点: 1.短信平台 2.编码模式 3.curl方法 4.接口参数 5.返回值(成功/失败) 我们开始吧: 1.短信平台,有很多,当初同学介绍给我,是"阿里大于" ...

最新文章

  1. 从Java 9 到 Java 17之Java 12
  2. React+webpack热更新配置
  3. 那些年,我的数据结构课设,现在满满的回忆!(现如今身处内卷之中,已经很难出现当初那份乐趣了)
  4. Vue电商后台B站的项目需要的材料 密码等
  5. 生成二维码接口,前端调用接口将二维码显示在页面上
  6. 了解.NET中的垃圾回收
  7. redis info信息注解
  8. 5000+ 字解读 | 产品经理:如何做好元器件选型?
  9. python在统计专业的应用_Python统计学statistics实战
  10. 使用PS制作背景透明的png图片
  11. 如何给域名前加上 www
  12. --随笔--带你轻松理解TCP中的三次握手
  13. 如何制作纯文字视频快闪视频
  14. 锁屏显示Activity
  15. stm32与驱动器AS1106驱动数码管显示
  16. JDBC操作达梦数据库
  17. 多任务多目标 CTR 预估技术
  18. Yii2邮箱发送与配置
  19. 动态网站与数据库的连接
  20. 上海发挥龙头带动作用 推进长三角一体化发展示范区建设

热门文章

  1. 平安科技安全产品经理面试经历分享
  2. 百度地图输入经纬度获取运行轨迹
  3. 如何制定GRE作文提纲
  4. arm c语言开发环境搭建,利用proteus学习ARM(LPC2103)之二:熟悉IAR C语言开发环境...
  5. 【223中等】矩形面积
  6. 作业与作业调度--四种调度算法
  7. 使用ArcGIS绘制GTA 5 中洛圣都地图(可能是全网第一个)
  8. python async 使用,介绍
  9. 可以当显示器的android平板,联想Yoga X曝光:一款可以当显示器使用的安卓平板...
  10. 你所不知道的抖音赚钱方法,原来可以这样玩!