在我的应用程序中,我想返回错误代码并在服务器上设置错误消息。这就是我使用的:
response.setStatus(530);
response.sendError(530, e.getMessage());
当我返回类似的自定义错误时,应用引擎始终会发送包含在默认html模板中的错误代码和状态。在javascript中:
$(document).ajaxError(function (event, request, settings) {
// request.statusText is always "Internal Server Error"
// and not my custom status message
// request.responseText is an html string
});
顺便说一句,在开发服务器中它是不同的。 statusText 我的自定义错误文本
答案 0 :(得分:1)
在您的web.xml文件中,您可以指定要在特定错误代码上提供的jsp:
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/jsp/errors/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/jsp/errors/500.jsp</location>
</error-page>
将根据需要呈现jsp。
请注意,这在本地devserver中无法正常运行,您需要进行部署才能看到它的运行情况。为了帮助开发,您可以直接将错误页面加载为jsp。
错误页面呈现仅在resp.sendError(code)
时发生 - 如果你只是resp.setStatus(code, message)
,servlet容器将不会处理这样的错误。这使您仍然可以返回json和ajax调用的错误代码。
如果您尚未指定页面,则servlet容器可自行决定是否提供HTML(如您所见)。