我拦截请求网址并将其转发给另一个网址
像
some_application/image_20.jpeg
至some_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
感谢
答案 0 :(得分:5)
request_Dispatcher.forward(request,response);
chain.doFilter(request, response);
你不能做这两件事。当您将链中的请求传递给最终资源时,您已通过forward
提交了回复。