2014-04-26 50 views
1

正在创建一个JSF应用程序,我已经在主页面中嵌入了一个applet。我的问题是,我不知道如何检查会话存在之前,加载到主页面的小程序,如果会话不存在我想重定向用户到主页如果会话不存在,如何将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); 
     } 
    } 

当然这个地图过滤器的所有JSF页面中web.xml的:

<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

我将如何映射这是全新的JSF从PHP – user3575427

+0

我附加了如何映射此过滤器到web.xml。如果你还没有听说过这个文件,我建议你从一些教程开始。 –

相关问题