Mam projekt internetowy z tomcat, java, jsp,serwlety. Jeśli wyloguję się na moim interfejsie webproject, chcę zniszczyć wszystkie sesje. Ale poniższy kod nie działa. "Spodziewam się, że wszystkie sesje zostaną zniszczone i że jeśli się wyloguję, będę musiał uwierzytelnić się w następnym kroku z moim użytkownikiem i hasłem jak zwykle. Dziękujemy za pomoc.
if(lstrAction!=null && lstrAction.equals(ApplicationConstants.LOGOUT)){
HttpSession session = request.getSession(false);
if(session != null){
session.invalidate();
session = request.getSession(false);
}
}
Mam debugowanie mojego projektu i stwierdziłem, że sesja nie jest pusta po ostatniej linii.
Odpowiedzi:
0 dla odpowiedzi № 1session.invalidate();
session = request.getSession(false);
Tutaj po unieważnieniu sesji zmieniasz przypisanie sesji. W tym punkcie nie będzie to wartość zerowa. Musisz wykonać zerowe sprawdzanie, czy sesja ma wartość zerową, czy nie.
-1 dla odpowiedzi № 2
spróbuj tego kodu. To na pewno dla ciebie działa.
Plik cookie c [] = request.getCookies (); if (c == null) {response.sendRedirect ("index.jsp"); } else {session.removeAttribute (c [0] .getValue ()); response.sendRedirect ("index.jsp"); }