JSP页面内容: <td align="right" class="bg_table02" > <font color="red">*</font>手机: </td> <td class="bg_table02"> <html:text property="subMobile" size="20" styleClass="input" /> <input class=button01 name="captchaBtn" type="button" value="获取验证码" onclick="getCaptcha()" /> </td> JSP页面中的javascript代码: var xmlhttp; function operurl(){ if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } } function getCaptcha(){ if(isNumber(document.forms(0).subMobile.value)){ operurl(); xmlhttp.open("get","<%=request.getContextPath()%>/qualityOpinionCas.cas?functionCode=getCaptcha&subMobile="+document.forms(0).subMobile.value); xmlhttp.onreadystatechange= function (){ if(xmlhttp.readyState==4){ if(xmlhttp.status==200){ var res=xmlhttp.responseText; if(res!=""){ document.forms(0).rcaptcha.value=res; //按钮灰10秒 document.forms(0).captchaBtn.disabled=true; setTimeout("document.forms(0).captchaBtn.disabled=false;",10000); return; } } } }; xmlhttp.send(); } } Action中代码: /** * 获取验证码 */ private ActionForward getCaptcha(BActionContext context) throws BsiException { HttpServletRequest request = context.getRequest(); HttpServletResponse response = context.getResponse(); String subMobile = request.getParameter("subMobile"); String captcha = get5Radom();//获取随机生成5位随机数 String content = ""; if (null != subMobile) { String message = "您好,欢迎使用Ajax技术,验证码为:"+ captcha + "。您有任何疑问,欢迎拨打热线进行咨询"; try { CpfzUtil.SMSExceues(subMobile, message); //调用一个接口,用于发送短信 content = captcha; } catch (Exception e) { e.printStackTrace(); } } try { request.setCharacterEncoding("gbk"); response.setContentType("text/xml;charset=gbk"); } catch (UnsupportedEncodingException el) { el.printStackTrace(); } PrintWriter out; try { out = response.getWriter(); out.print(content); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } return null; } // 随机生成5位随机数 private String get5Radom() { String newString = null; // 得到0.0到1.0之间的数字,并扩大100000倍 double doubleP = Math.random() * 100000; // 如果数据等于100000,则减少1 if (doubleP >= 100000) { doubleP = 99999; } // 然后把这个数字转化为不包含小数点的整数 int tempString = (int) Math.ceil(doubleP); // 转化为字符串 newString = "" + tempString; // 把得到的数增加为固定长度,为5位 while (newString.length() < 5) { newString = "0" + newString; } return newString; }
详细解决方案
Ajax发送验证码范例
热度:117 发布时间:2012-11-25 11:44:31.0
相关解决方案
- (Struts2+JSON+Ajax) XMLHttpRequest ==500如何解决
- 。各位大神,小弟有个简单的有关问题,就是小弟我用struts+ajax+juery+json时为何总是不进入action啊 配置文件如上
- ajax 多值 jsp 急
- ajax responsetext 替空值,想不通。
- springmvc jquery ajax 提交复杂对象,415异常解决办法
- jquery ajax select解决方法
- Ajax 更新商品列表下一页,页面不在脑袋开始
- CAPTCHA 模块中 ajax form 导致CAPTCHA session reuse attack detected异常,解决方法
- ajax Post 一直返回的是error ,为啥
- struts2 ajax 上拉框联动有关问题
- AJAX 学习过程中的有关问题
- servlet+jquery1.4.2(ajax error?)解决方案
- jQuery.ajax()请求struts2数据 回到data值了undefined
- 扭结,AJAX WEB UI库选型
- 求大神解决偏题 - jquery ajax
- AJAX 传递数据如何样才可以是 json
- ajax 调用很慢解决办法
- ajax 拓扑图 实现,该如何解决
- struts2+jquery+ajax 回调函数没反应啊请们帮忙看看啊 跪谢
- ajax 怎么实现文件下载
- 使用$.ajax()异步无刷新请求servlet无反应解决方法
- struts2+ajax+oracle实现目录树,该怎么解决
- jquery- ui ajax 下拉列表框解决思路
- JSON,AJAX
- 求个php+ajax+easyUI datagrid的简略完整的demo
- 验证用户名是否存在。Ajax+Action如何写了
- Struts Ajax 有关问题,求教
- $.ajax({})如何返回一个boolean,答案,多谢大神
- :前台和后台开发有啥区别?还有css、html、ajax、js、jquery都有什么区别
- jquery ajax+json(插件) 提交数据,让人捉摸不透的是:【部分中文显示问号】,该怎么解决