目录

spring mvc/spring boot 301的坑

HttpServletResponse的sendRedirect 永远返回302不会是301

就算设置setStatus(301)也没有用, sendRedirect是个便捷方法,不会去检查status code

spring 的return  "redirect /xxx" 也就是这个方法的简单封装,也是无法返回301

正确返回301 的方式有

1,

RedirectView redirectView = new RedirectView("/xx");
redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
return new ModelAndView(redirectView);

2,

 response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
 response.setHeader("Location",redirectUrl);

3,

@ResponseStatus(HttpStatus.MOVED_PERMANENTLY)