在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中了。

欢迎大家访问机器矩阵java学习论坛:http://machine-matrix.com

最新文章

  1. Unity3D 之 iTween 相关
  2. lintcode :单词搜索
  3. hdu 3652 打表
  4. java中如何使正在运行中的线程退出
  5. C# WinForm判断Win7下是否是管理员身份运行
  6. zabbix 获取jvm session信息
  7. [设计模式-创建型]工厂方法(Factory Method)
  8. 一个基于Behave框架的http接口测试实例
  9. Java 原始数据类型的计算:运算符重载(Operator Overload)和类型转换(Type Conversion)
  10. Codeforces_776B: Sherlock and his girlfriend(素数筛)
  11. 双机热备ROSE HA工作原理
  12. Java代码调用服务器上的Shell脚本
  13. Problem C: 平面上的点和线——Point类、Line类 (III)
  14. CY7C68013 USB接口相机开发记录 - 第一天:资料下载
  15. 使用Django创建网站项目<二>
  16. Dijkstra及其堆优化
  17. VirtualBox设置共享文件夹
  18. A Bug's Life(向量偏移)
  19. xdoj 1028 (素数线性筛+dp)
  20. 测试教程网.unittest教程.4. 实例: 读取测试数据并测试弱密码

热门文章

  1. 【iOS开发】3.UIViewController
  2. (5)微信二次开发 之 XML格式数据解析
  3. list和map集合
  4. php如何应对秒杀抢购高并发思路
  5. 《安卓网络编程》之第五篇 WebView的使用
  6. JS高级-数据结构的封装
  7. nginx源码分析——线程池
  8. 线程机制、CLR线程池以及应用程序域
  9. MysqlRouter 实现mysql5.6读写分离
  10. 从零开始——PowerShell应用入门(全例子入门讲解)