2015-05-05 7 views
5

Następujący filtr jest w moim prj2. Od tego prj2 Sprawdzam, czy sesja nie istnieje Chcę przekierować do strony logowania prj1, który ma adres URL . W poniższym scenariuszu nie przekierowuje do strony logowania i nie rzuca żadnego wyjątku.response.sendRedirect nie działa w filtrze serwletu

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)  
throws IOException, ServletException { 
    HttpServletResponse hsr = (HttpServletResponse) res; 
    HttpServletRequest hreq = (HttpServletRequest) req; 
    HttpSession session = hreq.getSession(false); 

    if (session == null) { 
     hsr.sendRedirect("/prj1/sessionexpiry"); 
     return; 
    } else { 
     chain.doFilter(req, res); 
    } 
} 

Każda pomoc będzie mile widziane

+0

Usuń oświadczenie "return" –

+0

Po usunięciu instrukcji return również nie działa –

+0

Co się stało? Jeśli wystąpi wyjątek lub błąd, proszę napisać. –

Odpowiedz

0

Czy unieważnić sesję w serwlet wylogowania lub gdzieś indziej? W przeciwnym razie sesja nigdy nie będzie miała wartości NULL.

request.getSession().invalidate(); 

Służy do unieważnienia sesji, a następnie przy następnym sprawdzeniu, czy sesja jest ważna, otrzyma wartość pustą.