Ajax+Struts2用户注册功能实现
详细请参考源码(Github):https://github.com/QQ3330447288/ajaxRegister
1、目录结构
2、截图




3、核心代码:
register.jsp
<script>
var code = "";
var nameIsOk = false;
var codeIsOK = false;
//检查账号是否已经存在
function checkUserName(input) {
//alert(input.value);
var name = input.value;
$.post("<%=path%>/checkUserName.action", {
userName : name
}, function(data) {
//alert(data);
if (data == 1) {
$('#tip').html("当前账号已经存在!");
nameIsOk = false;
} else {
$('#tip').html("");
nameIsOk = true;
}
});
}
//生成随机验证码
function createCode(sum) {
code = "";
for (var i = 0; i <sum; i++) {
var num = parseInt(Math.random() * 10) % 10;
code += num;
}
return code;
}
//发送随机验证码给短信服务商
function sendCode(input) {
var phone = $("#phone").val();
var pattern = /^1[34578]\d{9}$/;
if(phone==""||phone==null||!pattern.test(phone)){
alert("手机号为空或格式错误!");
return;
}else{
input.setAttribute("disabled", "disabled");
var count = 60;
var time = setInterval(function(){
input.value=count+"s";
count--;
if(count<0){
input.removeAttribute("disabled");
clearInterval(time);
input.value="发送";
}
},1000);
//生成6位验证码
var code = createCode(6);
//alert(code);
$.post("<%=path%>/sendCode.action", {
phone : phone,
code : code
}, function(data) {
});
}
}
//注册功能实现
function register() {
var userName = $("#userName").val();
var pwd = $("#pwd").val();
var pwd_sure = $("#pwd_sure").val();
var phone = $("#phone").val();
var codeInput = $("#codeInput").val();
var pattern = /^1[34578]\d{9}$/;
if($.trim(userName)==""||userName==null){
alert("用户名不能为空!");
return;
}else if(pwd==""||pwd==null){
alert("密码不能为空!");
return;
}else if(pwd.length<6){
alert("密码至少6位!");
return;
}
else if(pwd_sure==""){
alert("确认密码不能为空!");
return;
}
else if(pwd != pwd_sure){
alert("两次输入密码不一致!");
return;
}else if(phone==""||phone==null){
alert("手机号码不能为空!");
return;
}
else if(!pattern.test(phone)){
alert("手机号格式不正确!");
return;
}else if(codeInput==""||codeInput==null){
alert("验证码不能为空!");
return;
}
if(code == codeInput){
//alert("验证码输入正确!");
codeIsOK = true;
//alert(codeIsOK);
}else{
alert("验证码输入错误!");
codeIsOK = false;
}
//alert(nameIsOk);
//alert(codeIsOK);
if(nameIsOk==true&&codeIsOK==true){
//alert(1);
$.post("<%=path%>/addUser.action", {
userName:userName,
pwd : pwd,
phone : phone
},function(data){
//alert(data);
if(data==1){
alert("注册成功!");
window.location.href="<%=path%>/page/home/login.jsp";
}else{
alert("注册失败!");
}
});
}
}
//键盘回车提交表单
/*
$(document).ready(function() {
$(document).keydown(function(event) {
if (event.keycode == 13) {
register();
}
})
})
*/
</script>
CheckUserAction.java:
public class CheckUserAction extends ActionSupport {
/**
* 查看是否已经存在
* @throws IOException
*/
public void checkUserName() throws IOException {
// ServletActionContext类来自strut2-core-2.1.6.jar
// 获取request对象
HttpServletRequest request = ServletActionContext.getRequest();
String userName = request.getParameter("userName");
// System.out.println(userName);
// 获取response对象
HttpServletResponse response = ServletActionContext.getResponse();
// 设置response返回数据内容的编码
response.setContentType("text/html,charset=utf-8");
PrintWriter out = response.getWriter();
// out.print(111);
if (isExists(userName)) {
out.print("1");
} else {
out.print("0");
}
out.flush();
out.close();
}
public Boolean isExists(String userName) {
String sql = "SELECT *FROM user WHERE username=?";
BaseDao baseDao = new BaseDao();
List<Object> param = new ArrayList<Object>();
param.add(userName);
try {
List<User> list = baseDao.getModelsWidthSqlAndParam(sql, param, new User());
if (list.size() > 0) {
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
SendCodeAction.java:
public class SendCodeAction extends ActionSupport {
public void sendCode() {
HttpServletRequest request = ServletActionContext.getRequest();
String code = request.getParameter("code");
String phone = request.getParameter("phone");
// System.out.println(code);
// System.out.println(phone);
SDKDemo.sendCodeWithTel(phone, code);
}
}
AddUserAction.java:
public class AddUserAction extends ActionSupport {
public void addUser() throws IOException {
HttpServletRequest request = ServletActionContext.getRequest();
String userName = request.getParameter("userName");
String pwd = Md5.md5(request.getParameter("pwd"), "Thanlon");
// System.out.println(pwd);
String phone = Md5.md5(request.getParameter("phone"), "Thanlon");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
// System.out.println(userName+phone+pwd);
if (iSaddUser(userName, pwd, phone)) {
out.print(1);
} else {
out.print(0);
}
out.flush();
out.close();
}
private Boolean iSaddUser(String userName, String pwd, String phone) {
String sql = "INSERT user(username,pwd,phone) VALUES(?,?,?)";
List<Object> parames = new ArrayList<Object>();
parames.add(userName);
parames.add(pwd);
parames.add(phone);
BaseDao dao = new BaseDao();
try {
int count = dao.executeUpdate(sql, parames);
return count > 0;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
}
文章难免会有纰漏之处,还望热心业内人士能给出修改的意见或者建议。
版权声明:本文为博主原创,转载请注明出处。
Ajax+Struts2用户注册功能实现的更多相关文章
- Ajax+Struts2实现验证码验证功能
---------------------------------------------------------------------------------------------------- ...
- JQuery+Ajax+Struts2+Hibernate 实现完整的登录注册
写在最前: 下午有招聘会,不想去,总觉得没有准备好,而且都是一些不对口的公司,可是又静不下心来,就来写个博客. 最近在仿造一个书城的网站:http://www.yousuu.com ,UI直接拿来用, ...
- JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能
使用Hibernate开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=" ...
- JavaWeb_(Hibernate框架)使用c3p0与Dbutils开发用户注册功能
使用c3p0与Dbutils开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=&qu ...
- Django项目: 3.用户注册功能
本章内容的补充知识点 导入库的良好顺序: 1.系统库 2.django库 3.自己定义的库(第三方库) redis缓存数据库的数据调用速度快,但是不利于长时间保存. mysql用于长时间存储,但是调用 ...
- Web---创建Servlet的3种方式、简单的用户注册功能
说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...
- ajax实现下载功能
ajax实现下载功能 适用场景:由于点击按钮下载excel响应时间过长,此时间段加入加载样式(灰色层.加载动画): 浏览器弹出下载框后,上面的加载样式去掉. 方 法 :使用jquery.fi ...
- ajax 实现修改功能
这段时间在做项目,发现自己忘得好快呀,幸亏有博客园帮我记着呢,整理博客园简直不要太重要了哦 因为做的是一个内部管理系统,只用了一个主页面,所有的都不允许整个网页刷新,所以我们只能用ajax 来做,当 ...
- 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能
Ajax文件上载 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能: 步骤 导入组件并准备静态脚本 <dependency> <groupId& ...
随机推荐
- hash 位运算 练习
hash 位运算 [以下代码仅做位运算的练习,算法本身不合理 php转译python] 从头到尾彻底解析Hash表算法_知识库_博客园 https://kb.cnblogs.com/page/18 ...
- [daily][mathematica][fcitx] mathematica 无法输入中文的问题
mathematica无法输入中文, 我的输入法使用 fcitx 于是我给fcitx的作者提了issue https://github.com/fcitx/fcitx/issues/372 数日之后, ...
- webpack项目搭建
1.新建一个文件目录,命令行进入当前目录,输入npm init 创建package.json文件 2.安装项目依赖webpack模块: npm install webpack --save-dev 3 ...
- 6.0-uC/OS-III软件定时器管理
1.软件定时器管理 uC/OS-III提供了软件定时器服务(相关代码在OS_TMR.C中).当设置OS_CFG.H中的OS_CFG_TMR_EN为1时软件定时器服务被使能. 2.uC/OS-III 定 ...
- js前端使用jOrgChart插件实现组织架构图的展示
项目要做组织架构图,要把它做成自上而下的树形结构. 需要购买阿里云产品的,可以点击此链接购买,有红包优惠哦: https://promotion.aliyun.com/ntms/yunparter/i ...
- netframework webapi exceptionless
1.webapi项目 添加nuget exceptionless webapi 2.在exceptionless server端添加项目,注意key 3.修改api项目的webconfig &l ...
- 把ArrayList集合中的字符串内容写到文本文件中
list列表数据导出到指定路径文本文档中 public String getSDCardPath() { String sdCard = Environment.getExternalStorage ...
- go中 -strconv包的使用
strconv 包中的函数和方法 // atob.go ------------------------------------------------------------ // ParseBoo ...
- Java 实现异步调用
首先 我遇到的问题是 接口调用时需要更新缓存 而更新缓存又是个说快不快的过程 所以打算做异步调用 返回我所需要的结果即可 ,至于缓存什么时候更新完 就不是我所需要关注的了 废话不多说 上代码 publ ...
- undefined的几种情况
1.变量声明了,但是没有赋值: 2.一个变量声明了,并且赋值了undefined: var a = undefined; 3.一个对象中,获取某个不存在的属性,值也是undefined
