昨日青空丶泪铭尘 2019-06-19 00:33 采纳率: 50%
浏览 1074
已采纳

希望有大神能教教我这个小白怎么改能实现JavaWeb修改用户密码的操作。

这是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;
        }
    }
}

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-06-19 10:38
    关注

    500显然是有异常丢出来了

    你有执行到changePwd()这个里面没有,下断点调试

    首先
    User loginUser = (User) this.getSession().get("login_user");
    这里有没有login_user
    从逻辑上看,必须先登录,登录才有"login_user"这个session值,你的登录的代码在哪里。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路