会话上下文

每当调度器收到客户端的HTTP请求,都会创建一个对应的会话,会话中的信息称为上下文(Context)。

上下文是一个httpdispatcher.Context类型的结构体,封装了以下属性及方法:

*http.Request和http.ResponseWriter

Request
ResponseWriter

获取客户端请求数据的方法:

RouteValue(string) ReqValue
获取路由参数,入参是路由参数名,出参可以链接写法转成指定的类型
QueryValue(string) ReqValue
获取GET参数,入参是路由参数名,出参可以链接写法转成指定的类型
FormValue(string) *ReqValue
获取POST/PUT参数,入参是路由参数名,出参可以链接写法转成指定的类型
RealIP() string
获取客户端的真实IP地址

同会话中多个处理器之间传参的方法:

一个会话中可能会执行多个处理器函数,在同会话的多个处理器之间传递参数可以使用以下方法:

SetContextValue(string, interface{})
在当前会话的上下文中存入参数,入参1是参数名,入参2是参数值
ContextValue(string) interface{}
从当前会话的上下文中取出参数值,入参是参数名,出参需自行断言

同会话中的处理器逻辑控制的方法:

Next(bool)
执行本方法并且入参值为True,调度器才会继续执行同会话中的后续处理器函数

客户端响应的方法:

Redirect(int, string)
客户端重定向,入参1是状态码,只能是301或302;入参2是要重定向的URL地址

精准记录处理器中事件触发的代码行号的方法:

Event(error)
使用本方法封装可能触发500事件的代码,能更加精准的记录下触发500事件的源码文件及行号