jsp中的会话似乎没有正常工作

时间:2017-04-13 16:45:21

标签: jsp session

我必须开发一个Web应用程序,其中用户在登录页面中输入的值被多个jsp页面使用。所以我使用了会话。当我注册为用户并再次登录时,它工作正常。但是一次我重新启动计算机,它在session.getAttribute()中显示空值。可能是什么问题?

这是login.jsp

中的代码
try{
    Class.forName("com.mysql.jdbc.Driver");
    con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/vaishnavi","root","atreyasa");

    name=request.getParameter("username");
    password=request.getParameter("password");

    st=con.createStatement();
    st1=con.createStatement();

    rs=st.executeQuery("select * from admins where username='"+name+"' and password='"+password+"'");
    rs1=st1.executeQuery("select * from admins where username='"+name+"' and password!='"+password+"'");

    if(rs!=null&&rs.next()){
        session.setAttribute("username",name);
        response.sendRedirect("http://127.0.0.1:8080/Project_programs/home.jsp");
    }
    else if(rs1!=null&&rs.next()){
        out.println("Enter correct password");
    }
    else{
    response.sendRedirect("http://127.0.0.1:8080/Project_programs/register.jsp");
    }
}
catch(Exception e){
    out.println(e);
}

Home.jsp访问session.getAttribute()

out.println("<h1 align=center>Welcome "+session.getAttribute("username")+"</h1>");

2 个答案:

答案 0 :(得分:0)

您可以将此代码用于创建会话。

 CreateSession(HttpServletRequest request, HttpServletResponse response) {
    HttpSession session = request.getSession();
    session.setAttribute("useremail", user_useremail);
  }

答案 1 :(得分:0)

正如您所注意到的,重新启动计算机后,session将被删除。这是由于session属性的临时性质。它存储在内存中,因此当您重新启动计算机时,它将被删除。

此处的解决方案是使用cookiesCookies是存储在客户端计算机上的小块数据,随客户端发出的每个请求一起发送。 因此,当用户请求页面时,您可以检查他是否有cookie,如果他有,则可以从cookie中读取数据并在没有再次输入凭据的情况下签到他。

使用servlet设置cookie涉及三个步骤:

(1)创建Cookie对象:使用cookie名称和cookie值调用Cookie构造函数,两者都是字符串。

Cookie cookie = new Cookie("key","value");

请注意,名称和值都不应包含空格或以下任何字符:[]()=,“/?@:;

(2)设置最大年龄:使用setMaxAge指定cookie应该有效的时间长度(以秒为单位)。以下将设置一个24小时的cookie。

cookie.setMaxAge(60*60*24);

(3)将Cookie发送到HTTP响应标头:您使用response.addCookie在HTTP响应标头中添加Cookie,如下所示:

response.addCookie(cookie);

在收到回复时,将cookie存储在客户端的计算机上。

您可以在https://www.tutorialspoint.com/servlets/servlets-cookies-handling.htm

阅读更详细的Cookie教程

最佳, 约万。