/**
 * 获取手机验证码的方法
 */
var loopObjBindMobil = null;
var secondsBindMobil = 0;
function hqBindYzm(moblieName, phoneErrorMessage, getMobilCodeButton) {
    var successmobileToken = $("#successmobileToken").val();
    var phoneValue = $("#" + moblieName).val();
    if (secondsBindMobil > 0) {
        return;
    }
    if ($("#" + getMobilCodeButton).attr("disabled")) {
        return;
    }

    $("#" + getMobilCodeButton).attr("disabled", "disabled");

    if (phoneValue != "") {
        if (onBlurMobilInput()) {
            $.post(
                appPath + "/memberCenter/getValidateCount.html",
                {
                    phone: phoneValue
                },
                function (data) {
                    if (data == "have") {
                        $("#" + phoneErrorMessage).text("手机已被人验证");
                        $("#" + getMobilCodeButton).removeAttr("disabled");
                    } else {
                        $.post(
                            appPath + "/memberCenter/sendPhoneCode.html",
                            {
                                mobileToken: successmobileToken,
                                phoneNum: phoneValue
                            },
                            function (data) {
                                if (data == "yes") {
                                    //                                                $("#mobiletext").show();
                                    clearInterval(loopObjBindMobil);
                                    secondsBindMobil = 60;
                                    loopObjBindMobil = window.setInterval(function () {
                                        UpdateTime(getMobilCodeButton);
                                    }, 1000);
                                } else if (data == "yyz") {
                                    $("#" + phoneErrorMessage).html("此账号已验证手机,无需再次验证,请到账户安全查看已验证手机");
                                    $("#" + getMobilCodeButton).removeAttr("disabled");
                                } else if (data == "errorNum") {
                                    $("#" + phoneErrorMessage).html("非健一网来客!");
                                    $("#" + getMobilCodeButton).removeAttr("disabled");
                                }
                            });
                    }
                }
            );
        } else {
            $("#mobilName").removeClass('text bian-01');
            $("#mobilName").addClass('text bian-02');
            $("#mobilStyle").removeClass('correct');
            $("#mobilStyle").addClass('error');
            $("#mobilErrorMsg").text('请输入正确的手机号');
            $("#" + getMobilCodeButton).removeAttr("disabled");
            return false;
        }
    } else {
        $("#mobilName").removeClass('text bian-01');
        $("#mobilName").addClass('text bian-02');
        $("#mobilStyle").removeClass('correct');
        $("#mobilStyle").addClass('error');
        $("#mobilErrorMsg").text('请输入手机号');
        $("#" + getMobilCodeButton).removeAttr("disabled");
        return false;
    }
}
     @RequestMapping(value = "/sendPhoneCode")
     @J1Page
     @SeoInfo
     public void sendPhoneCode(HttpSession session,
             HttpServletRequest request, HttpServletResponse response,
             MyMemberInfoPageInputVo inputVo,
             @ModelAttribute("model") MyMemberInfoPageModel model) {
         String phoneNum = "";// 手机号码
         String loginName = null;

         try {
 //            if (request.getParameter("phoneNum") != null) {
 //                phoneNum = request.getParameter("phoneNum").trim();
 //            }
             if (inputVo.getPhoneNum() != null) {
                 phoneNum = inputVo.getPhoneNum().trim();
             }
 //            String num = request.getParameter("mobileToken");
             String num = inputVo.getMobileToken();
             if (StringUtil.isNotEmpty(num)) {
                 String code;
                 response.setContentType("text/html;charset=utf-8");

                 if (request.getSession().getAttribute("loginName") != null) {
                     loginName = request.getSession().getAttribute("loginName").toString();
                 }
                 if (loginName != null) {
                     Member getMember = memberService.findMemberByLoginName(loginName);
                     if (!"Y".equals(getMember.getMobileState())) {
                         sendCode(request, response, loginName, num, phoneNum);
                     } else {
                         response.getWriter().write("yyz");
                     }
                 } else {
                     response.getWriter().write("errorNum");
                 }
             } else {
                 response.getWriter().write("errorNum");
             }
         } catch (IOException e) {
             // TODO Auto-generated catch block
             logger.error(e.getMessage(), e);
         }

     }

     public void sendCode(HttpServletRequest request,
             HttpServletResponse response, String loginName, String num,
             String phoneNum) {

         int validateCount = 1;// 验证的次数
         Boolean canSendSms = true;// 是否能发短信

         try {
             newMemberNameMapPhone = (Map<String, String>) cache.get(loginName
                     + "newMemberNameMapPhone");
             if (newMemberNameMapPhone == null) {
                 newMemberNameMapPhone = new HashMap<String, String>();
             }
             // 手机验证码
             String code = RandomUtils.generateNumberString(6);// 手机验证码

             String nowDay = StringUtil.returnDateFormat(new Date(),
                     "yyyy-MM-dd");
             String mobileValue = newMemberNameMapPhone.get(loginName);// 获取这个用户手机验证的value
             if (mobileValue == null) {// 说明该用户没有验证过手机记录
                 newMemberNameMapPhone.put(loginName, code + "_" + 1 + "_"
                         + nowDay + "_" + phoneNum + "_" + num);
             } else {
                 String[] strArr = mobileValue.split("_");
                 if (nowDay.equals(strArr[2])) {// 这天验证的次数

                     validateCount += 1;
                     newMemberNameMapPhone.put(loginName, code + "_"
                             + validateCount + "_" + nowDay + "_" + phoneNum
                             + "_" + num);

                 } else {
                     newMemberNameMapPhone.put(loginName, code + "_" + 1 + "_"
                             + nowDay + "_" + phoneNum + "_" + num);
                 }
             }
             // 验证存放到cache里面
             cache.put(loginName + "newMemberNameMapPhone",
                     newMemberNameMapPhone, 30);
             // if (canSendSms.equals(true)) {
             Sms sms = new Sms();
             sms.setMobile(phoneNum);
             sms.setMsg("尊敬的用户  , 您在健一网的安全验证码为" + code + ",健一网祝您身体健康");
             long time = new Date().getTime();
             long preTime = sendMessageService.getMsg(sms.getMobile() + num,
                     time);
             long differenceTime = time - preTime;
             // if (differenceTime > 0 && differenceTime < 60000) {
             // response.getWriter().write("no");
             // } else {
             sendMessageService.sendMessageForCode(sms, num);
             response.getWriter().write("yes");
             // }
             // } else {
             // response.getWriter().write("no");
             // }
         } catch (IOException e) {
             // TODO Auto-generated catch block
             logger.error(e.getMessage(), e);
         }

     }

