简单谈谈SpringMVC转发和重定向的区别

 更新时间:2017年06月28日 10:12:32   投稿:jingxian  
下面小编就为大家带来一篇简单谈谈SpringMVC转发和重定向的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

以上这篇简单谈谈SpringMVC转发和重定向的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java上转型和下转型对象

    Java上转型和下转型对象

    这篇文章给大家讲述了Java上转型和下转型对象的详细用法以及相关的代码分享,有兴趣的朋友可以学习下。
    2018-03-03
  • Springboot基于Redisson实现Redis分布式可重入锁源码解析

    Springboot基于Redisson实现Redis分布式可重入锁源码解析

    这篇文章主要介绍了Springboot基于Redisson实现Redis分布式可重入锁,本文通过案例源码分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 深入了解Spring中的@Autowired和@Resource注解

    深入了解Spring中的@Autowired和@Resource注解

    Spring中的@Autowired和@Resource注解都可以实现依赖注入,但使用方式、注入策略和适用场景略有不同。本文将深入探讨这两种注解的原理、使用方法及优缺点,帮助读者更好地理解和运用Spring依赖注入机制
    2023-04-04
  • Java调度线程池ScheduledThreadPoolExecutor不执行问题分析

    Java调度线程池ScheduledThreadPoolExecutor不执行问题分析

    最近项目上反馈某个重要的定时任务突然不执行了,很头疼,开发环境和测试环境都没有出现过这个问题。定时任务采用的是ScheduledThreadPoolExecutor,后来一看代码发现踩了一个大坑。本文就来和大家聊聊这次的踩坑记录与解决方法,需要的可以参考一下
    2023-03-03
  • Java扩展Nginx之共享内存

    Java扩展Nginx之共享内存

    这篇文章主要介绍了Java扩展Nginx之共享内存的相关资料,需要的朋友可以参考下
    2023-07-07
  • libsvm支持向量机回归示例

    libsvm支持向量机回归示例

    这篇文章主要介绍了libsvm支持向量机回归示例,需要的朋友可以参考下
    2014-05-05
  • Java如何优雅地避免空指针异常(NullPointerException)

    Java如何优雅地避免空指针异常(NullPointerException)

    这篇文章主要给大家介绍了关于Java如何优雅地避免空指针异常(NullPointerException)的相关资料,空指针异常(NullPointerException)是一种常见的运行时异常,它在Java编程中经常出现,需要的朋友可以参考下
    2024-03-03
  • 深入理解Spring Boot的日志管理

    深入理解Spring Boot的日志管理

    这篇文章主要给大家深入的介绍了Spring Boot日志管理的相关资料,文中介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • 简单介绍Java 方法的重载、可变参数、作用域

    简单介绍Java 方法的重载、可变参数、作用域

    这篇文章主要简单介绍Java 方法的重载、可变参数、作用域的相关资料,需要的朋友可以参考下
    2023-07-07
  • Java中浅拷贝和深拷贝详解

    Java中浅拷贝和深拷贝详解

    大家好,本篇文章主要讲的是Java中浅拷贝和深拷贝详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论