登录  /  注册
Java WEB 参数正常,各项正常,无法从数据库获取结果?
高洛峰
高洛峰 2016-10-28 14:27:26
[Java讨论组]

1.png这是数据库

servlet代码那个currentUser怎么查都是null。。。

    // 从request出获取要查询的数据并封装
    String userName = request.getParameter("userName");
    String password = request.getParameter("password");
    if (userName == null || userName.length() == 0 || password == null || password.length() == 0) {
        request.setAttribute("error", "用户名或密码不能为空!");
        request.getRequestDispatcher("userLogin.jsp").forward(request, response);
    }
    User user = new User(userName, password);

    // 查询并生成currentUser与currentStudent
    User currentUser = null;
    UserDao userDao = DaoFactory.createUserDao();
    Student currentStudent = null;
    StudentDao studentDao = DaoFactory.createStudentDao();
    
    try {
        currentUser = userDao.selectUser(user);
        // 验证
        if (currentUser != null) {
            
            //currentUser不为空,查询对应的currentStudent
            currentStudent = studentDao.selectStudent(currentUser);
            
            // 在session中保存currentUser与currentStudent
            HttpSession session = request.getSession();
            session.setAttribute("currentUser", currentUser);
            session.setAttribute("currentStudent", currentStudent);
            response.sendRedirect("userMain.jsp");
        } else {

            // 提示错误信息,同时将错误信息返回,优化用户体验
            request.setAttribute("error", "用户名或密码错误!");
            request.setAttribute("userName", userName);
            request.getRequestDispatcher("userLogin.jsp").forward(request, response);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        userDao.closeConn();
        studentDao.closeConn();
    }

标题文字

// 查找用户public User selectUser(User user) throws SQLException {

    
    User resultUser = null;
    String sql = "select * from t_user where userName = ? and password = ?";
    PreparedStatement pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, user.getUserName());
    pstmt.setString(2, user.getPassword());

    ResultSet rs = pstmt.executeQuery();

    // 要找也只会找到一个,所以这边就用if了
    //返回时带出id
    if (rs.next()) {
        resultUser = new User();
        resultUser.setId(rs.getInt("id"));
        resultUser.setUserName(rs.getString("userName"));
        resultUser.setPassword(rs.getString("password"));
    }

    return resultUser;

debug模式截图

1.png

1.png

1.png不开tomcat直接

测试代码

public static void main(String[] args) throws SQLException {

    User user = new User("testUser1", "123456");
    UserDao userDao = DaoFactory.createUserDao();
    User currentUser = userDao.selectUser(user);
    System.out.println(currentUser.getId());
    userDao.closeConn();
}

1.png

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号