首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsp中的会话似乎不能正常工作。

jsp中的会话似乎不能正常工作。
EN

Stack Overflow用户
提问于 2017-04-13 16:45:20
回答 2查看 43关注 0票数 0

我必须开发一个web应用程序,其中登录页面中的用户输入值被多个jsp页面使用--我为.So使用的会话在注册为用户时工作得很好,重新启动计算机后登录again.But时,它显示session.getAttribute().What中的null值可能是问题吗?

以下是login.jsp中的代码

代码语言:javascript
复制
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 ()的Home.jsp

代码语言:javascript
复制
out.println("<h1 align=center>Welcome "+session.getAttribute("username")+"</h1>");
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-13 21:20:41

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

这里的解决方案是使用cookiesCookies是存储在客户端计算机上的小块数据,这些数据与客户端提出的每一个请求一起发送。因此,当用户请求页面时,您可以检查他是否有cookie,如果他有,则可以从cookie中读取数据并登录他,而不需要他再次输入凭据。

使用servlet设置cookie需要三个步骤:

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

代码语言:javascript
复制
Cookie cookie = new Cookie("key","value");

请记住,名称和值都不应包含空格或以下任何字符: =,“/?@:;

(2)设置最大年龄:使用setMaxAge指定cookie有效的时间(以秒为单位)。接下来会设置一个24小时的曲奇。

代码语言:javascript
复制
cookie.setMaxAge(60*60*24);

(3)将Cookie发送到header :使用response.addCookie在header中添加Cookie,如下所示:

代码语言:javascript
复制
response.addCookie(cookie);

它在客户端收到响应时将cookie存储在计算机上。

您可以在https://www.tutorialspoint.com/servlets/servlets-cookies-handling.htm上阅读关于cookie的更详细的教程。

最好,乔文。

票数 0
EN

Stack Overflow用户

发布于 2017-04-13 18:33:20

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

代码语言:javascript
复制
 CreateSession(HttpServletRequest request, HttpServletResponse response) {
    HttpSession session = request.getSession();
    session.setAttribute("useremail", user_useremail);
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43397655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档