在SpringMVC中同样有重定向与请求转发,我们都知道在一个Controller中我们可以直接返回一个字符串然后被视图解析器解析和处理,然后到指定的页面中,实际上这一个过程是一个请求转发的过程,它们仍然在同一Request中,但是如果我们使用redirect或者forward,如下格式:
return “redirect:welcome” ; return "forward:welcome"
此时请求会到达一个Controller,不会被视图解析器解析处理,redirect重定向一个请求,通常用于防止表单重复提交,同时也可以通过RedirectAttributes(3.1Version 之后)携带参数,forward表示请求转发。
在我们使用redirect或forward时,还可以携带参数,例如:return “redirect:welcome?username=zhangsan”;
return "forward?useename=zhangsan".在redirect时,我们还可以通过RedirectAttributes传递参数,通过addAttribute(String arg1,Objedct arg2)传递参数,该参数附加在URL后面,因此,同样可以通过Request.getParameter()获得。