博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC转发和重定向区别!
阅读量:4968 次
发布时间:2019-06-12

本文共 1243 字,大约阅读时间需要 4 分钟。

在servlet中,转发和重定向是由request和response完成的。两者之间的区别请看我之前的文章。那么在springMVC中是如何完成的呢?

/**转发**/ 

@RequestMapping("/login.do")

public String login(HttpServletRequest request,HttpServletResponse response){

request.setAttribute("message", "hello");

return "forward:/index.do"; //forward在跳转后可以取到message值

}

index.do为另外一个path,也就是RequestMapping中的值。

@RequestMapping("/index.do")

public String index(HttpServletRequest request,HttpServletResponse response){

return "welcome";

}

/**重定向**/

@RequestMapping("/logout.do")

public String logout(HttpServletRequest request,HttpServletResponse response){

request.setAttribute("message", "hello");

return "redirect:/register.do"; //redirect在跳转后无法取到message值

}

register.do为另外一个path,也就是RequestMapping中的值。

@RequestMapping("/register.do")

public String register(HttpServletRequest request,HttpServletResponse response){

return "register";

}

另外forward跳转后地址栏URL不会改变 而redirect会改变

当我们使用重定向时,在后台传到页面的参数全部丢失,除非放在session中。所以在springMVC有一种解决方式如下:

@RequestMapping(“/update.do”)

public String update( RedirectAttributes redirectAttributes) {

redirectAttributes.addFlashAttribute("message", "操作成功");

return "redirect:/admin/user";

}

在重定向的页面中,可以获取到message的值,这是由于spring将message放入session中了。

转载于:https://www.cnblogs.com/cai170221/p/7088264.html

你可能感兴趣的文章
Java中Properties类的操作
查看>>
过滤Filter推断用户是否登录
查看>>
不是IT圈人的IT创业优劣势!
查看>>
【转载】博弈论的总结
查看>>
4. 尽可能不用Distinct
查看>>
利用pip指定第三方包加载目录
查看>>
webrtc 音频一点相关知识
查看>>
import from 'xxx'是如何找到node_modules目录下的
查看>>
Java如何清空数组、对象
查看>>
软件企业价格估算方法
查看>>
DOS命令--实用设置网络IP(无桌面)
查看>>
利用JQuery 解析MVC控制器传到前台的Json数据
查看>>
一种反射的方式
查看>>
android环境搭建
查看>>
写javascript是前台和后的内容的区别
查看>>
java旅程(二) 基本语法
查看>>
仓储repository概念
查看>>
freemarker<一>
查看>>
程序员的数学--排列组合(0)
查看>>
c语言 rand() 随机函数
查看>>