Spring源码学习--Spring跨重定向请求传递数据跟踪实现

摘要

之前项目1.0使用structs/spring,现在升级2.0是基于SpringMVC/Spring框架来开发的,在开发的过程中经常需要在后台将一个请求重定向到另一个url,原先通过structs中的配置redirect很容易带参数到新的url中,在SpringMVC中是通过URL模板和flash属性两种方式实现重定向的,下面主要跟踪源码来观察找一下SpringMVC是如何实现这两种方式的重定向。其中:RedirectAttributes是SpringMVC3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的。


Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。相较于Struts,其有如下优势:

  1. 易用性:SpringMVC上手简单,并且可以与Spring无缝结合,毕竟都是一个公司的产品,学习起来也比较简单,比如从前端给对象填充值,他的处理就比Struts2简单多了,再比如对Restful风格的URL的支持,这些SpringMVC都比Struts2做的好N倍。
  2. 安全性:Struts2几乎每年都会出漏洞补丁,其中有些是较致命的。而Spring MVC到目前为止还没有发现比较严重的漏洞。
  3. 可扩展性:Spring MVC依靠Spring这颗大树,Spring的实力我想大家不用怀疑吧,包括版本的更新、迭代这些都是经过历史见证的

基于以上,Spring MVC逐步成为开发主流框架。

一、源码跟踪图示

在使用Spring MVC过程中,如果需要重定向请求且带参数(简单类型或复杂对象类型),目前网上没有较全的说明,且分散较散,基于此,本人通过解读Spring MVC源码查找该问题的解决方案,并在本篇中给予详尽说明。Spring MVC接收到请求之后,通过doDispatch 来进行处理,下图为其处理流程图:

这里写图片描述
Spring MVC请求处理流程图

解析关键步骤如下:

(1)、当请求进入dispatcherServlet时,会通过handlerMapping查找对应的handler(controlle

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值