当前位置: 首页 > news >正文

软件下载网站怎么做网站排行怎么做

软件下载网站怎么做,网站排行怎么做,网站上传的视频播放卡,个人博客网站搭建模板近来由于项目需要#xff0c;需要用到手机短信验证码的功能#xff0c;其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口#xff0c;下面我把我在项目中用到的记录一下#xff0c;以便给大家提供个思路#xff0c;由于本人的文采有限#xff0c;还请大…近来由于项目需要需要用到手机短信验证码的功能其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口下面我把我在项目中用到的记录一下以便给大家提供个思路由于本人的文采有限还请大家见谅 一首先上几张案例截图以便大家可以了解一下短信验证码的流程这里我在做的过程中也参考了很多网站的短信验证码比如58同城汽车之家等。 1.点击获取验证码之前的样式 2.输入正确的手机号后点击获取验证码之后的样式 3.如果手机号已经被注册的样式 4.如果一个手机号一天发送超过3次就提示不能发送 二前台的注册页面的代码reg.jsp % page languagejava importjava.util.* pageEncodingUTF-8% %taglib prefixs uri/struts-tags% %page importcn.gov.csrc.base.action.FindAllData% %String path request.getContextPath();String basePath request.getScheme() :// request.getServerName() : request.getServerPort() path /; % !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN html head base href%basePath% title中国证券会证券期货违法违规举报中心-注册/title meta http-equivpragma contentno-cache meta http-equivcache-control contentno-cache meta http-equivexpires content0 meta http-equivkeywords contentkeyword1,keyword2,keyword3 meta http-equivdescription contentThis is my page link relshortcut icon typeimage/x-icon href%request.getContextPath()%/images/favicon.ico / link relstylesheet typetext/csshref%request.getContextPath()%/css/main.css linkhref%request.getContextPath()%/formValidator1/style/validator.cssrelstylesheet typetext/css / style typetext/css button {background: #F0F0F0 repeat-x;padding-top: 3px; border-top : 1px solid #708090;border-right: 1px solid #708090;border-bottom: 1px solid #708090;border-left: 1px solid #708090;width: auto;line-height: 12pt; font-size : 10pt;cursor: hand;font-size: 10pt;border-top: 1px solid #708090; } /style script src%request.getContextPath()%/js/jquery-1.7.2.min.jstypetext/javascript/script script src%request.getContextPath()%/formValidator1/formValidator-4.0.1.jstypetext/javascript/script script src%request.getContextPath()%/formValidator1/formValidatorRegex.jstypetext/javascript/script script src%request.getContextPath()%/js/register.jstypetext/javascript/script script src%request.getContextPath()%/js/sms.jstypetext/javascript/script script typetext/javascriptfunction changeCheckNum() {var checkNumImage_ document.getElementById(checkNumImage);checkNumImage_.src ${pageContext.request.contextPath}/image.jsp?timeStamp new Date().getTime();} /script script typetext/javascriptvar msg ${message};if (msg ! ) {alert(msg);} /script /head body%include file/statics/top.jspf%div classcenter_divisiondiv classcenter_bodydiv classcenter_menufont color#000000当前位置/fonta href%request.getContextPath()%/statics/reg.jspfont color#000000用户注册/font/a/div/divdiv classcenter_body_menus:form actionRegisterAction_register idform1 nameform1 methodpost namespace/table idtbtrtd colspan3 aligncenter bgcolor#DDDFE1举报人基本信息/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/用户名/tdtd aligncenter width40%s:textfield nameusername idusername cssStylewidth:160px;height:24px; οnblurcheckusername()//tdtd alignleft width30%span idusernameTips:fielderror cssStylecolor:red;padding-left:10px;s:paramusername/s:param/s:fielderror/span/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/登录密码/tdtd aligncenter width40%s:password namepassword idpassword cssStylewidth:160px;height:24px; οnblurcheckpassword()//tdtd alignleft width30%span idpasswordTips:fielderror cssStylecolor:red;padding-left:10px;s:parampassword/s:param/s:fielderror/span/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/确认密码/tdtd aligncenter width40%s:password namepasswordRepeat idpasswordRepeat cssStylewidth:160px;height:24px; οnblurcheckpasswrodb()//tdtd alignleft width30%span idpasswordRepeatTips:fielderror cssStylecolor:red;padding-left:10px;s:parampasswordRepeat/s:param/s:fielderror/span/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/姓名/tdtd aligncenter width40%s:textfield namenickname idnickname cssStylewidth:160px;height:24px; οnblurchecknickname()//tdtd alignleft width30%span idnicknameTips:fielderror cssStylecolor:red;padding-left:10px;s:paramnickname/s:param/s:fielderror/span/td/trtrtd aligncenter width30%性别/tdtd aligncenter width40%s:radio list#application.dataMap.get(10001) namejbSex cssStyleheight:24px;//tdtd alignleft width30%/td/trtrtd aligncenter width30%联系地址/tdtd aligncenter width40%s:textfield namejbAddress idjbAddress cssStylewidth:160px;height:24px; //tdtd alignleft width30%span idjbAddressTips:fielderror cssStylecolor:red;padding-left:10px;s:paramjbAddress/s:param/s:fielderror/span/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/联系手机/tdtd aligncenter width40%s:textfield idjbPhone namejbPhone cssStylewidth:160px;height:24px; οnblurcheckjbPhone()//tdtd alignleft width30%span idjbPhoneTips:fielderror cssStylecolor:red;padding-left:10px;s:paramjbPhone/s:param/s:fielderror/span/td/trtrtd aligncenterimg srcimages/new_reg_xing.gif/短信验证码/tdtd alignleft colspan2 stylepadding-left: 112px;s:textfield idSmsCheckCode nameSmsCheckCode cssStylewidth:80px;height:24px; maxLength6 /spaninput typebutton idbtnSendCode namebtnSendCode value免费获取验证码 οnclicksendMessage() //spanspan idSmsCheckCodeTips:fielderror cssStylecolor:red;padding-left:10px;s:paramSmsCheckCodeTip/s:param/s:fielderror/span/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/证件类型/tdtd aligncenter width40%s:select list#application.dataMap.get(10002) labelheaderKey headerValue--请选择-- value1 listValuevalue οnchangeenableCredentialsCode(this)namejbCredentialsName idjbCredentialsName cssStylewidth:160px;height:24px;//tdtd alignleft width30%s:fielderror cssStylecolor:red;padding-left:10px;s:paramjbCredentialsName/s:param/s:fielderror/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/证件号码/tdtd aligncenter width40%s:textfield namejbCredentialsCode idjbCredentialsCode cssStylewidth:160px;height:24px; οnblurcheckjbCredentialsCode()//tdtd alignleft width30%span idjbCredentialsCodeTips:fielderror cssStylecolor:red;padding-left:10px;s:paramjbCredentialsCode/s:param/s:fielderror/span/td/trtrtd aligncenter width30%单位名称/tdtd aligncenter width40%s:textfield namejbCompanyName idjbCompanyName cssStylewidth:160px;height:24px; //tdtd alignleft width30%span idjbCompanyNameTips:fielderror cssStylecolor:red;padding-left:10px;s:paramjbCompanyName/s:param/s:fielderror/span/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/所在地区/tdtd aligncenter width40%s:select list#application.dataMap.get(10003) labelheaderKey headerValue--请选择-- listKeykeycssStylewidth:160px;height:24px; listValuevalue idjbSourceAreanamejbSourceArea οnblurcheckjbSourceArea()//tdtd alignleft width30%span idjbSourceAreaTips:fielderror cssStylecolor:red;padding-left:10px;s:paramjbSourceArea/s:param/s:fielderror/span/td/trtrtd aligncenter width30%img srcimages/new_reg_xing.gif/验证码/tdtd aligncenter width40%s:textfield idcheckNum namecheckNum cssStylewidth:60px;height:24px; οnblurcheckNumber() maxLength4/img idcheckNumImage src${pageContext.request.contextPath}/image.jspa onClickchangeCheckNum() title点击换一张 stylecursor:hand;换一张/a/tdtd alignleft width30%span idcheckNumTips:fielderror cssStylecolor:red;padding-left:10px;s:paramcheckNumTip/s:param/s:fielderror/span/td/trtrtd colspan3 stylevertical-align: top; padding-top: 5px;padding-bottom: 5px;input typesubmit value注册 stylewidth:50px; height:24px;/input typereset value重置 stylewidth:50px; height:24px;//td/tr/table/s:form/div/div%include file/common/buttom.jspf% /body /html三:前台获取短信验证码的jssms.js var InterValObj; //timer变量控制时间 var count 120; //间隔函数1秒执行 var curCount;//当前剩余秒数 var code ; //验证码 var codeLength 6;//验证码长度function sendMessage() {curCount count;var jbPhone $(#jbPhone).val();var jbPhoneTip $(#jbPhoneTip).text();if (jbPhone ! ) {if(jbPhoneTip √ 该手机号码可以注册输入正确 || jbPhoneTip √ 短信验证码已发到您的手机,请查收){// 产生验证码for ( var i 0; i codeLength; i) {code parseInt(Math.random() * 9).toString();}// 设置button效果开始计时$(#btnSendCode).attr(disabled, true);$(#btnSendCode).val(请在 curCount 秒内输入验证码);InterValObj window.setInterval(SetRemainTime, 1000); // 启动计时器1秒执行一次// 向后台发送处理数据$.ajax({type: POST, // 用POST方式传输dataType: text, // 数据格式:JSONurl: UserAction_sms.action, // 目标地址data: jbPhone jbPhone code code,error: function (XMLHttpRequest, textStatus, errorThrown) { },success: function (data){ data parseInt(data, 10);if(data 1){$(#jbPhoneTip).html(font color#339933√ 短信验证码已发到您的手机,请查收/font);}else if(data 0){$(#jbPhoneTip).html(font colorred× 短信验证码发送失败请重新发送/font);}else if(data 2){$(#jbPhoneTip).html(font colorred× 该手机号码今天发送验证码过多/font);}}});}}else{$(#jbPhoneTip).html(font colorred× 手机号码不能为空/font);} }//timer处理函数 function SetRemainTime() {if (curCount 0) { window.clearInterval(InterValObj);// 停止计时器$(#btnSendCode).removeAttr(disabled);// 启用按钮$(#btnSendCode).val(重新发送验证码);code ; // 清除验证码。如果不清除过时间后输入收到的验证码依然有效}else {curCount--;$(#btnSendCode).val(请在 curCount 秒内输入验证码);} }$(document).ready(function() {$(#SmsCheckCode).blur(function() {var SmsCheckCodeVal $(#SmsCheckCode).val();// 向后台发送处理数据$.ajax({url : UserAction_checkCode.action, data : {SmsCheckCode : SmsCheckCodeVal}, type : POST, dataType : text, success : function(data) {data parseInt(data, 10);if (data 1) {$(#SmsCheckCodeTip).html(font color#339933√ 短信验证码正确请继续/font);} else {$(#SmsCheckCodeTip).html(font colorred× 短信验证码有误请核实后重新填写/font);}}});}); }); 四验证码用户名和手机号码的js:register.js //去掉前后空格 function trim(str) {var strnew str.replace(/^\s*|\s*$/g, );return strnew; } //用户名 function checkusername() {var username document.form1.username.value;if (username || !isNaN(username.charAt(0))) {document.getElementById(usernameTip).innerHTML font colorred× 首字母不能为数字或者用户名不能为空/font;return false;} else if (username.length 6 || username.length 30) {document.getElementById(usernameTip).innerHTML font colorred× 用户名长度为6-30位字符/font;return false;} else {document.getElementById(usernameTip).innerHTML font color#339933√ 用户名合格/font;// 向后台发送处理数据$.ajax({url : UserAction_checkUserName.action,// 目标地址data : {username : username}, // 目标参数type : POST, // 用POST方式传输dataType : text, // 数据格式:textsuccess : function(data) {data parseInt(data, 10);if (data ! 0) {$(#usernameTip).html(font colorred× 该用户名已经被注册请重新输入/font);} else {$(#usernameTip).html(font color#339933√ 该用户名可以注册输入正确/font);}}});return true;} } // 登录密码 function checkpassword() {var password document.form1.password.value;if (password.length 6 || password.length 30) {document.getElementById(passwordTip).innerHTML font colorred× 密码长度不能小于6位大于30位/font;return false;} else if (!isNaN(password)) {document.getElementById(passwordTip).innerHTML font colorred× 密码不能全是数字/font;return false;} else {document.getElementById(passwordTip).innerHTML font color#339933√ 密码合格/font;return true;} } // 确认密码 function checkpasswrodb() {var password document.form1.password.value;var passwordRepeat document.form1.passwordRepeat.value;if (trim(password) ! trim(passwordRepeat)) {document.getElementById(passwordRepeatTip).innerHTML font colorred× 两次密码输入必须一致/font;return false;} else {document.getElementById(passwordRepeatTip).innerHTML font color#339933√ 密码输入一致/font;return true;} } // 姓名 function checknickname() {var nickname document.form1.nickname.value;if (trim(nickname) ) {document.getElementById(nicknameTip).innerHTML font colorred× 姓名不能为空/font;return false;} else {document.getElementById(nicknameTip).innerHTML font color#339933√ 姓名输入正确/font;return true;} } // 联系手机(ajax验证手机号码是否已经存在) function checkjbPhone() {var jbPhone document.form1.jbPhone.value;var re /(^1[3|5|8][0-9]{9}$)/;if (trim(jbPhone) ) {document.getElementById(jbPhoneTip).innerHTML font colorred× 手机号码不能为空/font;return false;} else if(trim(jbPhone) ! ){if(!re.test(jbPhone)){document.getElementById(jbPhoneTip).innerHTML font colorred× 请输入有效的手机号码/font;return false;}else{document.getElementById(jbPhoneTip).innerHTML font color#339933√ 手机号码输入正确/font;// 向后台发送处理数据$.ajax({url : UserAction_checkPhone.action,// 目标地址data : {jbPhone : jbPhone}, // 目标参数type : POST, // 用POST方式传输dataType : text, // 数据格式:textsuccess : function(data) {data parseInt(data, 10);if (data ! 0) {$(#jbPhoneTip).html(font colorred× 该手机号码已经被注册请重新输入/font);} else {$(#jbPhoneTip).html(font color#339933√ 该手机号码可以注册输入正确/font);}}});return true;}}} // 证件号码 function checkjbCredentialsCode() {var jbCredentialsCode document.form1.jbCredentialsCode.value;var reg /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if (trim(jbCredentialsCode) ) {document.getElementById(jbCredentialsCodeTip).innerHTML font colorred× 证件号码不能为空/font;return false;} else if(trim(jbCredentialsCode) ! ){if(!reg.test(jbCredentialsCode)){document.getElementById(jbCredentialsCodeTip).innerHTML font colorred× 请输入合法的证件号码/font;return false;}else{document.getElementById(jbCredentialsCodeTip).innerHTML font color#339933√ 证件号码输入正确/font;// 向后台发送处理数据$.ajax({url : UserAction_checkCredentialsCode.action,// 目标地址data : {jbCredentialsCode : jbCredentialsCode}, // 目标参数type : POST, // 用POST方式传输dataType : text, // 数据格式:textsuccess : function(data) {data parseInt(data, 10);if (data ! 0) {$(#jbCredentialsCodeTip).html(font colorred× 该证件号码已经被注册请重新输入/font);} else {$(#jbCredentialsCodeTip).html(font color#339933√ 该证件号码可以注册输入正确/font);}}});return true;}} } // 所在地区 function checkjbSourceArea() {var jbSourceArea document.form1.jbSourceArea.value;if (trim(jbSourceArea) ) {document.getElementById(jbSourceAreaTip).innerHTML font colorred× 请选择所在地区/font;return false;} else {document.getElementById(jbSourceAreaTip).innerHTML font color#339933√ 所在地区选择正确/font;return true;} } // 验证码 function checkNumber() {var checkNum document.form1.checkNum.value;if (trim(checkNum) ) {document.getElementById(checkNumTip).innerHTML font colorred× 验证码不能为空/font;return false;} else {document.getElementById(checkNumTip).innerHTML font color#339933√ 验证码合格/font;// 向后台发送处理数据$.ajax({url : UserAction_checkNum.action,// 目标地址data : {checkNum : checkNum}, // 目标参数type : POST, // 用POST方式传输dataType : text, // 数据格式:textsuccess : function(data) {data parseInt(data, 10);if (data ! 0) {$(#checkNumTip).html(font colorred× 验证码错误/font);} else {$(#checkNumTip).html(font color#339933√ 验证码正确/font);}}});return true;} } 五后台action的代码:UserAction.java(这里只是调用了我们的第三方给提供的客户端代码的发送短信的方法如果是调用其他的短信平台可以换成他们的发送短信的方法这里只是给大家做个参考) package cn.gov.csrc.base.systemmanager.action;import java.io.IOException; import java.io.PrintWriter; import java.util.List;import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.context.annotation.Scope; import org.springframework.security.authentication.encoding.MessageDigestPasswordEncoder; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller;import cn.gov.csrc.base.action.BaseAction; import cn.gov.csrc.base.log.service.LogService; import cn.gov.csrc.base.report.util.CommonUtil; import cn.gov.csrc.base.report.util.Env; import cn.gov.csrc.base.systemmanager.model.Count; import cn.gov.csrc.base.systemmanager.model.User; import cn.gov.csrc.base.systemmanager.service.CountService; import cn.gov.csrc.base.systemmanager.service.UserService; import cn.gov.csrc.base.util.WebContextUtil;import com.sms.webservice.client.SmsReturnObj; import com.sms.webservice.client.SmsWebClient; /*** File: UserAction.java * Author: jiangsai * Version: 1.1 * Date: 04/17/2013 * Modify:* Description:用户 * Copyright csrc*/ Controller() Scope(prototype) Results({Result(name success, location /statics/report.jsp),Result(name modifyPassword, location /statics/modifyPassword.jsp)}) public class UserAction extends BaseActionUser {private static final long serialVersionUID 1214696686677691191L;private static Logger log Logger.getLogger(UserAction.class);private static final String url Env.getInstance().getProperty(url);private static final String userName Env.getInstance().getProperty(username);private static final String passWord Env.getInstance().getProperty(password);private Integer id;private String username;// 用户名private String password;// 密码private String passwordRepeat;// 确认密码private String jbPhone;//手机号码private String jbCredentialsCode;//身份证号码private String checkNum;//图片验证码private String newPassword;private String confirmPassword;private Integer[] ownRoleIds;private UserService userService;private CountService countService;private LogService logService;private Count count new Count();public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public String getPasswordRepeat() {return passwordRepeat;}public void setPasswordRepeat(String passwordRepeat) {this.passwordRepeat passwordRepeat;}public String getJbPhone() {return jbPhone;}public void setJbPhone(String jbPhone) {this.jbPhone jbPhone;}public String getJbCredentialsCode() {return jbCredentialsCode;}public void setJbCredentialsCode(String jbCredentialsCode) {this.jbCredentialsCode jbCredentialsCode;}public String getCheckNum() {return checkNum;}public void setCheckNum(String checkNum) {this.checkNum checkNum;}public Integer[] getOwnRoleIds() {return ownRoleIds;}public void setOwnRoleIds(Integer[] ownRoleIds) {this.ownRoleIds ownRoleIds;}public String getNewPassword() {return newPassword;}public void setNewPassword(String newPassword) {this.newPassword newPassword;}public String getConfirmPassword() {return confirmPassword;}public void setConfirmPassword(String confirmPassword) {this.confirmPassword confirmPassword;}Resourcepublic void setUserService(UserService userService) {this.userService userService;}public UserService getUserService() {return userService;}Resourcepublic void setCountService(CountService countService) {this.countService countService;}public CountService getCountService() {return countService;}public LogService getLogService() {return logService;}Resourcepublic void setLogService(LogService logService) {this.logService logService;}public Count getCount() {return count;}public void setCount(Count count) {this.count count;}public void prepareToUpdatePage() {model userService.getEntity(id);}/*** 用户登录* * return success*/Action(value UserAction_login)public String login() {Object u SecurityContextHolder.getContext().getAuthentication().getPrincipal();if (u instanceof User u ! null) {WebContextUtil.getSession().setAttribute(user, u);User user (User)u;//使用数据库表TBL_BASE_LOG添加用户登录的日志信息logService.saveTblBaseLog(WebContextUtil.getRequest(),当前操作人【user.getNickname()】登录系统);} else {// 防止绕过登陆页面直接执行Actionreturn login;}return SUCCESS;}/*** 用户密码更新*/Action(value UserAction_updateUser)public String updateUser() {if (!newPassword.equals(confirmPassword)) {this.setMessage(新密码与确认密码不一致);return modifyPassword;}User u (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();MessageDigestPasswordEncoder encoder new MessageDigestPasswordEncoder(md5);String psw encoder.encodePassword(newPassword, null);userService.modifyPassword(u, psw);this.setMessage(保存成功!);return modifyPassword;}/*** 验证用户名是否存在* * throws Exception*/Action(value UserAction_checkUserName)public void checkUserName(){String result 0;try {ListUser list userService.findUserByUserName(username);if(list ! null list.size() 0){result 1;}else{result 0;}HttpServletResponse response WebContextUtil.getResponse();response.setContentType(application/json;charsetUTF-8);response.setHeader(Cache-Control, no-cache);PrintWriter out response.getWriter();out.write(result.toString());} catch (IOException e) {throw new RuntimeException(验证身份证号码出错, e);}}/*** 验证原始密码是否正确* * throws Exception*/Action(value UserAction_checkPassWord)public void checkPassWord() throws Exception {String result 0;MessageDigestPasswordEncoder encoder new MessageDigestPasswordEncoder(md5);String pwd encoder.encodePassword(password, null);ListUser user userService.findUserByPassWord(pwd);if (user ! null user.size() 0) {result 1;}else{result 0;}HttpServletResponse response WebContextUtil.getResponse();response.setContentType(application/json;charsetUTF-8);response.setHeader(Cache-Control, no-cache);PrintWriter out response.getWriter();out.write(result.toString());}/*** 验证手机号码是否存在*/Action(value UserAction_checkPhone)public void checkPhone(){String result 0;try {ListUser list userService.findUserByPhone(jbPhone);if(list ! null list.size() 0){result 1;}else{result 0;}HttpServletResponse response WebContextUtil.getResponse();response.setContentType(application/json;charsetUTF-8);response.setHeader(Cache-Control, no-cache);PrintWriter out response.getWriter();out.write(result.toString());} catch (IOException e) {throw new RuntimeException(验证手机号码出错, e);}}/*** 验证身份证号码是否存在*/Action(value UserAction_checkCredentialsCode)public void checkCredentialsCode(){String result 0;try {ListUser list userService.findUserByCredentialsCode(jbCredentialsCode);if(list ! null list.size() 0){result 1;}else{result 0;}HttpServletResponse response WebContextUtil.getResponse();response.setContentType(application/json;charsetUTF-8);response.setHeader(Cache-Control, no-cache);PrintWriter out response.getWriter();out.write(result.toString());} catch (IOException e) {throw new RuntimeException(验证身份证号码出错, e);}}/*** 验证验证码是否正确*/Action(value UserAction_checkNum)public void checkNum(){try {String result 0;String check_number_key (String)WebContextUtil.getSession().getAttribute(CHECK_NUMBER_KEY);if(checkNum ! check_number_key !checkNum.equals(check_number_key)){result 1;}else{result 0;}HttpServletResponse response WebContextUtil.getResponse();response.setContentType(application/json;charsetUTF-8);response.setHeader(Cache-Control, no-cache);PrintWriter out response.getWriter();out.write(result.toString());} catch (IOException e) {throw new RuntimeException(验证验证码出错, e);}}/*** 验证短信验证码是否正确* * throws Exception*/Action(value UserAction_checkCode)public void checkCode() throws Exception{String result 0;/** 获取手动输入的手机短信验证码 */String SmsCheckCode WebContextUtil.getRequest().getParameter(SmsCheckCode);/** 获取session中存放的手机短信验证码 */String code (String) WebContextUtil.getSession().getAttribute(code);try {if(SmsCheckCode ! code !SmsCheckCode.equals(code)){result 0;}else{result 1;}} catch (Exception e) {throw new RuntimeException(短信验证失败, e);}HttpServletResponse response WebContextUtil.getResponse();response.setContentType(application/json;charsetUTF-8);response.setHeader(Cache-Control, no-cache);PrintWriter out response.getWriter();out.write(result.toString());}/*** 验证手机短信是否发送成功* * throws Exception*/Action(value UserAction_sms)public void sms() throws Exception {String result 0;/** 手机号码 */String jbPhone WebContextUtil.getRequest().getParameter(jbPhone);/** 短信验证码 */String code WebContextUtil.getRequest().getParameter(code);/** 短信验证码存入session(session的默认失效时间30分钟) */WebContextUtil.getSession().setAttribute(code, code);/** 如何初始化失败返回 */if(!initClient()) {return;}/** 单个手机号发送短信的方法的参数准备 */// 手机号码String mobilephone jbPhone;// 短信内容随机生成的6位短信验证码String content 根据中国证监会举报中心委托特向您发送此条短信。您的注册验证码为: code;// 操作用户的IDInteger operId Integer.parseInt(Env.getInstance().getProperty(operId));// 定时发送的的发送时间(缺省为空如果即时发送填空)String tosend_time ;// 应用系统的短信ID用户查询该短信的状态报告(缺省为0即不需查询短信的状态报告)int sms_id 0;// 黑名单过滤(0不需要黑名单过滤1需要黑名单过滤缺省为0)short backlist_filter 0;// 禁止语过滤(0不需要禁止语过滤1需要禁止语过滤缺省为0)short fbdword_filter 0;// 优先级(值越大优先级越高0普通1,优先2最高缺省为0)short priority 0;// 短信有效时间(格式为YYYY-MM-DD HH:mm:ss目前为空)String valid_time ;/** 发送短信之前先统计一个已经发送的短信条数 */int messageCount countService.findAllRecord(mobilephone);log.info(已发短信条数为 messageCount);if(messageCount 5){/** 单个手机号发送短信 */if (!sendMessage(mobilephone, content, operId, tosend_time, sms_id,backlist_filter, fbdword_filter, priority, valid_time)) {result 0;// 失败} else {result 1;// 成功/** 发送一条短信记录一条短信记录为了方便之后的统计短信发送次数 */count.setPhone(mobilephone);// 手机号码count.setCaptcha(code);// 短信验证码count.setSendTime(CommonUtil.getNowDate());// 短信发送时间if(count ! null){countService.saveEntity(count);log.info(短信验证码发送记录保存成功!);}}}else{result 2;//一个手机号码最多发送5条短信验证码log.info(该手机号码今天发送验证码过多);}HttpServletResponse response WebContextUtil.getResponse();response.setContentType(application/json;charsetUTF-8);response.setHeader(Cache-Control, no-cache);PrintWriter out response.getWriter();out.write(result.toString());}/*** WebService客户端初始化* */public static boolean initClient() {/*** 判断客户端是否已经初始化*/if (!SmsWebClient.enable()) {int ret 0;try {ret SmsWebClient.init(url, userName, passWord);if (ret -1 || !SmsWebClient.enable()) {log.info(短信平台接口初始化失败);return false;}log.info(短信平台接口初始化成功 ret -----);} catch (Exception ex) {ex.printStackTrace();log.info(短信平台接口初始化过程中异常);}}return true;}/*** 单个手机号码发送* * param mobilephone* 手机号* param content* 短信内容* param operId* 操作用户的ID* param tosend_time* 定时发送的发送时间* param sms_id* 应用系统的短信ID* param backlist_filter* 黑名单过滤* param fbdword_filter* 禁止语过滤* param priority* 优先级* param valid_time* 短信有效时间*/public static boolean sendMessage(java.lang.String mobilephone,java.lang.String content, int operId, java.lang.String tosend_time,int sms_id, short backlist_filter, short fbdword_filter,short priority, java.lang.String valid_time) {// 单个手机号码发送try {SmsReturnObj retObj SmsWebClient.webSendMessage(mobilephone,content, operId, tosend_time, sms_id, backlist_filter,fbdword_filter, priority, valid_time);if (retObj.getReturnCode() ! 1) {log.info(短信发送失败原因为 retObj.getReturnMsg());return false;} else {log.info(短信发送成功返回结果为 retObj.getReturnMsg());return true;}} catch (Exception ex) {ex.printStackTrace();log.info(短信发送过程发生异常!);}return true;}}六具体的短信接口demo到这里下这里你下载了也不能成功的发送短信因为你必须要短信平台商给你提供urluserNamepassWordoperId,以及短信平台商还要绑定你的外网ip地址这样才能真正的发送短信。 Demo下载链接:http://pan.baidu.com/s/1qWt1Qdm 原文http://www.zuidaima.com/share/1881657001233408.htm
http://www.zqtcl.cn/news/93859/

