2013-12-05 4 views
1

Я hava после jsp-кода (с javascript). После входа в систему они могут просматривать эту страницу. Когда окно размывается или мышь неактивна в течение нескольких минут, я хочу перенаправить страницу в Google, а также позволить сервлету входа в систему также аннулировать текущий сеанс. Текущий код будет перенаправлен только на 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> 

ответ

0

Сначала необходимо выполнить вызов на стороне сервера, чтобы аннулировать сеанс, а затем перенаправить на Google. Серверная часть может быть реализована с помощью выхода из системы сервлета так:

@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"); 
    } 
} 

В вашем яваскрипта кода, вам нужно только заменить эту строку:

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

с этим, для того, чтобы вызвать сервлет:

window.location.assign("/logout") 

Сервлет позаботится о переадресации в Google.

Смежные вопросы