【问题标题】:tomcat filter redirected jsp page does not show anythingtomcat过滤器重定向jsp页面不显示任何东西
【发布时间】:2012-02-11 21:13:14
【问题描述】:

基本上,我有一个login.jsp 页面和一个用于检查会话是否有效的过滤器。如果会话有效则继续,否则将重定向到login.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");
  }

【问题讨论】:

  • login.jsp 也很简单,它只包含一个接受用户名和密码的表单
  • 刚刚注意到重定向后, 中的所有代码都丢失了 login.jsp
  • 另外请正确格式化代码以便于阅读。 :)
  • @ikel 你知道 Web Container 本身就具备这个功能 - 检查用户是否经过身份验证,如果没有则重定向到登录页面?

标签: java web-services jakarta-ee servlets


【解决方案1】:

您需要继续过滤器链以使 URI 匹配 login.jsp 字符串。现在你要做的就是打印。

像这样:

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

在外面的else。

【讨论】:

  • 所以我必须创建一个 doChian 方法?对不起,我是服务器端的新手:)
  • 让我试着尽快回复你
猜你喜欢
  • 2013-05-03
  • 1970-01-01
  • 2021-04-08
  • 1970-01-01
  • 2012-06-14
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多