java filter forward throw illegalstateexception

时间:2011-01-01 09:09:48

标签: java servlets servlet-filters

我拦截请求网址并将其转发给另一个网址

some_application/image_20.jpegsome_application/image_345.jpeg

我正在使用过滤器。

现在我的代码是:

   public void doFilter(ServletRequest request, ServletResponse response,
                     FilterChain chain)
    throws IOException, ServletException {
    //some code

    RequestDispatcher request_Dispatcher=request.getRequestDispatcher(forward_url);
    request_Dispatcher.forward(request,response);



 Throwable problem = null;
 try {
 chain.doFilter(request, response);
 }

    catch(IllegalStateException ise)
    {

    }
    catch(Throwable t) {

 problem = t;
 t.printStackTrace();
}

  }
}

因为我使用RequestDispatcher来转发请求..并且它正常工作

此代码抛出IllegalStateException

是否正常

因为我在我的代码中捕获它并且不让它抛出任何消息..

现在我担心它是否会损害整个容器或降低性能

或者我可以更改一些代码而不会获得任何IllegalStateException

感谢

1 个答案:

答案 0 :(得分:5)

request_Dispatcher.forward(request,response);
chain.doFilter(request, response);

你不能做这两件事。当您将链中的请求传递给最终资源时,您已通过forward提交了回复。