简体   繁体   中英

Why session.getAttribute returns null?

I've created a basic login and register page using servlets. My first servlet checks the database if the username and password exist and if they do it uses session.setAttribute("user", username) for second servlet. My second servlet has request.getAttribute("user") code. My project works just fine but in the second servlet returns "Welcome null" for output. How can I fix this? Thanks...

Sv1.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);
}

You are setting it to the session

session.setAttribute("user", username);

& reading it from request

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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