把req.getRequestDispatcher("/c2cmanager/login.jsp").forward(request,response);
改成response.sendRedirect("/c2cmanager/login.jsp");这样图片和验证码就有了forward是一个请求,拦掉之后后面就获取不到你的请求信息了,用response.sendRedirect请求重定向就能解决了,因为这是一个新的请求

解决方案 »

  1.   

    还是不行啊,response根本就打不开了.....request还打的开,只是图片和验证码给拦截了...
      

  2.   

    可以在你的if(admin==null)后面加一个else if判断,判断其是否为登录相关链接。如果是登录的相关链接就可以放行,否则就拦截。
      

  3.   

    关键是无论怎么样打开主页的时候为admin肯定为null啊
      

  4.   

    req.getRequestDispatcher("/c2cmanager/login.jsp").forward(request,response);
        这句话,不能这样写。
            request.getRequestDispatcher("/c2cmanager/login.jsp").forward(req, res);
    这样看看。
      

  5.   

    在过滤器中能获得路径,加个判断,如果是不想过滤的资源就return
      

  6.   

    那你可以先获取请求的路径,然后首先判断是不是登录的相关连接。如果是,则跳转;如果不是再判断他的Admin是不是为空,如果为空跳转到登录页面。
      

  7.   

    <url-pattern>/c2cmanager/*.jsp,*.do</url-pattern>
    改称这样呢,不知道行不行