获取HttpServletRequest与HttpServletResponse
- 在Controller中的方法参数中添加HttpServletRequest与HttpServletResponse
@RequestMapping("/info")
@ResponseBody
public BaseResponse info(HttpServletRequest request, HttpServletResponse response) {
}
- 通过Spring注入
@Autowired
private HttpServletRequest mRequest;
@Autowired
private HttpServletResponse mResponse;
- 通过RequestContextHolder获取
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpServletRequest httpServletRequest = servletRequestAttributes.getRequest();
HttpServletResponse httpServletResponse = servletRequestAttributes.getResponse();
重定向与转发
- 原生的重定向与转发
// 重定向
response.sendRedirect("/info.jsp");
// 转发
request.getRequestDispatcher("/list.jsp").forward(request, response);
- SpringMVC的重定向与转发
@RequestMapping("/info")
public String info() {
// 重定向,默认是redirect
return "redirect:info";
}
@RequestMapping("/info")
public ModelAndView info() {
// 重定向,默认是redirect
return new ModelAndView("redirect:info");
}
@RequestMapping("/info")
public String info() {
// 转发
return "forward:list";
}
@RequestMapping("/info")
public ModelAndView info() {
// 转发
return new ModelAndView("forward:info");
}
ModelAndView
// 设置视图名称
public ModelAndView(String viewName) {
this.view = viewName;
}
// 设置显示的视图如:MappingJackson2JsonView
public ModelAndView(View view) {
this.view = view;
}
// 设置属性
public ModelAndView addObject(String attributeName, @Nullable Object attributeValue) {
getModelMap().addAttribute(attributeName, attributeValue);
return this;
}
网友评论