java多线程写xml_GitHub - gwofchan/EasyTomcat: 多线程简易tomcat实现

JavaSE 手写 多线程web 容器

3.12号更新 较大改动

将原来的bio更新成nio模式

源码出处及见解:

对其中的多线程进行修改 能符合阿里p3c规则

心得:

###1.通过 Socket API 编写服务端

Server.java

###2.封装请求对象Requset

Requset.java

###3.封装相应对象Response

Response.java

###4.根据不同的请求 url 去触发不同的业务逻辑 重点(参考网址2)

XML:将配置信息写到 XML 文件,解决硬编码问题。

创建xml文件 并创建了:

ServletContext.java 能更好的管理多个控制器实例以及请求 url 与控制器的对应关系,我们需要一个类对其封装和管理。

ServletXml.java 处理servlet-name与servlet-class关系 ,

ServletMappingXml.java 处理servlet-name与url-pattern关系

反射:读取 XML 文件配置并实例化对象。

WebApp.java 虽然有了 web 容器上下文,但是 web 容器上下文并不是一开始就存放配置信息的。配置信息在 web 容器启动时被注册或写入到上下文中,因此需要一个管理配置的类负责该操作.

WebHandler.java 创建 xml 文件解析器,用于解析 web.xml 配置文件

Dispatcher.java多线程run方法重写,,从 WebApp 类中获取信息通过反射实例化对象!!!

5.封装控制器

目前手写的 web 容器只能处理一种业务请求,无论发送什么 url 的请求都是只返回一个内容相似的页面。

为了能很好的扩展 web 容器处理不同请求的功能,我们需要将 request 和 response 封装到控制器,让各个业务的控制器处理对应请求和响应。

Servlet.java

6.抽离控制器

LoginServlet.java

父类控制器:Servlet

父类中使用了模板方法的设计模式,将业务处理的行为交给子类去处理。

当我们需要一个控制器去处理登陆请求时,我们创建一个 LoginServlet 类去继承 Servlet 并重写 doGet 或 doPost 方法:LoginServlet extends Servlet

7.多线程操作

ThreadPoolManager.java 线程池管理

Dispatcher.java 线程run重新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值