怎么改能实现JavaWeb修改用户密码的操作?
其他问答
1
这是JavaWeb实现用户注册和用户修改密码的四段代码(有连接数据库),前面两端的是放在action包的UserAction.java里的,后面两段是放在service包的Userservice.java文件里的。
现在的问题是注册的代码可以实现,而修改密码的操作点击之后网页显示错误是500。希望有大神能教教我这个小白怎么改能实现用户修改密码的操作。
UserAction.java:
public String regist() {
int registResult=us.regist(un, pwd, pwd2);
//如果注册失败则退回注册页面
switch (registResult) {
case 0:
//相当于HttpRequest
getRequest().put("regist_name", un);
return SUCCESS;
case 1:
return INPUT;
case 2:
return INPUT;
default:
return "ok";
}
}
public String changePwd() {
User loginUser = (User) this.getSession().get("login_user");
int result = us.changePwd(loginUser, oldPass, pwd, pwd2);
switch (result) {
case 0:
String success = this.logout();
return success;
case 1:
return INPUT;
case 2:
return INPUT;
case 3:
return INPUT;
default:
return "ok";
}
}
Userservice.java:
public int regist(String username, String password, String password2) {
// String result = "无法注册!";
if (password.equals(password2)) {
User u = ud.findByUsername(username);
if (u != null) {
// result = "用户名已存在";
return 2;
} else {
User newUser = new User(username, password);
ud.add(newUser);
// result = username + "注册成功!";
return 0;
}
} else {
// result = "两次密码不一致";
return 1;
}
// return result;
}
public int changePwd(User loginUser, String oldPass, String pwd, String pwd2) {
/**
* 原始密码不正确返回1
* 两次密码不一致返回2
* 原始密码和现在密码都一样返回3
* 全部正确返回0
*/
if (loginUser.getPassword().equals(oldPass)) {
if (pwd.equals(pwd2)) {
if (pwd.equals(oldPass)) {
return 3;
} else {
loginUser.setPassword(pwd);
ud.edit(loginUser);
return 0;
}
} else {
return 2;
}
} else {
return 1;
}
}
}
发表回复