SpringMVC怎么样设置重定向和转发?
参考答案:
在Spring MVC中,你可以使用RedirectView
和ModelAndView
来分别实现重定向(Redirect)和转发(Forward)。
重定向(Redirect)
重定向是客户端的行为,它会发送一个新的请求到服务器。在Spring MVC中,你可以使用RedirectView
或者通过返回一个字符串加上"redirect:"前缀来实现重定向。
使用RedirectView
@RequestMapping(value = "/redirectExample", method = RequestMethod.GET)
public RedirectView redirectExample() {
return new RedirectView("/newLocation");
}
返回字符串并添加"redirect:"前缀
@RequestMapping(value = "/redirectExampleString", method = RequestMethod.GET)
public String redirectExampleString() {
return "redirect:/newLocation";
}
转发(Forward)
转发是服务器内部的行为,它会在服务器内部将请求转发到另一个资源。在Spring MVC中,你可以使用ModelAndView
来实现转发。
使用ModelAndView
@RequestMapping(value = "/forwardExample", method = RequestMethod.GET)
public ModelAndView forwardExample() {
ModelAndView modelAndView = new ModelAndView("newLocation");
modelAndView.addObject("message", "This is a forwarded message.");
return modelAndView;
}
在这个例子中,请求会被转发到名为"newLocation"的视图。你还可以添加模型属性(在这个例子中是"message")来传递给视图。
注意
- 重定向会发送一个新的HTTP请求,而转发则在服务器内部进行,不发送新的HTTP请求。
- 重定向的URL通常是绝对路径,而转发的URL通常是相对路径。
- 重定向可以跨域,而转发只能在同一服务器内部进行。
- 重定向和转发在安全性上也有所不同,重定向可能会暴露一些敏感信息,而转发则相对更安全。