2012-05-21 74 views
0

我正在使用Jsp-servlet。我有3个jsp pages.one登录,成功登录后,它会显示员工他的记录,然后注销。所以我的问题是注销后,当我按回来按钮它将显示雇员的记录,所以我禁用后退按钮,并清除缓存并将其重定向到登录页面jsp中的后退按钮重定向到登录页面,无需注销

但现在的问题是,当用户成功登录后,在他的记录页面上,并且如果他按回登录按钮,登录页面将显示而没有按下注销。什么是这个解决方案?

回答

1

您可以禁用后退按钮,但不应该这样做,而应该告诉浏览器不要缓存登出后从缓存中加载的页面。 Servlet过滤器将最适合用于前处理。你可以做这样的事情在你的过滤器的要求:

response.setHeader("Cache-Control","no-cache"); 

我觉得你的情况,你可能已经被清理过的cookie,这将作废了会议,并会在您执行时将您重定向到登录页面。如果你能提供代码会更好。

0

当我们按回按钮会话不失效。这不是因为缓存(尝试在显示Employee仪表板的页面中打印日期。每次我们按下新的请求时都会向服务器发送按钮)。

我加了: response.setHeader(“Cache-Control”,“private,no-store,no-cache,must-revalidate”); response.setHeader(“Pragma”,“no-cache”); response.setDateHeader(“Expires”,0); 但它没有锻炼。

因此,您可能需要添加一个java脚本来禁用您的后退按钮(客户端可能会禁用js,因此不是解决方案),或者另一种解决方案是在您的第一个jsp中添加一个条件,即仅在会话中的用户名(或您正在使用的任何属性)为空。

如果您按下后退按钮,即如果会话未失效,则用户名仍然存在,您只能显示已登录的用户并在其中提供注销按钮。

或者您可以在LoginPage jsp for sessionAttribute not null invalidate session中检查会话参数。

-1
<script> 

$(document).ready(function() { 
    function disableBack() { window.history.forward() } 

    window.onload = disableBack(); 
    window.onpageshow = function(evt) { if (evt.persisted) disableBack() } 
}); 
</script> 

我们只能在该jsp页面上使用java脚本禁用后退键。

+0

这不是一个合适的解决方案... – bitoiu

+0

然后为了正确的解决方案,你必须使用会话来验证它。 –

相关问题