参考资料:
[1]. 深入剖析Tomcat(How Tomcat works)书籍代码下载地址
注意:这一章的内容是基于前一章的内容。
- 第二章:一个简单的servelet容器
首先简单介绍了下javax.servlet.Servelt接口,如下图所示,没啥
然后如果请求的路径中带有"/servlet/",会实例化类加载器,然后创建一个Servlet对象,调用其service对response和request进行处理。
HttpServer1.java
// check if this is a request for a servlet or a static resource
// a request for a servlet begins with "/servlet/"
if (request.getUri().startsWith("/servlet/")) {
ServletProcessor1 processor = new ServletProcessor1();
processor.process(request, response);
}
else {
StaticResourceProcessor processor = new StaticResourceProcessor();
processor.process(request, response);
}
前面调用service的时候将自己创建的Request向上转型为ServletRequest,这样在service中很容易就可以向下转型得到Request,会暴露Request中的东西(Response也是一样),所以创建了两个门面类,将request/response设置为私有,暴露ServletRequest的东西,保留Request自己的东西。
RequestFacade requestFacade = new RequestFacade(request);
ResponseFacade responseFacade = new ResponseFacade(response);
网友评论