我在 Eclipse 中有一个动态 Web 项目,它使用注释来映射 servlet,如下所示:
@WebServlet("/LoginController")
public class LoginController extends HttpServlet {
....
}
我也有使用这些 servlet 的 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>
这,引入了一个新问题。我的 servlet 不再工作了!我所有的 JSP 都工作正常。但是对我的 servlet 的所有请求都将我带到 404 错误页面。例如,当 JSP 工作正常时,我可以获得一个登录表单。但是,当我提交我的登录表单时,LoginController
它会弹出 404 错误页面。
我认为可以通过使用web.xml
文件进行servlet映射而不是WebServlet
注释来解决。但是有没有办法使用WebServlet
注释并提供错误页面?web.xml
如果可以避免显示错误页面,我会很高兴。另外,我不喜欢编辑tomcat的任何配置文件。那么,我该如何解决这个问题呢?