Прежде всего, позвольте мне сказать, что я не программист на Java или не очень хорошо знаком с Tomcat, поэтому, пожалуйста, потерпите меня :) Я работаю с SaaS-приложением, работающим на Apache Tomcat 5.0.9. У меня нет доступа к файлам конфигурации сервера, и я не могу добавлять файлы .jsp.
Я нахожусь в ситуации, когда у меня есть скрипт, работающий в среде Mozilla Rhino, и у меня есть доступ к следующим двум объектам:
org.apache.coyote.tomcat5.CoyoteRequestFacade
org.apache.coyote.tomcat5.CoyoteResponseFacade
Мне нужно установить статус SC_NOT_FOUND (404) и предоставить собственное сообщение. Проблема заключается в том, что независимо от того, что я делаю, если статус 404, я получаю «некрасивое» сообщение об ошибке 404, как установлено поставщиком. Я попытался использовать "sendError", "setStatus", я попытался получить диспетчер и перенаправить на другую страницу, а также установить статус на 404, я пробовал упаковщик, но не уверен, что я делаю, и я ' Я видел информацию о фильтрах, но не знаю, как применять ее в этой ситуации или даже если это правильный подход.
Опять же, кажется, что, как только 404 настроен, веб-сервер обслуживает свою собственную страницу. Я предполагаю, что это «объявление страницы ошибки», которое я не могу переопределить. Я прочитал этот вопрос Как получить сообщение на пользовательской странице ошибки (Tomcat)? (и многие другие), но я не понимаю этого достаточно, чтобы перевести информацию в мою конкретную ситуацию.
Итак, возможно ли программно "переопределить" объявление страницы с ошибкой? Или как я могу вернуть ошибку 404 и пользовательскую страницу ошибки, учитывая ограничения среды, в которой я нахожусь? Я бы согласился, на данный момент, просто текст - не должно быть фантазии. Мне просто нужен какой-то способ использовать статус 404 и отображать «удобное для пользователя» сообщение.
Любая помощь будет принята с благодарностью!
P.S. Я должен отметить, что причина этого подхода в том, что рассматриваемая страница будет потребляться (потенциально) как поисковой системой, так и людьми. Мне нужно 404, чтобы поисковая система удаляла страницу из своего кеша, а мне нужно «красивое» сообщение, чтобы сказать человеческому вистору, какие шаги ему нужно предпринять из-за недоступной страницы.