2015-03-19 5 views
0

У меня есть сервлет фильтр Whith проверки время сеанса из:Фильтр сервлета после того, как время сеанса из проблем

@Override 
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 
    HttpServletRequest req = (HttpServletRequest) servletRequest; 
    HttpServletResponse res = (HttpServletResponse) servletResponse; 
    String uri = req.getRequestURI(); 
    if (req.getUserPrincipal() == null && !uri.endsWith("login.xhtml") && uri.endsWith("xhtml")) { 
     res.reset(); 
     res.setHeader("Location", "/nsi/faces/login.xhtml"); 
     res.setStatus(HttpServletResponse.SC_FOUND); 
     res.setContentType("xhtml"); 
     // filterChain.doFilter(servletRequest, servletResponse); 
     // req.getServletContext().getRequestDispatcher("/faces/login.xhtml").forward(req, res); 
    } else { 
     filterChain.doFilter(servletRequest, servletResponse); 
    } 
} 

почему, когда сессия таймаут перенаправление не работает? Я пытаюсь использовать HttpServletResponse.sendRedirect и HttpServletResponse вперед. P.s. получить запрос перенаправлен, но POST запрос entrer в методе и ничего не делать;

ответ

0

В JSF вы можете сделать это таким образом

FacesContext.getCurrentInstance() getExternalContext() .redirect ("/ рожи/login.xhtml").

+0

этот метод бросить java.lang.NullPointerException –

0

После response.sendRedirect("/faces/login.xhtml"); вы должны сделать return;.

Следующий фильтр перенаправляет все запросы к корневой URL для Google.nl:

@WebFilter("/*") 
public class RedirectFilter implements Filter { 

    public void destroy() {} 

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, 
      FilterChain chain) throws IOException, ServletException { 
     HttpServletResponse res = (HttpServletResponse) servletResponse; 
     res.sendRedirect("https://www.google.nl"); 
     return; 
    } 

    public void init(FilterConfig arg0) throws ServletException {} 

} 
+0

«возврат», если-иначе блок ничего не делать)) –

+0

я добавил примерный фильтр, который перенаправляет все вызовы на www.google.nl. –

+0

он работает с GET requsts, но не для post = ( –

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