常州网站推广机构,景区旅游网站平台建设,在国外网站建设,wordpress 发不出邮件介绍#xff1a; 在Spring MVC中#xff0c;我们可以通过几种方式设置HttpResponse的状态。 在本教程中#xff0c;我们将使用ResponseStatus批注实现它。 我们可以使用ResponseStatus标记带有状态码和应返回原因的方法或异常类。 在调用标记的处理程序方法时或引发指定的异… 介绍 在Spring MVC中我们可以通过几种方式设置HttpResponse的状态。 在本教程中我们将使用ResponseStatus批注实现它。 我们可以使用ResponseStatus标记带有状态码和应返回原因的方法或异常类。 在调用标记的处理程序方法时或引发指定的异常时 HTTP状态将设置为使用ResponseStatus批注定义的状态 。 使用方法 默认情况下我们的Spring Controller中的方法在成功执行时会返回HTTP Status 200OK 。 如果我们想从一个控制器方法中返回另一种类型的HttpStatus怎么办 为此我们可以使用ResponseStatus对其进行标记 RequestMapping(method RequestMethod.POST)
ResponseStatus(HttpStatus.CREATED)
public void storeEmployee(RequestBody Employee employee) {...
} 可选我们可以使用此批注标记Controller类。 在这种情况下响应代码配置将应用于所有请求处理程序方法。 我们还可以选择使用此批注来标记ExceptionHandler和ControllerAdvice bean中的方法。 请注意 仅当标记的方法成功执行且没有引发任何异常时 Spring才会使用ResponseStatus 。 带 我们可以使用ResponseStatus批注标记异常类 ReponseStatus(value HttpStatus.FORBIDDEN, reason Employee isnt authorized)
public class EmployeeAccessDeniedException extends Exception {public EmployeeAccessDeniedException(String msg) {super(msg);}
} 当Spring捕获到这样的异常时它将基于提供的设置抛出响应状态。 注意 除非我们也用ResponseStatus标记它们否则Spring将对所有子类使用相同的状态配置。 在这里我们还指定了例外原因 。 Spring将调用HttpServletResponse.sendError方法时 ResponseStatus用于方法以及提供的原因 或者 在异常类上使用ResponseStatus 使用sendError方法意味着它会生成HTML错误页面并将其发送到客户端。 因此 在REST Controller方法中 使用ResponseStatus时 应避免提及原因 。 结论 在本快速教程中我们研究了如何在Spring MVC中设置HttpResponse的状态。 我们了解了ResponseStatus与方法以及异常类的用法。 翻译自: https://www.javacodegeeks.com/2019/05/using-responsestatus-http-status-spring.html