У меня есть динамический веб-проект в eclipse, который использует аннотации для отображения сервлетов, например:
@WebServlet("/LoginController")
public class LoginController extends HttpServlet {
....
}
У меня также есть страницы JSP, которые используют эти сервлеты, например:
<form method="post" action="LoginController">
Все это работает как символ, пока я не решил добавить страницы ошибок для ошибок 404
и 500
. Небольшой поиск в Google приводит меня к java2s , и я обнаруживаю, что мне нужно изменить файл web.xml
, чтобы указать страницы ошибок. Но в моем проекте нет файла web.xml
в каталоге WEB-INF
(кстати, я использую Eclipse Indigo в качестве IDE и Tomcat 7.0.14). Поэтому я добавил один из них следующим образом:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<error-page>
<error-code>
404
</error-code>
<location>
/404.html
</location>
</error-page>
<error-page>
<error-code>
500
</error-code>
<location>
/500.html
</location>
</error-page>
</web-app>
Это вводит новую проблему. Мои сервлеты больше не работают! Все мои JSP работают нормально. Но все запросы к моим сервлетам переносят меня на страницу ошибки 404. Например, я могу получить форму входа в систему, так как JSP работают нормально. Но когда я отправляю свою форму входа в систему, т.е. на LoginController
, появляется страница с ошибкой 404.
Я думаю, что это можно решить, используя файл web.xml
для отображения сервлета вместо аннотации WebServlet
. Но есть ли способ использовать аннотацию WebServlet
, а также предоставлять страницы ошибок? Я буду рад, если web.xml
можно будет избежать отображения страниц с ошибками. Кроме того, я не люблю редактировать любые файлы конфигурации Tomcat. Итак, как я могу решить проблему?