2014-04-26 5 views
1

기본 페이지에 애플릿을 삽입 한 JSF 애플리케이션을 작성 중입니다. 내 문제는 애플릿을 기본 페이지에로드하기 전에 세션이 존재하는지 확인하는 방법을 파악하지 못하고 세션이 존재하지 않는다면 사용자를 홈 페이지로 리디렉션하려고합니다.세션이 존재하지 않는 경우 jsf 페이지를 홈페이지로 리디렉션하는 방법

+0

유사한 한때 estion이 도움이 될 수도 있습니다 http://stackoverflow.com/questions/8144195/check-if-session-exists-jsf – AurA

답변

0

필터를 사용하는 것이 좋습니다.

public class LoggedFilter implements Filter { 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
     HttpServletRequest httpServletRequest = (HttpServletRequest) request; 
     HttpSession session = httpServletRequest.getSession(false); 
     if (session == null) { 
      HttpServletResponse httpServletResponse = (HttpServletResponse) response; 
      httpServletResponse.sendRedirect(httpServletResponse.encodeRedirectURL(httpServletRequest.getContextPath() + "/")); 
     } else { 
      chain.doFilter(request, response); 
     } 
    } 

물론지도 web.xml의 모든 JSF 페이지에이 필터의 :

<filter> 
    <filter-name>LoggedFilter</filter-name> 
    <filter-class>LoggedFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>LoggedFilter</filter-name> 
    <url-pattern>*.xhtml</url-pattern> 
</filter-mapping> 

은 (내가 JSF 페이지 접미사 XHTML가 있다고 가정)

+0

PHP에서 – user3575427

+0

의 JSF를 완전히 새로운 방식으로 매핑하는 방법이 필터를 web.xml에 매핑하는 방법을 추가했습니다. 이 파일에 대해 들어 본 적이 없다면 튜토리얼을 시작하는 것이 좋습니다. –

관련 문제