2012-02-11 68 views
1

基本上,我有一个login.jsp页面和一个过滤器,检查会话是否有效。如果会话有效,则继续,否则将重定向至login.jsptomcat过滤器重定向jsp页面不显示任何东西

过滤器执行重定向。但是,重定向到login.jsp后,网页上没有显示任何内容。我确信这是过滤器的问题,因为从web.xml中删除过滤器后,login.jsp显示网页。

该过滤器非常简单,我从这里得到它。在这种情况下,我不知道问题出在哪里。有什么建议么?

if(request.getRequestURI().compareToIgnoreCase("/login.jsp")!=0) 
    { 
     if (session != null) 
     { 
      if(!session.isNew()) 
      { 
       chain.doFilter(req, res); 
      } 
     } 
     else 
     { 
      System.out.println("Directed"); 
      response.sendRedirect(request.getContextPath() + "/login.jsp"); 
     } 
    } 
    else 
    { 
     System.out.println("not directed"); 
    } 
+0

的login.jsp的也很简单,它只是包含一种形式,需要用户名和密码 – ikel 2012-02-11 21:21:42

+0

只注意到重定向后,内丢失所有代码的login.jsp – ikel 2012-02-11 21:45:28

+0

也请为便于阅读格式正确的代码。 :) – 2012-02-11 21:51:22

回答

1

您需要为URI的匹配login.jsp字符串继续过滤器链。现在你所做的只是印刷。

像这样:

{ 
    System.out.println("not directed"); 
    chain.doFilter(req,res); 
} 

在其他外。

+0

@jdl thx,iPhone真的不会写:) – 2012-02-11 22:20:52

+0

所以我必须创建一个doChian方法?对不起,即时通讯新的服务器端的东西:) – ikel 2012-02-11 22:22:24

+0

@ikel我在代码中的错误的错字,更新。 – 2012-02-11 22:24:09