Go Revel - Session / Flash(会话与flash)
##Session / Flash 作用域
revel提供了两种cookies存储机制:
// 一个加密签过的cookie (限制为4kb).
// 限制: Key 中不能有冒号
type Session map[string]string
// Flash代表只作用于每个请求的cookie,属于瞬时消息
// 它允许存储只跨越一个页面的数据,是临时性的
// 通常被用于存储并显示 执行成功 或 错误消息
// e.g. the Post/Redirect/Get pattern: http://en.wikipedia.org/wiki/Post/Redirect/Get
type Flash struct {
Data, Out map[string]string
}
##Session
Revel的会话是指一个字符串map,被存储为加密签名的cookies。
有几点需要注意:
1、4kb限制
2、所有数据被序列化为字符串
3、所有数据可以被用户看到(未加密),并可以被安全的修改
##Flash
`Flash`提供一次性字符串存储。
它可以在`Post/Redirect/Get`请求的页面上一次性的显示“操作成功!”或“操作失败!”消息。
示例:
// Show the Settings form
func (c App) ShowSettings() revel.Result {
return c.Render()
}
// Process a post
func (c App) SaveSettings(setting string) revel.Result {
c.Validation.Required(setting)
if c.Validation.HasErrors() {
// 在flash中存储错误提示信息
c.Flash.Error("Settings invalid!")
c.Validation.Keep()
c.FlashParams()
return c.Redirect(App.ShowSettings)
}
saveSetting(setting)
// 在flash中存储成功提示信息
c.Flash.Success("Settings saved!")
return c.Redirect(App.ShowSettings)
}
上面示例的过程:
1、用户获取setting页面
2、用户向setting页面POST数据
3、程序处理用户提交的数据,并且保存错误/成功提示信息到`flash`,然后使用`REDIRECT`重转向至其他页面。
这里用到了两个便利的方法:
1、`Flash.Success(message string)` 是 `Flash.Out["success"] = message`的简化版
2、`Flash.Error(message string)` 是 `Flash.Out["error"] = message`的简化版
flash信息可以在模板中使用key来访问。例如,在模板中使用以下方式来获取成功/错误信息:
{{.flash.success}}
{{.flash.error}}
Go Revel - Session / Flash(会话与flash)的更多相关文章
- Java EE : 三、图解Session(会话)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.Session由来 二.Sessio ...
- Nand Flash,Nor Flash,CFI Flash,SPI Flash 之间的关系
前言: 在嵌入式开发中,如uboot的移植,kernel的移植都需要对Flash 有基本的了解.下面细说一下标题中的中Flash中的关系 一,Flash的内存存储结构 flash按照内部存 ...
- nor flash和nand flash的区别
NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...
- (三)NAND flash和NOR flash的区别详解
我们使用的智能手机除了有一个可用的空间(如苹果8G.16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的.这二种存储设备我们都统称为“FLASH ...
- NAND flash和NOR flash的区别详解
我们使用的智能手机除了有一个可用的空间(如苹果8G.16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的.这二种存储设备我们都统称为“FLASH ...
- NOR FLASH与NAND FLASH
整理自NOR FLASH 与NAND FLASH 1:NandFlash与NorFlash典型电路图 Nor Flash接原理图 从上图可以看出,该NorFlash采用并行地址和数据总线, 其中,21 ...
- NOR flash和NAND flash区别,RAM 和ROM区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- NOR flash和NAND flash区别,RAM 和ROM区别d
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- SPI FLASH与NOR FLASH的区别?
1.SPI Flash (即SPI Nor Flash)是Nor Flash的一种: 2.NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR ...
随机推荐
- MySQL中 optimize table '表名'的作用
语法: optimize table '表名' 一,原始数据 1,数据量 2,存放在硬盘中的表文件大小 3,查看一下索引信息 索引信息中的列的信息说明. Table :表的名称.Non_unique: ...
- Android 获取自带浏览器上网记录
先是搜索了一下,在manifest里添加 <uses-permission android:name="com.android.browser.permission.READ_HIST ...
- Linux下多路复用IO接口epoll/select/poll的区别
select比epoll效率差的原因:select是轮询,epoll是触发式的,所以效率高. Select: 1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认 ...
- windows下php的各个版本下载地址
windows下php的各个版本 https://windows.php.net/downloads/releases/archives/
- 微信小程序之顶部固定和底部固定
顶部固定 <view style="position:fixed;top:0;"> ...... </view> 底部固定 <view style=& ...
- 腾讯企业邮箱SMTP-邮件发送失败异常:“ SMTPSendFailedException:501 ϵͳÒÑÇ¿ÖÆ¿ªÆôÕʺÅÉý¼¶ÉèÖã¬ÇëµÇ¼e
这里我们在报警发送邮件用的是腾讯的企业邮箱,突然这两天没有报警邮件,很是奇怪 发送邮件报错 SMTP-邮件发送失败异常:“ SMTPSendFailedException:501 ϵͳÒÑÇ¿ÖÆ ...
- 定期删除elasticsearch 的index 索引
#!/bin/bashfind /data/elasticsearch/data/pro-kz-log/nodes/0/indices/ -type d -mtime +7 | awk -F" ...
- kibana显示报错
"status": 500, "reason": "ElasticsearchException[org.elasticsear ...
- Atitit 我们的devops战略与规划 规范 推荐标准
Atitit 我们的devops战略与规划 规范 推荐标准 1. Vm容器化1 2. 热部署tomcat+jrebel 或者resin1 3. 增量更新与差异更新1 4. 补丁提取与应用2 为了方便提 ...
- 淘宝分布式数据层TDDL
剖析淘宝 TDDL ( TAOBAO DISTRIBUTE DATA LAYER ) 注:原文:http://gao-xianglong.iteye.com/blog/1973591 前言 在开始 ...