参考: http://www.open-open.com/lib/view/open1397266120028.html
为解决POST/Forward/GET出现的重复提交数据问题,改用POST/Redirect/GET机制。但由于Redirect导致前后请求无法通信,除非在Redirect之前将属性save到Session中。因此为访问到上一请求的属性,利用Flash Attribute特性。
注意:Flash Attribute特性在Spring 3版本后支持。
原理:每次请求都会生成2个FlashMap,分为input和output。input FlashMap用于存储上一请求的属性;output FlashMap用于存储本次请求的属性。在redirect之前output FlashMap会临时存储于Session中,在redirect之后,上次请求的属性会在Session中移除,但会再次存储于下次请求中的input FlashMap中。
实战: 详见参考