我正在用JAVA创建一个Login Application。我正在用JSP和Servlet中的所有逻辑(数据库连接)进行演示[这不是我所知道的正确方法]。我在Servlet中检查用户名Password,然后创建一个会话变量。并像这样添加会话
sess.setAttribute("username",oName);
然后,我将用户重定向到其主页,显示为student.jsp
response.sendRedirect("student.jsp");
它删除了会话变量。我需要一种方法来保留会话变量并移至student.jsp。我尝试使用forwading,但没有成功。
RequestDispatcher dispatcher = getServletContext() .getRequestDispatcher("/student.jsp"); if (dispatcher != null) { dispatcher.forward(request, response); }
它转发请求,但页面地址不会更改为student.jsp,这不好。在这方面的任何帮助将不胜感激谢谢
为了使重定向的请求返回并附加到同一会话,它需要一个会话ID,该会话ID通常包含在JSESSIONID(或其他名称)cookie或URL中作为参数。
此cookie或URL参数应由servlet容器添加,而不必自己添加。
如果您在浏览器中看不到cookie,并且没有将JSESSIONID附加到URL,则它将为每个请求创建一个新会话,而不是将其附加到同一会话。