Java 如何自定义自定义http错误代码返回的默认html文件
在我的应用程序中,我想返回错误代码并在服务器上设置错误消息。这就是我使用的:Java 如何自定义自定义http错误代码返回的默认html文件,java,google-app-engine,Java,Google App Engine,在我的应用程序中,我想返回错误代码并在服务器上设置错误消息。这就是我使用的: response.setStatus(530); response.sendError(530, e.getMessage()); 当我返回这样的自定义错误时,AppEngine总是发送默认html模板中包装的错误代码和状态。在javascript中: $(document).ajaxError(function (event, request, settings) { // request.stat
response.setStatus(530);
response.sendError(530, e.getMessage());
当我返回这样的自定义错误时,AppEngine总是发送默认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是我的自定义错误文本在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>
404
/WEB-INF/jsp/errors/404.jsp
500
/WEB-INF/jsp/errors/500.jsp
jsp将根据需要呈现
请注意,这在本地devserver中无法正常工作,您需要进行部署才能看到它的运行。为了帮助开发,您可以直接将错误页面作为jsp加载
错误页面呈现仅在resp.sendError(code)
时发生-如果只执行resp.setStatus(code,message)
操作,servlet容器将不会处理此类错误。例如,这允许您仍然返回json和ajax调用的错误代码
如果您没有指定页面,servlet容器将自行决定是否提供HTML(正如您已经看到的)