0

我正在研究 Jsp-servlet。我有 3 个 jsp 页面。一个用于登录,成功登录后它将显示员工的记录然后注销。所以我的问题是注销后当我按下后退按钮时它会显示员工的记录,所以我禁用后退按钮并清除缓存.并将其重定向到登录页面

但是现在的问题是,当用户成功登录后,在他的记录页面上,如果他按下返回按钮,登录页面就会显示而无需按注销。对此有什么解决方案?

4

3 回答 3

1

You can disable back button ,but you should not do it like this , instead you should tell the browser not to cache the page , which is being loaded from the cache on back button after logout . Servlet Filters would be best suited for pre-process the request .You could do something like this in your filter :

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

I think in your case you might have been clearing the cookies too , which would invalidate the session and would redirect you to login page as you implemented . It would be better if you can provide the code .

于 2012-05-21T06:19:30.370 回答
0

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

我添加了: response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("过期", 0); 但它不锻炼。

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

如果您按下返回按钮,即如果会话没有失效,那么用户名仍然存在,您可以只显示已经登录的人并在那里提供注销按钮。

或者,您可以在 LoginPage jsp 中检查 sessionAttribute 中的 session 参数,而不是 null 使会话无效。

于 2013-04-30T17:53:03.307 回答
-1
<script>

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

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

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

于 2014-09-19T13:06:40.800 回答