java之短信验证

      

      之前写过c#短信验证博客《c#_完美实现短信验证》,应该说都是刚开始无从下手,但久而久之,自然明白了无非就是一些人家第三方封装好的接口,然后自己传参,仅此而已。

      今天小编再次带你参观java版的手机短信验证,很有意思的,大致和c#相同,但也有不同之处了。

       首先,给你们看看效果图的啦!


        然后我宏观说一下代码实现思路,当然首先的手机格式验证什么的,都不说了啊,直接聊主题:点击发送验证码后,根据短信验证码接口(天下畅通平台提供的接口)提供的参数,进行传参,然后发送,捕获异常,搞定,只不过java这边需要进入两个java类,也是人家封装好的,直接放到自己的工具类调用即可。

      然后,看前台的jsp代码中'获取验证码'的代码:(避免刷新页面,所以异步获取

	//ajax异步“获取验证码” 
	function verifyPhone(){
			
			var code = ""; //验证码    
			var codeLength = 6;//验证码长度  
			var usertel = $('#tel').val();
			// 产生验证码    
	        for ( var i = 0; i < codeLength; i++) {    
	            code += parseInt(Math.random() * 9).toString();    
	        }  
			// 1.创建异步交互对象
			var xhr = createXmlHttp();
			// 2.设置监听
			xhr.onreadystatechange = function(){
				if(xhr.readyState == 4){
					if(xhr.status == 200){
					}
					else{
						document.getElementById("telephonenameTip").innerHTML = "<font color='red'>× 网路异常</font>";
					}
				}
			}
			// 3.打开连接
			xhr.open("GET","<%=rootPath%>"+"/VerifyPhone?usertel="+usertel+"&code=" +code,true);
			// 4.发送
			xhr.send(null);
		}
		
		//创建异步交互对象
		function createXmlHttp(){
			var xmlHttp;
			try{
				xmlHttp = new XMLHttpRequest();
			}catch(e){
				try{
					//IE
					xmlHttp = new ActiveXobject("Msxml2.XMLHTTP");
				}catch(e){
					try{
						xmlHttp = new ActiveXobject("Microsoft.XMLHTTP");
					}catch(e){}
				
				}
			}
			return xmlHttp;
			
		}
        后台controller代码:

	/*
	 * 校验手机验证码
	 */
	@RequestMapping("VerifyPhone")
	public String VerifyPhone(String clientId,HttpServletRequest request,
			HttpServletResponse response) throws UnsupportedEncodingException  {
		//短信验证码接口的测试数据(天下畅通平台给参数)  
		String result = "0";  
		String usertel =request.getParameter("usertel");
		String code = request.getParameter("code");
	    <span style="white-space:pre">	</span>String url = "http://xtx.telhk.cn:8080/sms.aspx";  
	    <span style="white-space:pre">	</span>String userid = "****";  
	    <span style="white-space:pre">	</span>String account = "****";  
	    <span style="white-space:pre">	</span>String password = "*****";  
	    <span style="white-space:pre">	</span>String content = "[微信装修平台]注册验证码为:" + code.toString(); 
	 	String mobile = usertel;
	 	String action=null;
		usertel = Util.trim(usertel);
		code = Util.trim(code);
   
	    /** 短信验证码存入session(session的默认失效时间30分钟) */    
	     //request.setAttribute("code", code.toString());  
	     Cookie cookieCode=new Cookie("code",code);
         cookieCode.setPath("/");
         String IdDomain = request.getServerName();
         cookieCode.setDomain(IdDomain);
         cookieCode.setMaxAge(cookieAge);
         response.addCookie(cookieCode);
	     //String a = (String)request.getAttribute("code");   
         
	     try {    
	            String  retObj = SmsClientSend.sendSms(url,action, userid, account, password, mobile, content); 
	            //System.out.println(retObj);  
	            if (retObj == "未发送,编码异常") {     
	                JacksonJsonUntil jacksonJsonUtil = new JacksonJsonUntil();
	                boolean flag;
	                flag = false;
	                jacksonJsonUtil.beanToJson(response, flag);
	            } else {    
	               request.setAttribute("bool", true);  
	            }   
	        } catch (Exception ex) {    
	            ex.printStackTrace();     
	        }    

		return "verifyPhone";
	}
       然后中间需要引入两个java包,有需要的童鞋可以联系我的!


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值