相关文章:

  • 德州建设银行兑换网站服务器网站跳转怎么做的
  • 金华专业做网站公司湖南网站建设服务
  • 企业网站设计沈阳苏宁电器网站建设特点分析
  • 建设工程类公司网站易语言可以做api网站对接吗
  • 青岛做网站皆赴青岛博wordpress 数据库 备份
  • 外贸公司网站空间哈尔滨seo优化专注
  • 建筑行业综合查询平台优化推广联盟
  • 北京管庄网站建设公司开平网站制作
  • 如何做销售直播网站最专业网站建设
  • 太原市住房和城乡建设局的网站首页网络推广服务外包公司
  • 湘icp备 网站建设 农业 湖南稿定设计免费版
  • 公司网站推广方法陕西省住房建设厅官网
  • 网站关键词排名突然没了无锡企业网站建设报价
  • 找做网站的人网站改版 301跳转
  • 网站备案一次就可以了吧营销管理培训课程
  • 怎么做网站背景专做民宿预定的网站
  • wordpress安装谷歌分析代码建网站seo
  • 百度外卖网站建设与维护方法建设 银行网网站
  • 小程序开发定制开发上海优化价格
  • 来宾住房和城乡建设局网站做外贸推广要做哪些平台
  • 无锡建设网站制作wordpress 知乎
  • 动漫网站源码免费怎么怎么做网站
  • 和两个黑人同时做网站中工互联网站建设
  • windows10PHP 网站建设app应用分发平台开发
  • 中唯建设工程有限公司网站做网站页面对PS切图
  • 个人网页制作成品欣赏seo网站沙盒期
  • 亚马逊站外推广网站怎么做制作营销网站模板免费下载
  • 加拿大网站后缀设计师互联网
  • 做物流的网站有哪些内容共同建设网站心得
  • 主题资源网站建设什么网站做污水处理药剂的好