第一次请求后,会话变量将变为空

时间:2016-06-30 04:27:47

标签: java eclipse jsp tomcat servlets

我面临一个非常奇怪的情况。我创建了一个简单的Web应用程序,我在其中使用索引文件登录然后它进入servlet进行验证并转发到欢迎jsp页面...从那里我有两个连接到两个不同jsp页面的链接。现在发生的事情是我在LoginServlet中设置了包含用户名和密码的对象。现在,当它转发欢迎jsp我能够检索对象但是在每个jsp之后我得到会话变量null。虽然同样的应用程序在我的朋友eclipse上正常运行。

我正在使用tomcat 8和eclipse火星 这是登录servlet

`LoginModel model = (LoginModel) request.getAttribute("login");
    HttpSession session=request.getSession();
    session.setAttribute("loginmodel", model);
    System.out.println("uid "+model.getUid());
    LoginService lser = new LoginServiceImpl();
    int x = lser.login(model);
    if (x == 1) {
        request.getRequestDispatcher("welcome").forward(request, response);

    } else {
        response.getWriter().println("<h2>Login Id or Password invalid</h2>");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");

rd.include(request, response);
}

这是欢迎页面

<body>
<%LoginModel model=(LoginModel)session.getAttribute("loginmodel");
    out.print(model);
%>
${sessionScope.loginmodel};
<h2><a href="logout">LOGOUT</a></h2>
<section class="container">
    <div class="login">
<h2><a href="viewall">VIEW ALL</a></h2>
   <h2><a href="edit">EDIT</a></h2>
</div>
</section>
</body>

这是编辑jsp

<body>
<%LoginModel lm=(LoginModel)session.getAttribute("loginmodel");
    out.print(lm);
%>
<h2><a href="logout">LOGOUT</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="welcome">HOME</a></h1><br><br>
<section class="container">
    <div class="login">
<form action="editjspcontroller">
<h3><p><label>Enter No</label></p></h3><p><input type="text" name="ppno" id="no"></p>
<p class="submit"><input type="submit"></p>
</form>
</div>
</section>
</body>

1 个答案:

答案 0 :(得分:0)

我认为给定的代码没有任何问题 你说确切的应用程序可以在你朋友的机器上运行。

  • 检查您是否禁用了Cookie

  • 使用其他浏览器来运行您的应用。