spring mvc controller的一些疑惑

爱打球的程序猿 2015-12-04 11:20:15
拿一个最简单的简单的登录例子来说。
登陆页填写账号密码后,会提交到userController/login.do控制器去处理业务,然后 登陆成功后会返回至index.jsp

一开始
modelAndView.setViewName("/user/index");
这样视图是可以显示的 但是地址依然是user/login.do

后来百度后改为
modelAndView.setViewName("redirect:/user/index");
重定向后地址栏才变为user/index。

想问下一般开发时候关于地址跳转都是怎么处理的?
...全文
116 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 1 楼 dracularking 的回复:
forward就不改变地址 改变地址就redirect
所以一般开发时候controller里跳转都用
response.sendRedirect("admin/login"); response.forward("admin/login");
这种方法跳转吗?
dracularking 2015-12-04
  • 打赏
  • 举报
回复
forward就不改变地址 改变地址就redirect
dracularking 2015-12-04
  • 打赏
  • 举报
回复
引用 2 楼 u013994112 的回复:
[quote=引用 1 楼 dracularking 的回复:] forward就不改变地址 改变地址就redirect
所以一般开发时候controller里跳转都用
response.sendRedirect("admin/login"); response.forward("admin/login");
这种方法跳转吗?[/quote] 至于哪种跳转如果可以自由选择的话是看业务需求的
乐古 2015-12-04
  • 打赏
  • 举报
回复
实现页面跳转的方式有两种:转发(forward)和重定向(redirect)。二者的最终实现的结果是一样的,但其实现的过程是不一样的: 转发,顾名思义,客户端把请求发送到controller,controller访问页面所要跳转的地址,所以就是客户端访问服务器地址,服务器访问要跳转的地址,最后响应给你。等同于客户端访问的就是controller本身。 而重定向就不一样了,客户端把请求发送到controller,controller告诉你去访问另一个地址(要跳转的地址),也就是你首先访问了 controller,又访问了要跳转的地址。实际上客户端访问了两个地址。 另外,spring等大部分框架默认跳转方式都是转发,所以就出现了你上述的那种情况。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