学习
实践
活动
专区
工具
TVP
写文章

大厨小鲜——自己动手实现一个极简Web框架

上节课我们自己动手制作了一个RPC框架,本节课我们挑战一个稍有难度的一点的任务,手动制作一个Web框架。

我不太愿意叫什么MVC框架,因为我在制作这个小项目的时候可没想过它要怎么怎么的MVC,一切皆以易于使用为目标。

首先我们看看这个Web框架使用起来如何简单

Hello World

是请求派发器,用于将收到的HTTP请求对象扔给响应的进行处理。

用于构建路由,它负责的是将URL规则和挂接起来,形成一个复杂的映射表。

为了简化实现细节,所以没有支持复杂的URL规则,例如像这种将参数写在URL里面的这种形式是不支持的。

是Web服务器的核心对象,构建HttpServer除了IP端口之外,还需要提供3个关键参数,分别是IO线程数、业务线程数和请求派发器对象。IO线程用于处理套件字读写,由Netty内部管理。业务线程专门用于处理HTTP请求,由httpkids框架来管理。

一个全面的例子

堆栈深度

非Java程序员总是抱怨Java的框架过于复杂,特别爱拿Java恐怖的调用栈说事。比如下面这张图广为流传。

所以这里我要亮出httpkids的调用栈,我们来看看它到底有多深

项目代码

https://github.com/pyloque/httpkids

Web Framework based on Netty for Kids of You

https://github.com/pyloque/rpckids

RPC Framework based on Netty for Kids of You

大爆炸

关注公众号「码洞」,让我们来一起聊聊这个框架。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180424G12XLP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券