基于Nettty打造自己的MVC服务器

本文介绍如何使用Netty和SpringMVC原理构建HttpMVC服务器,涵盖HandlerRequestAdapter、HandlerRequestMapping及ViewResolver组件应用,实现静态文件访问、表单提交处理与重定向等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开始折腾Netty,体验下NIO编程。既然学习了,就要做点东西出来,要不然不容易掌握学到的东西。在Netty的官方demo上都有各种case的sample,打造Http服务器的核心代码就是从Sample中获取的。

所有代码已上传到github上,地址:点我跳转

Netty的基本概念就不赘述了,主要说明下如何使用。

主题:基于Netty打造自己的HttpMVC服务器
主要思路:基于SpringMVC框架实现原理进行代码分层,主要组件有:HandlerRequestAdapter,HandlerRequestMapping,ViewResolver。

  • HandlerRequestAdapter 请求处理
  • HandlerRequestMapping 请求url映射,获取到HandlerRequestAdapter
  • ViewResolver 视图解析器,通过HandlerRequestAdapter 返回的ModelAndView渲染页面

项目执行流程简要说明:

  1. 调用NettyHttpServer.main方法,启动Netty服务
  2. 客户访问url后,Netty回调HttpServerHandler.channelRead0
  3. 通过url,到HandlerRequestMapping找到对应的HandlerRequestAdapter
  4. 调用HandlerRequestAdapter.handle方法,进行业务处理后。返回ModelAndView
  5. ViewResolver 通过ModelAndView解析页面地址,获取到指定文件后返回页面

已实现功能:

  • 静态文件访问
  • 表单提交处理
  • 重定向

至于其他功能,比如模板,session,请求转发等常用web服务器功能,学习到的时候再添加。

uml图(好久没用过uml了,有不对的地方欢迎指正)
这里写图片描述
项目启动后,访问localhost:8080:
这里写图片描述
点击表单提交后,后台会输出参数信息,页面跳转到登录结果页面
这里写图片描述

服务器基本的功能实现了,就需要研究下 HttpServerCodec,HttpObjectAggregator,ChunkedWriteHandler三个类实现原理,等后面有时间在研究。

转载于:https://www.cnblogs.com/cmlblog/p/7663100.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值