一. 题目要求
开发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对象封装应用名称,例