Web UI项目中,很春天多控制器视图函数直接返回html页面,还有一些视图函数是要重定向或转发到其他的url上。
重定向和转发的区别:
重定向重定向:完整的重定向包含两次请求-响应过程,第一次是访问原始url,第二次是服务器通知客户端访问重定向后的url。重定向完成后,浏览器的地址是重定向后的url,而不是原始的url。
重定向的使用场景:因为重定向会修改浏览器地址,所以形式提交应该使用重定向,以免用户刷新页面导致形式重复提交。
转发转发:完整的转发仅包含一次请求-响应过程,用户发出请求后,服务器端视图函数先处理自己的逻辑,然后在服务器端有调用另一个视图函数,最后将反应返回给浏览器。
示例:
@RequestMapping (“/? 公开课DemoController {/* *提出示例:以字符串的形式构建目标url, url需要加上向前:前缀 * */@RequestMapping ("/forwardTest1”) 公共字符串forwardTest1 () { 返回“转发:/forwardTarget& # 63; param1=v1& param2=v2”; }/* *提出示例:使用ModelAndView()设置转发的目标url * */@RequestMapping ("/forwardTest2”) 公共ModelAndView forwardTest2 () { ModelAndView飞行器=new ModelAndView ("/forwardTarget ");//绝对路径//ModelAndView飞行器=new ModelAndView (“forwardTarget”);//相对路径也好的 飞行器。addObject (“param1”、“value1”); 飞行器。addObject (“param2”、“value2”); 返回飞行器; }/* *重定向目标有三种构建方式 * 1。使用重定向:前缀url方式构建目标url * 2。使用RedirectView类型指定目标 * 3。使用ModelAndView类型指定目标,ModelAndView视图名默认是向前,所以对于重定向,需要加上重定向:前缀 * */@RequestMapping ("/noParamRedirect”) 公共RedirectView noParamTest () { 返回新RedirectView (“http://www.qq.com”); } 公共字符串noParamTest2 () { 返回“重定向:http://www.qq.com”; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。