在使用以下代码成功登录用户后,我们正在应用程序中创建会话
HttpSession session = request.getSession(true);
sesssion.setAttribute("adminUserName", principalName);
现在它应该在我们发送响应并重定向到JSP的其他页面时使用JSESSIONID
在浏览器中创建一个cookie。现在我们尝试使用以下代码在JSP中打印请求中的所有cookie。
Cookie cookie = null;
Cookie[] cookies = null;
cookies = request.getCookies();
if (cookies != null) {
out.println("<h2> List of cookies : </h2>");
for (int i = 0; i < cookies.length; i++) {
cookie = cookies[i];
out.print("Name : " + cookie.getName() + ", ");
out.print("Value: " + cookie.getValue() + " <br/>");
}
} else {
out.println("<h2>No cookies founds</h2>");
}
但结果是没有创建cookie,它创建的问题是,在下一个servlet中,我们从请求对象获取会话为null
。
可能的原因是什么?
我没有看到你在代码上添加cookie的任何地方。例如:
Cookie firstCookie= new Cookie("adminUserName",
request.getParameter("principalName"));
response.addCookie( firstCookie);
第二,你得到你的会议
request.getSession(false);
如果存在,则不应创建新会话,只返回当前的会话。否则返回null。