一. 题目要求
开发Minicat V4.0,在已有Minicat基础上进一步扩展,模拟出webapps部署效果 磁盘上放置一个webapps目录,webapps中可以有多个项目,例如demo1、demo2、demo3... 每个项目中含有servlet,可以根据请求url定位对应servlet进一步处理。具体的项⽬⽐如demo1中有serlvet(也即为:servlet是属于具体某⼀个项⽬的servlet),这样的话在Minicat初始化配置加载,以及根据请求url查找对应serlvet时都需要进⼀步处理
二.解题思路
(一)封装Mapper组件体系(简单封装即可)
Mapper类—>Host对象->Context对象->Wrapper对象->Servlet(HttpServlet)
该体系结构⽤于存储初始化加载到的Servlet信息
(二)加载server.xml 配置文件中Host的appBase属性采取绝对路径以读取磁盘中相应路径下的webapps目录
(三) 加载webapps目录下的web.xml配置文件
(四) 从两个配置文件中获取Mapper对象、Host对象-、Context对象-、Wrapper对象所要分别封装的信息,详情封装信息如下:
-
Mapper对象封装URL,例如:/demo1/demo/lagou,以及对应的Host对象
-
Host对象封装服务器地址及端口号,例如:localhost:8080,以及对应的Context对象
-
Context对象封装应用名称,例如:demo1,以及对应的Wrapper对象
-
Wrapper对象封装url-pattern,例如:/demo/lagou, 以及对应的Servlet对象
-
Servlet对象封装已实例化的HttpServlet对象(根据配置信息提供的磁盘绝对路径,自定义加载classpath以外的
手写MiniTomcat实现Webapps部署解析

本文档详细介绍了手写MiniTomcat V4.0的过程,旨在模拟webapps部署,允许磁盘上的webapps目录下存在多个项目,每个项目包含servlet。通过解析`server.xml`和各项目中的`web.xml`配置文件,构建Mapper组件体系,包括Mapper、Host、Context、Wrapper和Servlet对象。在请求时,通过URL和Host信息在Mapper中查找匹配的servlet并执行。
最低0.47元/天 解锁文章
24万+

被折叠的 条评论
为什么被折叠?



