dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿。

框架地址:https://github.com/devfeel/dotweb

dotweb包含以下几个常用对象:

  • App(dotweb) App容器,为Web请求处理提供必要的容器类功能。
  • HttpServer 用于真正处理Web请求的服务模块。
  • HttpContext 用于提供单次请求处理中请求信息与响应信息的快捷处理与唯一入口。
  • Response 用于从服务器向用户发送输出的结果。
  • Request 用于从用户那里取得信息。
  • Session 用于存储关于某个连接会话的信息,或者修改相关的设置。目前支持存储本机内存与Redis分布式。

本章主要对HttpServer对象展开介绍。

HttpServer对象,在框架中,主要承担用于真正处理Web请求的服务模块,比如处理Web监听、设置路由、设置Module、管理Session、设置Render、设置Binder等,同时也承担一系列特性设置。

主要属性:

属性 描述 默认值
Router
当前HttpServer路由,通过Router()访问
NewRouter(server)
Modules
全局HttpModule,用于路由前的集中处理
make([]*HttpModule, 0)
DotApp
所属的App容器指针
-
SessionManager
当前HttpServer的Session管理单元
InitSessionManager()
Binder
请求参数绑定器
newBinder()
Features
当前HttpServer特性集合
Feature{}

主要方法

方法 描述
ListenAndServe()\ListenAndServeTLS()
 指定host:port,根据配置启动Web端口监听
ServeHTTP(w http.ResponseWriter, req *http.Request)
 http请求处理入口
InitSessionManager()
 初始化Session单元
Router()\GET()\POST()....WebSocket()
路由访问入口及快捷操作入口
Binder()
 提供HttpServer对象绑定器入口
Renderer()
 提供HttpServer对象模板处理入口
SetEnabledAutoHEAD()
 设置是否自动支持Head(默认为false)
SetEnabledListDir()
 设置是否允许目录浏览(默认为false)
SetEnabledSession()
 设置是否允许启用Session(默认为false)
SetEnabledGzip()
  设置是否允许启用GZip压缩(默认为false)
SetEnabledIgnoreFavicon()
 设置是否忽略Favicon请求(默认为false)
SetEnabledTLS()
 设置是否支持TLS(默认为false)
SetEnabledDetailRequestData()
 设置是否启用详细请求数据统计(默认为false)
RegisterModule()
 添加处理模块

常规使用代码:

func main() {

    //初始化DotServer
app := dotweb.New() //设置gzip开关
app.HttpServer.SetEnabledGzip(true) //设置Session开关
app.HttpServer.SetEnabledSession(true) //设置Session配置
//runtime mode
app.HttpServer.SetSessionConfig(session.NewDefaultRuntimeConfig()) //设置启用详细请求数据统计
app.HttpServer.SetEnabledDetailRequestData(true) //设置启用GZIP压缩,默认压缩级别
app.HttpServer.SetEnabledGzip(true) //设置启用自动忽略Favicon请求
app.HttpServer.SetEnabledIgnoreFavicon(true) //设置启用目录浏览
app.HttpServer.SetEnabledListDir(true) //设置路由
InitRoute(app.HttpServer) // 开始服务
port :=
fmt.Println("dotweb.StartServer => " + strconv.Itoa(port))
err := app.StartServer(port)
fmt.Println("dotweb.StartServer error => ", err)
}

如代码所示,通过在启动Server正式监听前设置一系列参数,可以启用所支持的特性。

更多代码可参考 https://github.com/devfeel/dotweb-example

欢迎各位加入我们的go语言QQ群:193409346

dotweb框架之旅 [三] - 常用对象-HttpServer的更多相关文章

  1. dotweb框架之旅 [二] - 常用对象-App(dotweb)

    dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...

  2. dotweb框架之旅 [四] - 常用对象-HttpContext

    dotweb属于一个Web框架,希望通过框架行为,帮助开发人员快速构建Web应用,提升开发效率,减少不必要的代码臃肿. dotweb包含以下几个常用对象: App(dotweb) App容器,为Web ...

  3. dotweb框架之旅 [一] - HelloWorld

    一直想着,要系统性的写一些dotweb使用的文章,之前拖延了不少时间,今天,下定决定,算是正式的开始,也请大家一起监督. dotweb,是一款追求简约大方的go web框架,正如其github项目主页 ...

  4. Entity Framework 实体框架的形成之旅--利用Unity对象依赖注入优化实体框架(2)

    在本系列的第一篇随笔<Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)>中介绍了Entity Framework 实体框架的一些基础知识,以及构建 ...

  5. Spring框架的第三天

    ## Spring框架的第三天 ## ---------- **课程回顾:Spring框架第二天** 1. IOC的注解方式 * @Value * @Resource(name="" ...

  6. MVC5中Model层开发数据注解 EF Code First Migrations数据库迁移 C# 常用对象的的修饰符 C# 静态构造函数 MSSQL2005数据库自动备份问题(到同一个局域网上的另一台电脑上) MVC 的HTTP请求

    MVC5中Model层开发数据注解   ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证( ...

  7. Javascript常用对象的属性和方法

    javascript为我们提供了一些非常有用的常用内部对象和方法.用户不需要用脚本来实现这些功能.这正是基于对象编程的真正目的. 在javascript提供了string(字符串).math(数值计算 ...

  8. JavaScript常用对象的方法和属性

    ---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...

  9. DOM创建和删除节点、HTML DOM常用对象[转]

    创建和删除节点:——核心DOM   1. 创建单个元素节点:3步:      1. 创建空元素节点对象:         var elem=document.createElement("标 ...

随机推荐

  1. 即时作图新工具—ProcessOn【推荐】

    www.processon.com 推荐这个在线作图网站:免费登录,云端存储,面向对象,最重要的是提供了丰富模板! 在线软件的人气会越来越高,这是趋势啊~

  2. 201521123076《java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  3. 201521123097《Java程序设计》第十一周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synch ...

  4. 201521123078 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1.题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常. ...

  5. 201521123028 《Java程序设计》第11周学习总结

    1. 本周学习总结 关于互斥同步访问 synchronized关键字 -wait.notify和notifyAll Lock和Condition方法 -condition.await() //类似ob ...

  6. PHp连接数据库实现增删改查

    首页 删除 添加 添加处理页面 修改 修改处理页面

  7. Eclipse: eclipse文本文件编码格式更改(GBK——UTF-8)

    Eclipse中设置编码的方式 Eclipse工 作空间(workspace)的缺省字符编码是操作系统缺省的编码,简体中文操作系统 (Windows XP.Windows 2000简体中文)的缺省编码 ...

  8. session get和load方法对比

    get测试代码如下: public class Test { public static void main(String[] args) { // TODO Auto-generated metho ...

  9. Apache2.4 + Tomcat7 负载均衡配置

    一.配置tomcat 多启动 1.下载免安装版 tomcat7 http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.81/bin/apache-t ...

  10. 如何用一天时间实现自己的RPC框架

    前言 最近,闲来无事,自己写了一个简单的RPC框架,我把它叫做SimpleRpc.它有多简单?一共只有1400行代码.这个RPC只是作为自己试验作品,交流技术之用,当然如果你敢用,也可以放到生产环境之 ...