SpringMVC 中转发/重定向路径问题

redirect:重定向

该例子所需的项目结构
webapp
-----|> view
-----------|>hello.jsp

	@RequestMapping("/jump")
	public class DispatchController{
		@RequestMapping("/test1")
		public String test1(){
			sout("重定向");
			//------》如果有redirect:则需要填写完整的跳转路径/view/test1.jsp  view前面的/不能少
			return "redirect:/view/hello.jsp";	
		}
	}

forward: 转发

	@RequestMapping("/jump")
	public class DispatchController{
		@RequestMapping("/test1")
		public String test1(){
			sout("重定向");
			return "redirect:/view/hello.jsp";	
		}
		@RequestMapping("/test2")
		public String test2(){
			sout("转发到其他handler");
			return "forward:test1";//相对路径的写法
			return "forward:/jump/test1";//绝对路径
		}
	}

总结:
1.相对路径只能在同一个Controller中使用(@RequestMapping("/jump")类上面有加上这个一级路径),若要跳到其他控制器在使用相对路径就会出现意想不到的路径拼接问题,
2.所以访问其他控制器的话,最好使用绝对路径!!!

两种方式的选择

问题:

增删改若是采用转发的话,在页面刷新的话会出现重发该请求,会导致用户多次注册…之类的操作!
采用重定向,会结束上次请求使用的是新的请求,就不会出现上述情况

1.增删改后,为了防止重复提交,使用重定向结束请求 --》通过session延续
2.查询,使用转发跳转,将本次请求延续下去! --》通过request延续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值