java фильтр переброски вперед - PullRequest
0 голосов
/ 01 января 2011

Я перехватываю URL запроса и пересылаю его на другой URL

как

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

спасибо

1 Ответ

5 голосов
/ 01 января 2011
request_Dispatcher.forward(request,response);
chain.doFilter(request, response);

Вы не можете делать обе эти вещи.К тому времени, когда вы передаете запрос по цепочке конечному ресурсу, вы уже передали ответ через forward.

...