我是Servlets和会话的新手。Servlets中的会话
我使用Servlet和JSP's.I建立一个网站正在使用HTTP连接。
我正在使用会话,登录到我的网站会话创建后,当我点击浏览器后退按钮一次又一次,我可以去登录屏幕,再次点击浏览器转发选项,我可以进入网站没有任何问题。
我的期望是当浏览器进入到登录界面,会话应该过期,应要求再次输入新密码。
有反正我可以用这个HTTP连接做到这一点。
我是Servlets和会话的新手。Servlets中的会话
我使用Servlet和JSP's.I建立一个网站正在使用HTTP连接。
我正在使用会话,登录到我的网站会话创建后,当我点击浏览器后退按钮一次又一次,我可以去登录屏幕,再次点击浏览器转发选项,我可以进入网站没有任何问题。
我的期望是当浏览器进入到登录界面,会话应该过期,应要求再次输入新密码。
有反正我可以用这个HTTP连接做到这一点。
你可以在你的节目登录的servlet无效会话:
....
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
该解决方案无论是第一次和回访工作。
如果你想无效会话只有当这是不是你可以做第一个访问是:
在登录的servlet
HttpSession session = request.getSession(false);
session.setAttribute("loggedUser", loggedUser);
在显示登录的servlet
HttpSession session = request.getSession(false);
if (session != null) {
if (session.getAttribute("loggedUser") != null) {
session.invalidate();
}
}
注意如果你使用,你可以改用在秀登录方法标准的登录过程
HttpSession session = request.getSession(false);
if (session != null) {
if (request.getRemoteUser() != null) {
session.invalidate();
}
}
一些想法是:
检查你的login.page,你做其他任何事情之前,你if
mySession != null
。您可以像HttpSession一样获得会话mySession= request.getSession(false);
如果您的会话不为空,则您的用户已经登录一次。在这种情况下,你可以取消你的会话mySession.invalidate();
整体而言,这应该looke这样的:
HttpSession mySession = request.getSession(false);
if (mySession != null)
{
mySession .invalidate();
}
另一个问题可能是浏览器chaching页面。
一个想法如何在客户端浏览器禁用此可以在这个question找到。
第三种方法可以使用javascript。您可以在浏览器上添加一个侦听器。 anser的问题已经是avalibale here。
希望帮助
有反正我可以让浏览器行为,通过任何监听器,这样我可以让系统根据 – VijayManohar7
检查目前还不清楚你问 –
我会解释我的功能要求,在登录期间我将创建一个会话。然后我会保持会话,直到他退出。如果他使用后退选项(在浏览器中)并返回到登录屏幕。我需要使会话无效(如您所建议的那样)。但是我无法区分浏览器返回到登录屏幕或第一次查看登录屏幕。 – VijayManohar7