猿问

response.setStatus的原理问题

springMvc 处理HttpRepsonse时 同时设置response.setStatus(301)response.sendRedirect("/hello");时,HTTP response Headers status is 302

调换两个的位置也是如此,所以想理解下具体的原理

相关代码

  //input
  response.sendRedirect("/hello");  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

// outputRequest URL: http://localhost:9999/account/listRequest Method: GET
Status Code: 302 Remote Address: [::1]:9999Referrer Policy: no-referrer-when-downgrade
HTTP/1.1 302Location: http://localhost:9999/helloContent-Length: 0Date: Sun, 29 Jul 2018 17:38:31 GMT


郎朗坤
浏览 1343回答 2
2回答

HUH函数

没用过springMVC ,估计这个302是sendRedirect 里面发送的吗,去看一下这个函数的源码,就知道了

慕斯王

你观察一下名字 sendRedirect 和 setStatus. send是发送, sendRedirect会直接将响应发送给用户, 所以你后续在设置响应的状态码已经没用了, 响应已经发回给客户端了.
随时随地看视频慕课网APP
我要回答