У меня есть динамический веб-проект в eclipse, который использует аннотации для сопоставления сервлетов следующим образом:
@WebServlet("/LoginController")
public class LoginController extends HttpServlet {
....
}
У меня также есть страницы jsp, которые используют эти сервлеты, например:
<form method="post" action="LoginController">
Все работало как char, пока я не решил добавить страницы ошибок для ошибок 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. Итак, как я могу решить проблему?