繁体   English   中英

为什么 session.getAttribute 返回 null?

[英]Why session.getAttribute returns null?

我已经使用 servlet 创建了一个基本的登录和注册页面。 我的第一个 servlet 检查数据库是否存在用户名和密码,如果存在,则使用session.setAttribute("user", username)作为第二个 servlet。 我的第二个 servlet 有request.getAttribute("user")代码。 我的项目运行良好,但在第二个 servlet 中返回"Welcome null"作为输出。 我怎样才能解决这个问题? 谢谢...

版本1.java

try {
    Connection Conn = DriverManager.getConnection("jdbc:mysql://localhost/?user=root");
    Statement s = Conn.createStatement();
    ResultSet rs = s.executeQuery("SELECT * FROM users.info");
    while (rs.next()) {
        if (username.equals(rs.getString("Username")) && password.equals(rs.getString("Password"))) {
            session.setAttribute("user", username);
            flag = true;
            response.sendRedirect("./Sv2");
        }
    }

    if (flag == false) {
        out.print("Invalid username or password");
    }
}

Sv2.java

PrintWriter out = response.getWriter();
HttpSession session = request.getSession(false);
if (session != null) {
    String name = (String) request.getAttribute("user");
    out.print("Welcome " + name);
}

您正在将其设置为会话

session.setAttribute("user", username);

&从请求中读取它

String name = (String)request.getAttribute("user"); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM