Spring 4 官方文档学习(十一)Web MVC 框架之Flash Attributes
接上一篇中的重定向。
flash attributes提供了一种方式让一个请求保存attribute用于其他请求。这在重定向时很常见--例如,Post/Redirect/Get pattern。flash attributes会被临时的保存--在重定向之前,通常是保存在session中。
对于flash attributes的支持,Spring MVC有两个主要抽象。FlashMap用于hold flash attributes,FlashMapManager用于存储、获取以及管理FlashMap实例。
Flash attribute支持总是打开的,不需要显式的启用。每个请求,都有一个"input" FlashMap -- 带有从前一个请求传来的attributes(如果有),以及一个"output" FlashMap-- 带有将要存储给下一个请求使用的attributes。两个FlashMap实例都可以在任意地方使用RequestContextUtils中的静态方法来访问。
使用注解的controllers通常不需要直接使用FlashMap。相反,@RequestMapping method可以接受一个RedirectAttributes类型的参数,并使用其来添加用于重定向的flash attributes。通过RedirectAttributes添加的flash attributes会被自动传播到"output" FlashMap。 同样的,重定向之后,来自"input" FlashMap的attributes会被自动添加到controller的Model中,以服务目标URL。
匹配请求到flash attributes
flash attributes的概念存在于很多其他Web框架中,且被证明可能导致并发问题。这是因为,根据定义,flash attributes是被存储截止到下一个请求。然而,下一个请求,可能不是预期的接收者,而是另一个异步请求(例如,polling或资源请求),这种情况下,flash attributes会被过早的移除。
为了降低这种问题的可能性,RedirectView会自动给FlashMap实例们加一个印章 -- 带有目标重定向URL的path和query parameters。默认的FlashMapManager会匹配请求和该信息 -- 在查找"input" FlashMap时。
这不会完全消灭并发问题的可能性,但会很大程度上降低。因此,flash attributes,推荐主要在重定向场景中使用!!!
Spring 4 官方文档学习(十一)Web MVC 框架之Flash Attributes的更多相关文章
- Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC
内容列表: 启用MVC Java config 或 MVC XML namespace 修改已提供的配置 类型转换和格式化 校验 拦截器 内容协商 View Controllers View Reso ...
- Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图
接前面的Spring 4 官方文档学习(十一)Web MVC 框架,那篇太长,故另起一篇. 针对web应用的所有的MVC框架,都会提供一种呈现views的方式.Spring提供了view resolv ...
- Spring 4 官方文档学习(十一)Web MVC 框架
介绍Spring Web MVC 框架 Spring Web MVC的特性 其他MVC实现的可插拔性 DispatcherServlet 在WebApplicationContext中的特殊的bean ...
- Spring 4 官方文档学习(十二)View技术
关键词:view technology.template.template engine.markup.内容较多,按需查用即可. 介绍 Thymeleaf Groovy Markup Template ...
- Spring Boot 官方文档学习(一)入门及使用
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- Spring boot官方文档学习(一)
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)
接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion
本篇太乱,请移步: Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 写了删删了写,反复几次,对自己的描述很不 ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(一)
题外话:本篇是对之前那篇的重排版.并拆分成两篇,免得没了看的兴趣. 前言 在Spring Framework官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...
- Spring 4 官方文档学习(十一)Web MVC 框架之编码式Servlet容器初始化
在Servlet 3.0+ 环境中,你可以编码式配置Servlet容器,用来代替或者结合 web.xml文件.下面是注册DispatcherServlet : import org.springfra ...
随机推荐
- WM_MOUSELEAVE 和 WM_MOUSEHOVER 使用
原文链接: http://www.cnblogs.com/weiqubo/archive/2011/04/14/2016323.html 默认情况下,窗口是不响应 WM_MOUSELEAVE 和 WM ...
- Android ListView动画特效实现原理及源代码
Android 动画分三种,当中属性动画为我们最经常使用动画,且能满足项目中开发差点儿所有需求,google官方包支持3.0+.我们能够引用三方包nineoldandroids来失陪到低版本号.本样例 ...
- HDU--Elevator(水题)
Elevator nid=24#time"> Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^ 题目描写叙述 The high ...
- Response.ContentType 详细列表-请求的内容类型详细记录
Response.ContentType 详细列表-请求的内容类型详细记录 作者:王春天一.应用实例: Response.Clear(); Response.ContentType = "t ...
- 关于 二维码 与 NFC 之间的出身贫贱说
关于 二维码 与 NFC 之间的出身贫贱说 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 ...
- TinyXml 操作XML 常用操作
源代码下载:http://sourceforge.net/projects/tinyxml/files/ 如下是一个XML片段: <Persons> <Perso ...
- 史上最全的CDN内容分发网络实战技巧(网络优化)
今天来给大家分享下关于 CDN 的东西,以及我自己的一些发现.一些个人的拙见.总共分为 3 个部分:原理.详解.各种坑. 首先说一下 CDN 的基本原理部分,主要分 4 块来描述:CDN 的由来.调度 ...
- 每日英语:China's Retirement Age Sets Experts at Odds
The politically explosive issue of the official retirement age has drawn academics from two of China ...
- mysql 5.7.15 安装配置方法图文教程(转)
http://www.jb51.net/article/92521.htm ******************************* MySQL数据库作为关系型数据库中的佼佼者,因其体积小,速度 ...
- C#中一道关于多线程的编程题
题目的意思是这样的:让两个线程A和B将自己的ID轮番写入一个文件中,每个线程重复十次写入后执行一个回调函数,说“I'm OK”,就这样.我是一名QA,不是开发,出于兴趣报考了公司的C#课程考试,多线程 ...