登录和注册都是用的ActionUser.java, 里面不同的方法
注册:
信息提交--md5加密密码--生成对象--设置对象用户名,密码,登录时间等--保存--session存信息--跳转
//用户注册
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
// System.out.println(username + "---------------" + password);
// System.out.println(email + "---------------" + sex);
MD5 md5 = new MD5(password);
String passworded = md5.compute();
// System.out.println(passworded);
Users u = new Users();
u.setUsername(username);
u.setPassword(passworded);
u.setEmail(email);
u.setSex(sex);
java.sql.Timestamp time = new java.sql.Timestamp(
new java.util.Date().getTime());
u.setLastLoginTime(time);
u.setRegisterDate(time);
u.setLocked(false);
manager.addUser(u);
ActionContext.getContext().getSession().put("user", u);
ActionContext.getContext().getSession().put("lastlogin", u.getLastLoginTime());
return SUCCESS;
}
登录:
信息提交--密码验证--用户状态(登录失败-是否锁定)--保存session--修改上次登录时间--页面跳转
//用户登录
public String login(){
//md5加密密码
MD5 md5 = new MD5(password);
String pas = md5.compute();
Users u = new Users();
u.setUsername(username);
u.setPassword(pas);
// 用户用户登录--存在返回id,不存在或者 密码错误返回-1锁定状态返回-2
int res = manager.checkUser(u);
// System.out.println(res + "useraction");
if(res == -1){
System.out.println("fail");
return "fail";
}
if(res == -2){
System.out.println("zhanghaosuoding");
return "zhanghaosuoding";
}
Users u2 = manager.findOneUsers(res);
//System.out.println(u2.getUsername()+"-"+u2.getPassword());
//把用户信息和上次登录时间放到session中,在页面上显示
ActionContext.getContext().getSession().put("user", u2);
ActionContext.getContext().getSession().put("lastlogin", u2.getLastLoginTime());
//更新这次登录时间到数据库
java.sql.Timestamp lastLogin = new java.sql.Timestamp(
new java.util.Date().getTime());
u2.setLastLoginTime(lastLogin);
manager.updateUser(u2);
return SUCCESS;
}
manager.checkUser(u) 调用 UserDaoImpl的checkUser(u)
方法如下:
// 用户用户登录--存在返回id,不存在或者 密码错误返回-1锁定状态返回-2
public int checkUser(Users u) {
List<Users> list = hibernateTemplate.findByExample(u);
if (list.size() == 0) {
return -1;
} else {
System.out.println(list.get(0).getLocked());
if (list.get(0).getLocked() == true) {
return -2;
}
}
return list.get(0).getId();
}