日期:2014-05-18  浏览次数:20756 次

关于Filter中的跳转
各位大哥我遇到一个问题,要求在Filter中做一个跳转不和要求的请求全部跳转到一个提示页面中.我写了一个。但是每次到response.sendRedirectrequest.getContextPath()+   "/jsp/security/notic.jsp ");

就循环了.页面在不停的刷新.请大哥帮一把.
我的代码如下:

  public   void   doFilter(ServletRequest   servletrequest,   ServletResponse
    servletresponse,   FilterChain   filterchain)   throws   IOException,
    ServletException   {   HttpServletRequest   request   =   (HttpServletRequest)
    servletrequest;   HttpServletResponse   response   =   (HttpServletResponse)
    servletresponse;   HttpSession   session   =   request.getSession();
    try   {   //
    User   user   =   (User)   session.getAttribute(Constants.USER_IN_SESSION);
    UserManager   userManager   =   ServiceLocator.getUserManager();
   
    if   (user   !=   null)   {
    //   判断是否是超级用户  
    if   (!userManager.ifSuperUser(user))   {
    //   如果系统没有启动,跳转到提示页面。提示系统未启动
    //isStartUp是一个只有管理员才能设置的标志,如果管理员设了不能用.在这里就跳转到notic.jsp页面
    //但是每次到这里就过不去了.页面在不停的刷新,并且也没跳到notic.jsp
    if(session.getServletContext().getAttribute( "isStartUp ")!=null)   {
    response.sendRedirect(request.getContextPath()+   "/jsp/security/notic.jsp ");
   
    }else{  
    filterchain.doFilter(servletrequest,   servletresponse);  
    }  
    }else   {   //   是超级用户就继续执行
    filterchain.doFilter(servletrequest,   servletresponse);
    }

    }   else{  
    filterchain.doFilter(servletrequest,   servletresponse);
    }
   
      }   catch(Exception   exception)   {  
      exception.printStackTrace();
      }
      }
 

请高手帮忙啊.

------解决方案--------------------
response.sendRedirect( "/jsp/security/notic.jsp ");
------解决方案--------------------
你用服务器端重定向看看,还有,要注意逻辑错误。
------解决方案--------------------
嘿嘿,看看你的filter作用范围,是不是把notic.jsp也包括进去了。
------解决方案--------------------
把web.xml拉出来亮亮
------解决方案--------------------
我也遇见过这个问题,是你的路径出错了