SpringMVC如何自定义响应的HTTP状态码
自定义响应的HTTP状态码
SpringMVC自定义响应的HTTP状态码有两种方法,一种是在返回方法上面加上@ResponseStatus注解,另一个种是在方法内部使用response.setStatus()方法。
注解方式
@ResponseStatus一般是作用在异常类或者方法上,带有@ResponseStatus注解的异常类会被ResponseStatusExceptionResolver 解析,可以实现自定义的一些异常,同时在页面上进行显示。
作用在方法上时,将会修改response的状态码
示例:
@RequestMapping("/204test") @ResponseStatus(value=HttpStatus.NO_CONTENT) public void ping(HttpServletResponse response) throws Exception { System.out.println("20444"); }
response.setStatus()方式
示例:
public ModelAndView respond(HttpServletResponse response) throws Exception { response.setStatus(status); response.setContentType(contentType); response.setHeader("Content-Disposition", "Inline; filename=" + jobName + "Properties.csv"); response.getWriter().write(message); return null; } }
http状态码406(Not Acceptable)
先看看406状态码解释
—HTTP 406错误是HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页
大概意思就是请求和程序是没有问题的,但是响应内容无法解析
这个时候想到返回的是一个对象,页面需要接受的话需要Jackson的支持,果断想到问题:缺少Jackson包,修改pom后update project
问题成功解决!!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
RestTemplate的DELETE及PUT等请求方法使用精讲
这篇文章主要为大家介绍了RestTemplate的DELETE及PUT等请求方法的使用精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步2022-03-03SpringBoot 项目添加 MDC 日志链路追踪的执行流程
日志链路追踪就是将一个标志跨线程进行传递,在一般的小项目中也就是在你新起一个线程的时候,或者使用线程池执行任务的时候会用到,比如追踪一个用户请求的完整执行流程,本文给大家介绍SpringBoot MDC 日志链路追踪的代码,感兴趣的朋友一起看看吧2021-06-06
最新评论