java - java错误页返回状态代码 200默认响应

  显示原文与译文双语对照的内容

我们希望实现一个"故障"策略来管理应用程序中的异常。 applications应用中的一个问题,基本上我们希望返回一个有效的响应,而不是抛出一个有效的响应,它仍然返回一个有效的响应。

我们的第一个实现是一个Servlet过滤器,它将在 try/catch 块中封装所有请求,并从 catch 。e.g. 返回缺省返回:


try{


 chain.doFilter()


} catch (Throwable t) {


 generatePassbackResponse(HttpServletRequest req, HttpServletResponse res)


}



尽管这个问题很有效,但是一个问题看起来是如这里:当引发异常时,响应仍然通过状态代码。 500.

HttpServletResponse.setStatus(200) 没有效果,并且 java javadoc,表示它只适用于正常请求。

第二种实现思想是我们可能不得不转发到另一页,或者将errorPage插入到该页面,尽管我们感兴趣的是是否有人拥有特定的推荐建议。

时间: 原作者:

有两种方法设置响应的HTTP状态:

  • setStatus() 将只设置状态
  • sendError() 将设置状态和触发 <error-page> 机制

web服务 sendError表示,应该在调用的sendError ( 这可以解释你的数据库的行为) 之后提交响应。

实现自定义 HttpServletResponseWrapper 将允许你强制执行收费的sendError ( 可能在内存中缓存整个请求,这样你就可以发送"passbacks"对于在请求点之后发生的异常,通常提交请求) 所需要的行为。

...