Java 手写Web服务器 基本思路与完整设计步骤【附项目源码及教学资料】

在线浏览网页离不开服务器。用户发出请求,服务器做出响应,提供给用户需要的页面。响应的内容是根据每 个web请求来产生动态内容的,其内部即启动多个线程来产生不同内容。

 

web请求都是使用 Request 和Response 式的交流,这种请求响应式的交互都是基于HTTP协议。如图↓

 

 

下面还需要了解一下HTTP协议。HTTP协议有两种请求方式,即GET与POST。 HTTP协议的请求信息介绍 如图↓

 

 

那么接下来设计思路就变得十分清晰: 客户端(浏览器)与服务器建立网络连接(ServerSocket),客户端(浏览器)向服务器请求内容(包含在HTTP请求信息中),服务器读取客户端发来的请求信息动态产生内容(多线程)进行响应。

设计过程中有几个要点:1、合理拆分请求信息(String类的各种方法),获取请求方式,请求参数,请求内容等。2、创建一个分发器(Dispatcher),利用多线程同时处理多个请求。

 

具体设计步骤 :

一、1、创建ServerSocket 2、建立连接获取Socket 3、通过输入流获取请求协议(注意GET与POST方式的参数等不一致 )

二、1、准备内容 2、获取字节数的长度 3、拼接响应协议 注意: 空格与换行 4、使用输出流输出

三、创建响应类(Response) 1、动态添加内容print 2、累加字节数的长度 3、根据状态码拼接响应头协议 4、根据状态码统一推送出去 调用处: 动态调用print +传入状态码推送

四、创建请求类(Request )通过分解字符串获取method URL和请求参 数 (POST请求参数可能在 请求体中还存在) Request 通过Map封装请求参数(考虑一个参数多个值和中文等问题)

五、创建Sevlet 类,将业务代码解耦到对应的业务类中(具体的 Serlvet)  

六、整合配置文件 根据配置文件动态的读取类名,再进行反 射获取具体的Servlet来处理业务(实现灵活的响应客户端各种请求内容,做到以不变应万变)

七、创建一个调用分发的类(Dispatcher) 加入了多线程,可以同时处理多个请求。

八、处理读取错误、设置首页内容即可

 

由于完整项目代码细节问题较多,容易乱,这里就不贴出来了。如果需要完整项目源码的可以添加企鹅q3492625357。

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈子青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值