response.getWriter().write的用法的更多相关文章

  1. out.print()和response.getWriter().write()区别

    1.print()和write()区别: write():表示的是仅支持输入字符类型数据,字符,字符数组和字符串等, print():表示的是将各种数据类型(包括object)的数据通过默认编码换成b ...

  2. 关于response.getWriter()写回数据的实际发生时间点

    只能说自己平时太粗心了,一些细节问题虽然几次路过,都没有注意过,也没有好好想过. 同事负责的一段微信模块的小逻辑,为了防止微信服务器认为没有接收到请求而重发消息,所以再收到微信服务器发回的消息后,马上 ...

  3. [转]response.getWriter().write()与out.print()的区别

    原文地址:http://blog.csdn.net/javaloveiphone/article/details/8133772 1.首先介绍write()和print()方法的区别:   (1).w ...

  4. response.getWriter().write()与out.print()的区别

    1.首先介绍write()和print()方法的区别:  (1).write():仅支持输出字符类型数据,字符.字符数组.字符串等  (2).print():可以将各种类型(包括Object)的数据通 ...

  5. PrintWriter out = response.getWriter() 输出中文乱码问题

    HttpServletResponse response = ServletActionContext.getResponse();        response.setCharacterEncod ...

  6. response.getWriter().write()与out.print()的区别 (转)

    来自:http://www.cnblogs.com/zhwl/p/3623688.html 1.首先介绍write()和print()方法的区别:  (1).write():仅支持输出字符类型数据,字 ...

  7. response.getWriter().write()与out.print()的区别(转)

    1.首先介绍write()和print()方法的区别:  (1).write():仅支持输出字符类型数据,字符.字符数组.字符串等  (2).print():可以将各种类型(包括Object)的数据通 ...

  8. response.getWriter().write()产生乱码

    Struts1中通过action, return到页面的时候,如果代码中使用到response.getWriter().write(),那么有可能jsp页面中汉字会变成乱码.百度上有人说改为respo ...

  9. 工具类:关于解决数据库中的日期格式,经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结

    经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结 import java.text.SimpleDateFormat;import net.sf.j ...

随机推荐

  1. ubuntu14.04 部署nfs服务

    安装nfs服务 apt-get install nfs-kernel-server 修改配置文件,共享目录为/var/www,*号可替换为客户端IP地址,*默认为任何部署了nfs客户端的IP可以挂载该 ...

  2. POJ 3233 Matrix Power Series——快速幂&&等比&&分治

    题目 给定一个 $n \times n$  的矩阵 $A$ 和正整数 $k$ 和 $m$.求矩阵 $A$ 的幂的和. $$S = A + A^2 + ... + A^k$$ 输出 $S$ 的各个元素对 ...

  3. 使用LoadRunner脚本并发下载文件,出现19890错误

    需求:10个客户并发下载同一份zip文件.执行的时候,8个Fail了,只下载了两份zip,且无论执行多少遍,都是这样. 错误信息如下:message code:-19890C interpreter ...

  4. 洛谷 P1199 三国游戏 题解

    每日一题 day18 打卡 Analysis 贪心 假如小A先选最大的[5,4],虽然电脑必须选一个破坏, 我们可以理解为5和4都属于小A的,假如后面未被破坏的最大值无论是和5相关还是和4相关,必然还 ...

  5. PostgreSQL 恢复大法 - 恢复部分数据库、跳过坏块、修复无法启动的数据库

    转载自:https://yq.aliyun.com/articles/582880 背景 一个较大的数据库,如何只恢复一部分数据(例如只恢复某个DB). 如果访问有坏块的表. 如何从无法启动的数据库中 ...

  6. (尚012)Vue表单数据的自动手集(表单数据提交,需要收集表单数据)

    自动收集,就是我一输入数据,就自动收集,等我点击提交按钮的时候,数据就收集好了 1.使用v-model对表单数据自动收集 1)text/textare----单行/多行输入框 2)checkbox-- ...

  7. learning java java.time相关类

    var clock = Clock.systemUTC(); System.out.println(clock.instant()); System.out.println(clock.millis( ...

  8. C语言指针的使用例子(1)指针地址的输出

    #include <stdio.h> int main(void) { int a=10; int *p = &a; *p = 89; printf("变量值a=%d a ...

  9. C位运算符的使用

    #include <stdio.h> int main(void) { //位运算符 & | ^ ~ printf("8|2=%d\n",8|2);// 10 ...

  10. 如何下载SlideShare的PPT:2种方法

    SlideShare中有很多不错的PPT,有时候确实想收藏怎么办,通常有2种方法: 1.SWF档案的PPT A. 打开PPT首页,按ctrl+U打开源码B. 找到类似以下语法的语句: <meta ...