问题在标题中。我有一个 Spring MVC Web 应用程序,我必须修改很多东西,我对此很陌生,在做任何事情之前我试图了解它是如何制作的。
有什么区别:
return new ModelAndView("redirect:surveys.hmtl");
和
return new ModelAndView("surveys.html");
谢谢。
问题在标题中。我有一个 Spring MVC Web 应用程序,我必须修改很多东西,我对此很陌生,在做任何事情之前我试图了解它是如何制作的。
有什么区别:
return new ModelAndView("redirect:surveys.hmtl");
和
return new ModelAndView("surveys.html");
谢谢。
第一个重定向:
POST or GET
browser -------------------------------------> spring controller
redirect to surveys.html (status = 302)
<------------------------------------
GET
-------------------------------------> surveys.html
final page
<-------------------------------------
第二个转发:
POST or GET
browser -------------------------------------> spring controller
|
|
final page V
<------------------------------------- surveys.html
重定向 - 向客户端发送 http 302 重定向。然后客户端将使用给定的 url 向服务器发送一个新请求。
同时return new ModelAndView("surveys.html");
指示spring将此视图返回给客户端
从程序员的角度来看
return new ModelAndView("redirect:surveys.hmtl");
当您使用重定向时,您会将控制器重定向到适用于重定向 url 的另一个控制器。简单地说,您可以拥有处理该路径的控制器。该控制器将被解雇。并且可以重定向到另一个页面。然后在 HTTP 响应中,您可以看到重定向状态 3xx 而不是正常情况下的 200。
return new ModelAndView("surveys.html");
当您不使用重定向时,您只会调用 View 部分并显示您的 html。有 http 响应 200/OK 状态。