/ / validate servet session po rozmyciu okna i aktywności myszy - java, javascript, jsp, sesja, serwlety

unieważnij sesję servet w przypadku rozmycia i aktywności myszy - java, javascript, jsp, session, servlets

Mam następujący kod jsp (z javascript). Po zalogowaniu się użytkownik może wyświetlić tę stronę. Kiedy okno się zaciera lub mysz jest nieaktywna przez kilka minut, chcę przekierować stronę do Google, a także pozwolić serwletowi logowania również unieważnić bieżącą sesję. Aktualny kod przekieruje tylko do Goole, ale sesja nie została unieważniona, prawda?

Jak mogę to zrobić?

<!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>

Odpowiedzi:

0 dla odpowiedzi № 1

Najpierw musisz wykonać połączenie po stronie serwera, aby unieważnić sesję, a następnie przekierować do Google. Część po stronie serwera można zaimplementować za pomocą serwletu wylogowania:

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

W kodzie javascript wystarczy zastąpić ten wiersz:

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

z tym, aby wywołać serwlet:

window.location.assign("/logout")

Serwlet zajmie się przekierowaniem do Google.