beego的context 模块

上下文模块

上下文模块主要是针对 HTTP 请求中,request 和 response 的进一步封装,他包括用户的输入和输出,用户的输入即为 request,context 模块中提供了 Input 对象进行解析,用户的输出即为 response,context 模块中提供了 Output 对象进行输出。

context 对象

context 对象是对 Input 和 Output 的封装,里面封装了几个方法:

  • Redirect
  • Abort
  • WriteString
  • GetCookie
  • SetCookie

context 对象是 Filter 函数的参数对象,这样你就可以通过 filter 来修改相应的数据,或者提前结束整个的执行过程。

Input 对象

Input 对象是针对 request 的封装,里面通过 reqeust 实现很多方便的方法,具体如下:

  • Protocol

    获取用户请求的协议,例如 HTTP/1.0

  • Uri

    用户请求的 RequestURI,例如 /hi?id=1001

  • Url

    请求的 URL 地址,例如 /hi

  • Site

    请求的站点地址,scheme+doamin 的组合,例如 http://beego.me

  • Scheme

    请求的 scheme,例如 “http” 或者 “https”

  • Domain

    请求的域名,例如 beego.me

  • Host

    请求的域名,和 domain 一样

  • Method

    请求的方法,标准的 HTTP 请求方法,例如 GETPOST 等

  • Is

    判断是否是某一个方法,例如 Is("GET") 返回 true

  • IsAjax

    判断是否是 AJAX 请求,如果是返回 true,不是返回 false

  • IsSecure

    判断当前请求是否 HTTPS 请求,是返回 true,否返回 false

  • IsWebsocket

    判断当前请求是否 Websocket 请求,如果是返回 true,否返回 false

  • IsUpload

    判断当前请求是否有文件上传,有返回 true,否返回 false

  • IP

    返回请求用户的 IP,如果用户通过代理,一层一层剥离获取真实的 IP

  • Proxy

    返回用户代理请求的所有 IP

  • Refer

    返回请求的 refer 信息

  • SubDomains

    返回请求域名的根域名,例如请求是 blog.beego.me,那么调用该函数返回 beego.me

  • Port

    返回请求的端口,例如返回 8080

  • UserAgent

    返回请求的 UserAgent,例如 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36

  • Param

    在路由设置的时候可以设置参数,这个是用来获取那些参数的,例如 Param(":id"),返回12

  • Query

    该函数返回 Get 请求和 Post 请求中的所有数据,和 PHP 中 $_REQUEST 类似

  • Header

    返回相应的 header 信息,例如 Header("Accept-Language"),就返回请求头中对应的信息 zh-CN,zh;q=0.8,en;q=0.6

  • Cookie

    返回请求中的 cookie 数据,例如 Cookie("username"),就可以获取请求头中携带的 cookie 信息中 username 对应的值

  • Session

    session 是用户可以初始化的信息,默认采用了 beego 的 session 模块中的 Session 对象,用来获取存储在服务器端中的数据。

  • Body

    返回请求 Body 中数据,例如 API 应用中,很多用户直接发送 json 数据包,那么通过 Query 这种函数无法获取数据,就必须通过该函数获取数据。该函数已经 beego 1.5 版本之后删除,目前可以通过 RequestBody 获取数据。

  • GetData

    用来获取 Input 中 Data 中的数据

  • SetData

    用来设置 Input 中 Data 的值,上面 GetData 和这个函数都是用来方便用户在 Filter 中传递数据到 Controller 中来执行

Output 对象

Output 是针对 Response 的封装,里面提供了很多方便的方法:

  • Header

    设置输出的 header 信息,例如 Header("Server","beego")

  • Body

    设置输出的内容信息,例如 Body([]byte("astaxie"))

  • Cookie

    设置输出的 cookie 信息,例如 Cookie("sessionID","beegoSessionID")

  • Json

    把 Data 格式化为 Json,然后调用 Body 输出数据

  • Jsonp

    把 Data 格式化为 Jsonp,然后调用 Body 输出数据

  • Xml

    把 Data 格式化为 Xml,然后调用 Body 输出数据

  • Download

    把 file 路径传递进来,然后输出文件给用户

  • ContentType

    设置输出的 ContentType

  • SetStatus

    设置输出的 status

  • Session

    设置在服务器端保存的值,例如 Session("username","astaxie"),这样用户就可以在下次使用的时候读取

  • IsCachable

    根据 status 判断,是否为缓存类的状态

  • IsEmpty

    根据 status 判断,是否为输出内容为空的状态

  • IsOk

    根据 status 判断,是否为 200 的状态

  • IsSuccessful

    根据 status 判断,是否为正常的状态

  • IsRedirect

    根据 status 判断,是否为跳转类的状态

  • IsForbidden

    根据 status 判断,是否为禁用类的状态

  • IsNotFound

    根据 status 判断,是否为找不到资源类的状态

  • IsClientError

    根据 status 判断,是否为请求客户端错误的状态

  • IsServerError

    根据 status 判断,是否为服务器端错误的状态

