正如标题所暗示的,我希望在发生异常后更改http状态。简短的背景是,为了能够显示错误页面,我需要向客户机发送一个200的状态代码。(在错误状态代码中,它转储数据并显示一个通用的错误弹出窗口)
为了测试这一点,我有:
@RequestMapping(value= "/err")
public String throwError()
{
throw new IllegalStateException();
}
<error-page>
<error-code>500</error-code>
<location>/errorPage</location>
</error-page>
@RequestMapping(value = "/errorPage", method = RequestMethod.GET)
public String errorPage(HttpServletResponse response, Model model, Locale locale ) {
int errorStatus = response.getStatus();
response.reset();
model.addAttribute("errorStatus", errorStatus);
response.setStatus(HttpServletResponse.SC_ACCEPTED);
LOGGER.debug("---------->" + response.getStatus());
return "errorPage";
}
令人困惑的(也许不是?)事情是,如果我从errorPage控制器返回一个响应实体并设置状态代码,这将被接受。例如:
return new ResponseEntity(HttpStatus.ACCEPTED);
我认为这不是一个bug,而是一个特性,Spring比我更清楚,我真的应该改变我实现这整件事的方式。(!!?)
我不能只返回一个ResponseEntity,因为我需要呈现错误页。我想如果我分散自己,在控制器中呈现页面,并将其放入ResponseEntity中,就可以实现我想要的,但这似乎...错了。
可以使用以下代码设置状态代码
@RequestMapping(value= "/err")
public String throwError()
{
throw new IllegalStateException(message,
errorCode);
}
嗨,我正在使用Hibernate和Postgresql尝试一个简单的Spring MVC CRUD应用程序。我得到了下面的异常 例外: POM.xml文件 在WEB-INF下 网状物xml文件 spring-servlet.xml文件 com.bean包下的EmployeeBean类 com.controller下的EmployeeController类 com下的EmployeeDao类。dao
我们在前端使用OpenWeb js库,它们需要.NET中间层在发生某些类型的错误时向它们发送特定的HTTP头状态代码。我试图做到这一点: 它有点半途而废。看截图:http状态码 http://zerogravpro.com/temp/pic.png 请注意,我在响应标头中实现了状态码400,但我确实需要请求标头中的400。相反,我得到了“200 OK”。我如何实现这一点? 我用于进行调用的 URL
HTTP 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。 这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动。 100-客户端应当继续发送请求 101-切换协议 102-处理将被继续执行
是否可以根据错误状态代码在spring retry(https://github.com/spring-projects/spring-retry)中设置RetryPolicy?例如,我想用重试状态代码503。因此,它应该忽略所有其他错误代码--[500-502]和[504-511]。
是否可以在不使用Exceptions处理超文本传输协议状态500响应的情况下使用Spring RestTem板?
我创建了一个GET服务来重定向到使用POST的网页。我正在尝试使用,因为有了它,我可以发送请求服务的正文和标头,并且我已经实现了从服务中获取我需要的信息。 然而,我需要重定向到具有POST服务的服务器,但我不能,因为我不知道如何设置状态代码,我将其重定向到另一台服务器。 这些是我正在使用的函数: