会话在jsp中无法正常工作
问题描述:
会话代码无法正常工作。我试图访问该链接时,我复制了一个链接,然后在注销后,不用询问登录名就可以访问该链接。会话在jsp中无法正常工作
这里是我所创建的会话了我的登录页面的代码:
String user_name=request.getParameter("user_name");
String pass=request.getParameter("pass");
session.setAttribute("user_name", user_name);
session.setAttribute("pass",pass);
这里是我所传递我的会话该页面的代码:
String user_name = (String)session.getAttribute("user_name");
这里注销页码:
session.setAttribute("user_name", null);
session.invalidate();
response.sendRedirect("index.jsp");
response.addHeader("cache-control","no-cache");
答
有一件事很重要sendRedirect()
应该是最后一条命令响应。
response.addHeader("cache-control","no-cache");
response.sendRedirect("index.jsp");
在index.jsp
,如果它是一个受保护的资源,你应该重定向到如果没有一个有效的user_name
在会话中的登录页面。
String user_name = (String)session.getAttribute("user_name");
if (user_name == null) response.sendRedirect("login.jsp");
+0
hello Roman, 感谢这些信息,是的,我总是写sendRedirect()作为最后一个响应命令。 – 2014-11-23 17:47:16
如何检查是否有人登录? (不要在会话中存储密码.. :-)) – DarkBee 2014-11-23 15:30:45
'String user_name =(String)session.getAttribute(“user_name”); ' 'user_name'在注销后重定向回登录页面时将为空。你可以通过sysout检查它 – Pravin 2014-11-23 15:32:24
会话不检查你是否登录。它只存储给定用户的属性(已验证或未验证)。在访问受限资源之前,检查用户是否已通过身份验证是您的工作。 – 2014-11-23 15:33:25