原文地址:https://www.cnblogs.com/show58/p/12384870.html

时间: 2024-11-05 00:19:17

beego的context 模块的相关文章

Beego源码分析(转)

摘要 beego 是 @astaxie 开发的重量级Go语言Web框架.它有标准的MVC模式,完善的功能模块,和优异的调试和开发模式等特点.并且beego在国内企业用户较多,社区发达和Q群,文档齐全,特别是 @astaxie 本人对bug和issue等回复和代码修复很快,非常敬业.beego框架本身模块众多,无法简单描述所有的功能.我简单阅读了源码,记录一下beego执行过程.官方文档已经图示了beego执行过程图,而我会比较详细的解释beego的源码实现. beego 是 @astaxie 开

spring源码分析之context

重点类: 1.ApplicationContext是核心接口,它为一个应用提供了环境配置.当应用在运行时ApplicationContext是只读的,但你可以在该接口的实现中来支持reload功能. 定义 public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublis

openstack context

之前一直不知道context模块中存储的是什么东西,这回看一下代码: 其中最主要的类是:RequestContext: class RequestContext(object): """Helper class to represent useful information about a request context. Stores information about the security context under which the user accesses t

Spring模块介绍

GroupId ArtifactId 说明 org.springframework spring-beans Beans 支持,包含 Groovy org.springframework spring-aop 基于代理的AOP支持 org.springframework spring-aspects 基于AspectJ 的切面 org.springframework spring-context 应用上下文运行时,包括调度和远程抽象 org.springframework spring-cont

Spring Cloud Commons模块

上一篇介绍了 Spring Cloud Context模块 ,本文介绍SpringCloud的另一个基础模块 SpringCloud Commons模块 .只要在项目的pom文件中引入了spring-cloud-starter 依赖包 ,就可以保证 spring-cloud-commons 的 jar被引入. Spring Cloud Commons模块设计的目的,Spring Cloud Commons模块是为了对微服务中的服务注册与发现.负载均衡.熔断器等功能提供一个抽象层代码,这个抽象层与

webpack的带表达式require和require.context()方法

带表达式的 require 语句如果 require参数含有表达式(expressions),会创建一个上下文(context),因为在编译时(compile time)并不清楚具体是哪一个模块被导入 require("./template/" + name + ".ejs");1webpack 解析 require() 的调用,提取出来如下这些信息: Directory: ./templateRegular expression: /^.*\.ejs$/1212会

bee使用

beego虽然是一个简单的框架,但是其中用到了很多第三方的包,所以在你安装beego的过程中Go会自动安装其他关联的包. 当然第一步你需要安装Go,如何安装Go请参考我的书 安装beego go get github.com/astaxie/beego 安装bee工具,这个工具可以用来快速的建立beego的应用 go get github.com/beego/bee 这样就完成了beego的安装,你就可以开始开发了,可以通过bee工具来创建beego项目 beego依赖的第三方包有如下: ses

Spring---介绍

核心容器:Core.Beans.Context.EL模块 1.     Core模块:封装了框架依赖的最底层部分,包括访问资源.类型转换及一些常用工具类 2.     Beans模块:提供了框架的基础部分,包括反转控制和依赖注入.其中BeanFactory是容器的核心,本质是"工厂设计模式"的实现,而且无需编程实现"单例设计模式",单例完全由容器控制,而且提倡面向接口编程,而非面向实现编程:所有应用程序对象以及对象间关系由框架管理,从而真正的把维护对象之间的依赖关系

spring

1. 什么是spring? spring 是个Java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯. 2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. 面向切面的编程(AOP):Sp