一键搞定内网穿透 联行号查询|开户行查询 在线工具箱 藏经阁
当前位置:首页 / 互联网与IT技术 / 正文
实现Servlet组件

现在,我们已经成功实现了一个HttpConnector,并且,将jdk.httpserver提供的输入输出HttpExchange转换为Servlet标准定义的HttpServletRequestHttpServletResponse接口,最终处理方法如下:

void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO
}

这样,我们就有了处理HttpServletRequestHttpServletResponse的入口,回顾一下Jerrymouse设计的架构图:

 ┌───────────────────────────────┐
 │    Jerrymouse Server    │
 │         ┌───────────┐ │
 │ ┌─────────┐  │ Context │ │
 │ │ HTTP  │  │┌─────────┐│ │
◀─┼─▶│Connector│◀──▶││ Web App ││ │
 │ └─────────┘  │└─────────┘│ │
 │         └───────────┘ │
 └───────────────────────────────┘

我们让HttpConnector持有一个Context实例,在Context定义process(req, resp)方法:

     │
     ▼
┌───────────────────┐
│  HttpConnector  │
└───────────────────┘
     │
     ▼
┌───────────────────┐
│   Context   │
├───────────────────┤
│process(req, resp) │
└───────────────────┘

这个Context组件本质上可以视为Servlet规范定义的ServletContext,而规范定义的Servlet、Filter、Listener等组件,就可以让ServletContext管理,后续的服务器设计就简化为如何实现ServletContext,以及如何管理Servlet、Filter、Listener等组件。

转载