重定向的问题

重定向的问题

在controller中使用response.sendRedirect()的时候,如果路径以"/"开头,表示服务器根路径,这一点和之前的重定向一样,没有疑问。

而使用return "/xxx";,发现重定向自动加了项目路径,而不是只有服务器的根路径。

请老师讲一下其中的道理

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

我先确认一下哈,你的项目名是不是指的是在Application context中指定项目名称了?你提这个问题是因为在代码中自动加上项目名称导致错误了吗?

http://img1.sycdn.imooc.com//climg/5b7fdcb30001ff8910830346.jpg

祝学习愉快!

  • 程序人生001 提问者 #1
    对,项目名称是有的。 疑问点在于:response.sendRedirect("/xx")不会自动加项目路径,而return "redirect:"/xx",会自动加上项目路径。 我从很多方面获得的信息是:重定向中使用"/"代表的是服务器路径,项目路径需要自家加。 虽然可以debug把一个功能实现了,但是不明所以。所以请教下老师。
    2018-08-24 20:33:48
  • 程序人生001 提问者 #2
    虽然Handler中,使用return "redirect:/xxx" 这个语句完成重定向就够了,基本不会用到response.sendRedirect()。但是还是想明白这两者有什么不同。
    2018-08-24 20:40:19
  • 好帮手慕珊 回复 提问者 程序人生001 #3
    其实你总结的这些就已经是两者的不同了,毕竟一个是SpringMVC的重定向方式,一个是Servlet的实现方式,他们的实现过程肯定不同,所以导致我们使用时看到的使用方式也不同。祝学习愉快!
    2018-08-27 10:22:57
好帮手慕阿莹 2018-08-24 16:10:55

return "/xxx"相当于转发,不用写项目路径。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 程序人生001 #1
    不好意思,写错了。是 return "redirect:/xxx"。这样也会自动加上项目路径
    2018-08-24 16:29:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师