跳到主要内容

SpringMVC怎么样设置重定向和转发?

参考答案:

在Spring MVC中,你可以使用RedirectViewModelAndView来分别实现重定向(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通常是相对路径。
  • 重定向可以跨域,而转发只能在同一服务器内部进行。
  • 重定向和转发在安全性上也有所不同,重定向可能会暴露一些敏感信息,而转发则相对更安全。