跳转和重定向区别

跳转
1.使用request完成
2.跳转的本质是在服务器内部把请求和响应进行转发,转发给下一个资源
3.如果request中有数据,在跳转到的每一个资源中都可以拿到一个数据(从开始到结束只有一个request对象)
4.由于服务器跳转是把请求和响应在服务器内部中来回转发,所以浏览器的地址栏中的地址是不受影响的,所以始终还是第一次发出请求的地址

重定向
重定向了/test路径 要提供/test访问路径接口
重定向就是重新换个网址重新发送请求 相当于

@RequestMapping(value="/method/test",method=RequestMethod.DELETE)
public String DELETE(){
System.out.println("DELETE");
return "redirect:/test";
}

@GetMapping("/test")
public String redirecttest(Model model){
model.addAttribute("msgDELETE","DELETE");
return "test";
}
这个就是通过访问/method/test路径 然后实现DELETE()方法 return "redirect:/test" 又访问了/test路径 然后返回test页面
我的错误是在于 重定向了/test路径 却没有提供/test访问的页面

1.使用response完成
2.重定向的本质是把资源路径通过响应返回给浏览器(通过响应头信息),让浏览器向这个新地址发送一个新请求
3.如果request中有数据,重定向后在新的资源中是拿不到这个数据的(重定向会发一个全新的请求,但是数据在上一个老的请求中)
4.由于重定向让浏览器发出新的请求,所以浏览器地址栏中的地址会变成新请求的地址
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容