注册模块
前端
注册表单采用典型JqueryAjax提交
$(function(){
$("#registerFrom").submit(function(){
$.post("refisterFrom",$(this).serialize(),function(data){
//后端返回的data信息
//判断data中flag的值来进行转跳或者报错
});
});
});
后端
1.获取所有表单的信息,以及后面要用到的验证码,同时将表单的信息绑定到JavaBean对象上.,创建用于装载错误信息的对象ResultInfo,
//获表单参数,声明即将用到的对象
Map<String, String[]> parameterMap = request.getParameterMap();
User user = new User();
//获取验证码
String session =(String) request.getSession().getAttribute("CHECKCODE_SERVER");
//数据封装对象
try {
BeanUtils.populate(user,parameterMap);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
2.验证验证码正确性
//获取验证码
String session =(String) request.getSession().getAttribute("CHECKCODE_SERVER");
//获取用户输入的验证码
String check = request.getParameter("check");
3.调用dao层的方法查询数据库判断用户名是否存在
//调用Dao层的方法,会因为查不到而报错误,so need try catch
//默认查找的为null
User userByName = null;
try{
userByName = userDao.findUserByname(user);
}catch (Exception e){
}
//判断userByName的值
if(userByName==null){
//查不到相关数据,所以该用户可以注册
resultInfo.setFlag(true);
}else {
//用户名存在,返回错误信息
resultInfo.setFlag(false);
resultInfo.setErrorMsg("用户名存在,请重试!");
}
return resultInfo;
}
4.完成注册,保存数据
//调用Dao层保存用户数据
userDao.save(user);
return true;
5.返回错误信息对象ResultInfo,封装为json数据
//创建mapper对象
ObjectMapper mapper = new ObjectMapper();
//返回错误信息
String json = mapper.writeValueAsString(resultInfo);
//设置字符编码
response.setContentType("application/json;charset=utf-8");
//输出json数据
response.getWriter().write(json);
数据库
改变数据库编码:
打开数据库配置文件,添加defult-charset=utf8,重启mysql服务
1.用于注册,保存数据的dao方法save()
String sql = "insert into user (username,password,name,birthday,sex,telephone,email,status,code) values (?,?,?,?,?,?,?,?,?)";
template.update(sql,
user.getUsername(),
user.getPassword(),
user.getName(),
user.getBirthday(),
user.getSex(),
user.getTelephone(),
user.getEmail(),
user.getStatus(),
user.getCode());
}
2.用于根据用户名查找数据findUserByname()(判断注册的用户名是否存在)
User user1 = null;
//查找不到数据会报错,try catch步过错误
try{
String sql = "select * from tab_user where username = ?";
user1 = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), user.getUsername());
}catch (Exception e){
}
return user1;
剩余细节有待补充