一架梯子,一头程序猿,仰望星空!
Beego 框架面试题 > 内容正文

Beego 如何使用 Session?它的实现原理是什么?


问题简答

Beego 内置了session模块,通常只要在app.conf配置文件,开启session机制,就可以在controller中使用内置的方法读写session数据。

问题详解:

通常session实现机制都是在客户端放一个session ID (cookie),然后服务端存储一份session数据与之对应,beego的session模块,支持自定义session数据存储引擎。

目前session模块支持的常用的存储引擎如下:

  • memory
  • cookie
  • file
  • mysql
  • redis

下面是个简单计数器的例子,通过session的count字段累计访问量

func (this *MainController) Get() {
    // 读取session数据
    v := this.GetSession("count")
    if v == nil {
        // 写入session数据
        this.SetSession("count", int(1))
        this.Data["num"] = 0
    } else {
        // 写入session数据
        this.SetSession("count", v.(int)+1)
        this.Data["num"] = v.(int)
    }
    this.TplName = "user/index.html"
}

详情请参考:beego session处理教程