what is cookie?

cookie是存储在客户端的,用于标识客户身份的!

what is session

session 是存储在服务端,也是用于客户身份标识,用于跟踪用户会话。

BeeGo session保存方式

Beego内置了session模块,目前session模块支持的后端引擎包括memory,cookie,file,mysql,redis,couchbase,memcache、postgres,用户也可以根据相应的interface实现自己的引擎。

beego 启用session

beego中使用session相当方便,只需要在main入口函数中设置如下:

beego.BConfig.WebConfig.Session.SessionOn = true

或者通过配置文件配置如下:

sessionon = true

session 有几个方便的方法

1. SetSession(name string,value interface{})
2. GetSession(name string,) interface{}
3. DelSession(name string)
4. SessionRegenerateID()
5. DestorySession()

拿代码来说话

router.go的代码

package routers

import (
"WEB/controllers" "github.com/astaxie/beego"
) func init() {
beego.Router("/test_login", &controllers.TestLoginController{}, "post:PostData;get:Login") // 唯一添加了这条
}

controllers的文件夹

testlogin.go
// testlogin
package controllers import (
"github.com/astaxie/beego"
) type TestLoginController struct {
beego.Controller
} func (c *TestLoginController) SelfTest() {
c.Ctx.WriteString("this is myself controller!")
} func (c *TestLoginController) Login() {
name := c.Ctx.GetCookie("name")
password := c.Ctx.GetCookie("password") if name != "" {
c.Ctx.WriteString("Username:" + name + "password:" + password)
} else {
formData := `<html><form action="/test_login" method="post">
<input type="text" name="Username">
<input type="password" name="Password">
<input type="submit" value="post">
</html>
`
c.Ctx.WriteString(formData)
}
} func (c *TestLoginController) PostData() {
u := User{}
if err := c.ParseForm(&u); err != nil { }
c.Ctx.SetCookie("name", u.Username, 100, "/") // 设置cookie
c.Ctx.SetCookie("password", u.Password, 100, "/") // 设置cookie
c.Ctx.WriteString("username:" + u.Username + " password:" + u.Password)
}

我们通过c.Ctx.SetCookie设置cookie后,你在浏览器输入http://ip:port/test_login,填写用户密码提交以后,再次访问test_login,那么是不需填写用户密码的了,因为已经保存了session与cookie。

4. Beego 框架之cookie与session的更多相关文章

  1. Go语言之高级篇beego框架之cookie与session

    1.cookie的用法 this.Ctx.SetCookie("name", name, maxage, "/") this.Ctx.SetCookie(&qu ...

  2. Django框架 之 Cookie、Session整理补充

    Django框架 之 Cookie.Session整理补充 浏览目录 Django实现的Cookie Django实现的Session 一.Django实现的Cookie 1.获取Cookie 1 2 ...

  3. Django框架 之 Cookie和Session初识

    Django框架 之 Cookie和Session初识 浏览目录 Cookie介绍 Django中的Cookie Session 一.Cookie介绍 1.Cookie产生的意义 众所周知,HTTP协 ...

  4. Django框架07 /cookie和session

    Django框架07 /cookie和session 目录 Django框架07 /cookie和session 1. django请求生命周期 2. cookie 3. session 4. 总结 ...

  5. Python 之 Django框架( Cookie和Session、Django中间件、AJAX、Django序列化)

    12.4 Cookie和Session 12.41 cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务 ...

  6. Django框架之cookie和session及开发登录功能

    1.cookie是什么? Web应用程序是使用HTTP协议传输数据的.HTTP协议是无状态的协议.一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接.这就意味着服务器无法从 ...

  7. Beego 学习笔记14:Session控制

    Session控制 1>     Session常用来作为全局变量使用,比如记录当前登录的用户,或者页面之间传递数据使用. 2>     Beego框架内置了 session 模块,目前 ...

  8. cookie和session的那些事

    对于经常网购的朋友来说,经常会遇到一种情况: 打开淘宝或京东商城的首页,输入个人账号和密码进行登陆,然后进行购物,支付等操作都不需要用户再次输入用户名和密码 但是如果用户换一个浏览器或者等几个小时后再 ...

  9. Python Web框架篇:Django cookie和session

    part 1 概念 在Django里面,cookie和session都记录了客户端的某种状态,用来跟踪用户访问网站的整个回话. 两者最大的区别是cookie的信息是存放在浏览器客户端的,而sessio ...

随机推荐

  1. ElasticSearch的安装、使用、踩坑

    最近博客写的少了. 本篇介绍在安装ElasticSearch和head插件的过程中遇到的小问题,和一些日常使用的操作(简单搜索语法.分片管理). ElasticSearch 它是一个实时分布式搜索和分 ...

  2. SpringMVC没有接受到参数的坑

    其实说上来也不是SpringMVC的坑. 相同的一份代码,我在windows上用mvn打成jar放到linux上执行,POST请求可以接收到参数: 但是我直接在linux上从git拉取分支,并在lin ...

  3. [net]ftp ssh http telnet https服务及端口

    转自:http://blog.csdn.net/qq_34642668/article/details/52116490 FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务. ...

  4. react学习资源

    http://www.ruanyifeng.com/blog/2015/03/react.html http://www.ruanyifeng.com/blog/2015/02/future-of-d ...

  5. java的几种对象(PO,VO,DAO,BO,POJO)解释 【转】

    java的几种对象(PO,VO,DAO,BO,POJO)解释     一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中 ...

  6. java socket 服务端 客户端

    Server package com.witwicky.socket.basicsocket; import java.io.IOException; import java.io.InputStre ...

  7. Lucene增删改查

    IndexManager.java package com.witwicky.lucene; import java.io.File; import java.util.ArrayList; impo ...

  8. 微信小程序 --- e.currentTarget.dataset.id 获取不到值

    直接代码 wxml代码片段 <view class='ranksList' wx:for="{{ranksLb}}"> <view class='ranksLis ...

  9. Jquery函数大全 - 案例说明

    function(){$(this).addClass(”out”);}); toggle( fn, fn ) 如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二 ...

  10. Android跳转系统界面_大全集

    1.跳转Setting应用列表(所有应用) Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS); ...