Я пытался изменить поведение стороннего приложения, с которым я работаю, написав фильтр сервлета для пересылки запроса на определенный URL-адрес на основе определенных условий.
Сначала я пытался использовать request.getDispatcher(url).forward();
, но всегда получал страницу 404, показывающую, что URL-адрес не найден. Я обошел это, используя вместо этого request.sendRedirect
, но только теперь я понимаю, что экран 404 был тем, что я обычно вижу на сервере с помощью tomcat.
Это заставило меня задуматься о конфигурации в этом экземпляре. URL-адрес, на который я пытаюсь перенаправить, является сценарием cgi. У нас есть apache в качестве внешнего интерфейса, подключенного через разъемы ajp, и apache настроен на выполнение сценариев cgi.
Итак, мой вопрос: переадресация из фильтра сервлета когда-либо попадала в apache, или переадресация обрабатывается специально tomcat, и поэтому это не сработает?