我有一个在tomcat上运行的应用程序,运行得很好。当我打电话时http://example.com:18080/app 它很好用。现在,我创建了一个简单的错误页面,以便在出现错误时重定向:
<html>
<head>
<title>Error Page</title>
</head>
<body> That's an error! </body>
</html>
我把它添加到我的web.xml上
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
当我打电话时http://example.com:18080/app/blabla 它会转到我的错误页面,但当我调用http://example.com:18080/blabla 或者只是http://example.com:18080 我需要它重定向到同一个错误页面。
有人知道怎么做吗?
谢谢
法比奥
1条答案
按热度按时间nhhxz33t1#
servlet规范要求错误页面位于web应用程序内部(参见错误页面)。因此,您可以:
向所有应用程序添加相同的错误页,
使用特定于容器的机制,而不是错误页面。
在tomcat中
ErrorReportValve
(参见文档)负责打印应用程序未自定义的错误消息。如果您的错误消息是一个简单的html(比如“404.html”),您可以将其保存在任意位置(比如$CATALINA_BASE/errors
)并添加一个显式ErrorReportValve
到server.xml
:但是,如果要使用jsp或servlet格式化错误页面,则需要:
添加
<error-page>
元素添加到所有应用程序,方法是将以下内容添加到$CATALINA_BASE/conf/web.xml
:登上
$CATALINA_BASE/errors
文件夹下WEB-INF/errors
在所有应用中。这可以通过将以下内容添加到<Context>
中的元素$CATALINA_BASE/conf/context.xml
: