import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.taobao.api.ApiException;
import com.taobao.api.DefaultTaobaoClient;
import com.taobao.api.TaobaoClient;
import com.taobao.api.request.AlibabaAliqinFcSmsNumSendRequest;
import com.taobao.api.response.AlibabaAliqinFcSmsNumSendResponse;
@WebServlet("/getCode.do")
public class SendMsg extends HttpServlet{
@Override
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException{
//产生六位的随机数
String code = "";
for(int i = 0 ;i<6;i++){
code+=(int)Math.floor(Math.random()*10);
}
String phone = request.getParameter("phone");
//将验证码存储到session中
request.getSession().setAttribute("code",code);
//request.getSession().getAttribute("code")==
sendMsg(phone,code);
response.getWriter().print(phone+":"+code);
}
private void sendMsg(String phone,String code){
TaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "24670608", "cc859481fc296b301d2ed367b7d78df2");
AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
req.setExtend("");
req.setSmsType("normal");
req.setSmsFreeSignName("猿说教育");
req.setSmsParamString("{\"code\":\""+code+"\"}");
req.setRecNum(phone);
req.setSmsTemplateCode("SMS_74820011");
AlibabaAliqinFcSmsNumSendResponse rsp;
try {
rsp = client.execute(req);
System.out.println(rsp.getBody());
} catch (ApiException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
页面代码 div + css样式展现页面绚丽效果:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>猿说教育-手机短信验证系统</title>
<style type="text/css">
body{
background: #39393d;
color: #fff;
}
.box{
width: 400px;
/* border: 1px solid #fff; */
margin: 80px auto;
padding: 30px;
background: rgba(247,247,247,0.15);
box-shadow: 0px 0px 19px #fff;
border-radius: 16px;
}
h3{
text-align: center;
text-shadow: 3px 3px 2px #000;
}
.content{
background: rgba(108, 127, 207, 0.1);
height: 200px;
}
.controller{
margin-top: 20px;
padding-left: 20px;
padding-top: 20px;
}
input{
background: none;
border: none;
border-bottom: 1px solid #b2abab;
color: #fff;
outline: none;
font-size: 16px;
}
a{
color: #fff;
margin-left: 20px;
}
button{
width: 100px;
font-size: 20px;
background: #857bcb;
color: #fff;
border: none;
padding: 10px;
outline: none;
cursor: pointer;
box-shadow: 0px 0px 1px 1px #fff;
margin: 0 auto;
display: block;
}
button:hover{
box-shadow:0px 0px 2px 2px #97bdee;
}
</style>
</head>
<!--
静态化,敲什么代码出什么效果,固定的
HTML 系统界面的内容
CSS 系统界面的风格
JAVASCRIPT 系统界面的功能
-->
<body>
<!-- 面板 start -->
<div class="box">
<h3>[猿说教育]手机短信验证系统</h3>
<div class="content">
<div class="controller">手机号码:<input type="text" id="phone"/></div>
<div class="controller"><input type="text" id="validaeCode"/><a href="javascript:void(0);" id="getCode">获取验证码</a></div>
<div class="controller"><button >校验</button></div>
</div>
</div>
<!-- 面板 end -->
<script type="text/javascript">
var obj = document.getElementById("getCode");
var flag = 10;
obj.οnclick=function(){
if(flag<10){return;}
//ajax引擎
var xhr = new XMLHttpRequest();
xhr.open("get","getCode.do?phone="+document.getElementById("phone").value,true);
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
alert(xhr.responseText);
}
}
xhr.send(null);
//发送验证请求
timer();
}
function timer(){
flag--;
obj.innerHTML=flag+"秒之后重新获取!";
if(flag==0){
obj.innerHTML="获取验证码";
flag = 10;
}else{
setTimeout("timer()",1000);
}
}
</script>
</body>
</html>
需要的jar包:
taobao-sdk-java-auto_1455552377940-20160607.jar
commons-logging-1.2.jar