dotweb框架之旅 [四] - 常用对象-HttpContext
2021-05-20 01:30
标签:sock head info 发送 默认 bin dir turn ons dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿。 框架地址:https://github.com/devfeel/dotweb dotweb包含以下几个常用对象: 本章主要对HttpContext对象展开介绍。 HttpContext实现Context接口,主要承担单次请求处理中请求信息、响应信息、全局对象的快捷功能与唯一入口。 主要方法: 常用功能示例: 1、获取Get参数值 2、获取Post参数值 3、获取Post Body 4、获取上传的文件 5、读取Cookie 6、写入Session值 7、输出字符串(默认200状态码) 8、输出Json字符串(默认200状态码) 9、指定模板名称输出Html字符串 10、跳转地址 11、设置Header 以上简单示例,展示了如何通过Context获取请求信息,设置输出信息,使用Session等。 更多代码可参考 https://github.com/devfeel/dotweb-example 欢迎各位加入我们的go语言QQ群:193409346 dotweb框架之旅 [四] - 常用对象-HttpContext 标签:sock head info 发送 默认 bin dir turn ons 原文地址:http://www.cnblogs.com/pzrr/p/7712203.html
方法
描述
HttpServer()
获取当前请求所属HttpServer对象
Response()
获取当前请求的Response对象
Request()
获取当前请求的Request对象
WebSocket()
如果是WebSocket连接,返回WebSocket对象
HijackConn()
如果是Hijack请求,返回Hijack连接对象
AppContext()
返回全局对象容器
Cache()
返回全局缓存对象
Items()
返回当前请求流程内有效的对象容器
ViewData()
返回用于模板数据传输的对象容器
Session()
返回当前请求有效的Session对象
Redirect()
提供跳转支持,默认建议302跳转
QueryString()
指定Key查询Get参数的值
PostFormValue()
指定Key查询Post参数的值
GetRouterName()
指定Key查询动态路由值
ReadCookie()
指定Key读取Cookie对象
Bind()
将Json、Xml、Form提交的属性绑定指定结构体
Write()
指定状态码输出二进制内容
WriteString()\WriteStringC()
输出字符串,默认text/plain,其中以C结尾的方法支持设置状态码
WriteHtml()\WriteHtmlC()
输出Html字符串,默认text/html,其中以C结尾的方法支持设置状态码
WriteJson()\WriteJsonC()
输出Json字符串,默认application/json,其中以C结尾的方法支持设置状态码
WriteJsonp()
输出适配Jsonp的字符串
View()ViewC()
指定模板名称输出Html内容,其中以C结尾的方法支持设置状态码
func Index(ctx dotweb.Context) error {
userid := ctx.QueryString("userid")
ctx.WriteString(userid)
return nil
}
func Index(ctx dotweb.Context) error {
userid := ctx.PostFormValue("userid")
ctx.WriteString(userid)
return nil
}
func Index(ctx dotweb.Context) error {
data := ctx.Request().PostBody()
ctx.Write(200, data)
return nil
}
func Index(ctx dotweb.Context) error {
file, err := ctx.Request().FormFile("filekey")
if err != nil {
ctx.WriteString("upload file error:", err.Error())
} else {
ctx.WriteString(file.FileName())
}
return nil
}
func Index(ctx dotweb.Context) error {
c, err := ctx.ReadCookie("UserName")
if err!= nil{
ctx.WriteString(err.Error())
}else {
ctx.WriteString(c.Value)
}
return nil
}
func Index(ctx dotweb.Context) error {
ctx.Session().Set("UserID", 1)
ctx.WriteString("set session success")
return nil
}
func Index(ctx dotweb.Context) error {
ctx.WriteString("welcome to dotweb")
return nil
}
func Index(ctx dotweb.Context) error {
type User struct {
UserName string
Age int
}
u:=&User{
UserName:"dotweb",
Age:1,
}
ctx.WriteJson(u)
return nil
}
type UserInfo struct {
UserName string
Sex bool
}
type BookInfo struct {
Name string
Size int64
}
func TestView(ctx dotweb.Context) error {
ctx.ViewData().Set("data", "图书信息")
ctx.ViewData().Set("user", &UserInfo{UserName: "user1", Sex: true})
m := make([]*BookInfo, 5)
m[0] = &BookInfo{Name: "book0", Size: 1}
m[1] = &BookInfo{Name: "book1", Size: 10}
m[2] = &BookInfo{Name: "book2", Size: 100}
m[3] = &BookInfo{Name: "book3", Size: 1000}
m[4] = &BookInfo{Name: "book4", Size: 10000}
ctx.ViewData().Set("Books", m)
err := ctx.View("testview.html")
return err
}
func Redirect(ctx dotweb.Context) error {
err := ctx.Redirect(http.StatusFound, "http://www.baidu.com")
if err != nil {
ctx.WriteString(err)
}
return err
}
func Index(ctx dotweb.Context) error {
ctx.Response().Header().Set("Content-Type", "text/html; charset=utf-8")
ctx.WriteString("welcome to dotweb")
return nil
}
文章标题:dotweb框架之旅 [四] - 常用对象-HttpContext
文章链接:http://soscw.com/index.php/essay/87825.html