【问题标题】:invalidate servet session on window blur and mouse activity使窗口模糊和鼠标活动的servet会话无效
【发布时间】:2013-12-23 01:02:49
【问题描述】:

我遵循 jsp 代码(使用 javascript)。用户登录后,可以查看此页面。当窗口变得模糊或鼠标在几分钟内处于非活动状态时,我想将页面重定向到 Google,并让登录 servlet 也使当前会话无效。当前代码只会重定向到 Goole,但会话尚未失效,对吗?

我该怎么做?

<!DOCTYPE html>
<html>
<head>
<title></title>
Test
<script type="text/javascript">
    var lastX, lastY = 0;
    var act_timeout = null;
    function doAction() {
        window.location.assign("http://www.google.com")
        <% SOME CODE TO LET SERVLET INVALIDATE CURRENT SESSION ????%>
        return false;
    }
    function move( e ) {
        if( e.clientY == lastY && e.clientX == lastX ) {
            act_timeout = setTimeout( doAction, 5000 );
            return;
        }
        lastX = e.clientX;
        lastY = e.clientY;
        act_timeout = clearTimeout( act_timeout );
    }
    window.onmousemove = move;
    window.onblur = doAction;
</script>
</head>
<body>

【问题讨论】:

    标签: java javascript jsp session servlets


    【解决方案1】:

    您需要先进行服务器端调用以使会话无效,然后重定向到 Google。服务器端部分可以用这样的注销 servlet 来实现:

    @WebServlet("/logout")
    public class LogoutServlet extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.getSession().invalidate();
            response.sendRedirect("http://www.google.com");
        }
    }
    

    在您的 javascript 代码中,您只需替换此行:

    window.location.assign("http://www.google.com")
    

    有了这个,为了调用servlet:

    window.location.assign("/logout")
    

    servlet 将负责重定向到 Google。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多