Tomcat源码解析(1)

来源:互联网 发布:美工行业现状 编辑:程序博客网 时间:2024/04/28 05:14

HttpServer类,表示一个Web服务器。

我们通过自己实现,来了解tomcat

之前我们可以直接在server,进行一个serverSocket进行等待请求。然后将Response进行返回。


 这次我们增加Servlet。

首先是HttpServer类

主要方法public static void main(){   HttpServer server = new HttpServer();   server.await();  }
await方法,也是通过java的serverSocket来提供服务的。 (为何不是wait而是await,是因为wait是Object的与线程相关的方法)

HttpRequest类,表示一个HTTP请求。

用来处理请求,将json转换成request的对象数据。

它的parse()用于解析HTTP请求。


HttpServer1类

可以处理servlet以及staticResource,以请求的url来区分。

if(request.getUri().startWith("/servlet/")){   ServletProcessor processor = new ServletProcessor ()   processor.processor(request,response);}else{   StaticResourceProcessor processor  = new StaticResourceProcessor ();   processor.processor(request,response);}

StaticResourceProcessor类用于处理对静态资源的请求。只有一个方法process()方法。

public void process(Request request,Response response){  response.sendStaticResponse();}

ServletProcessor1类,处理对servlet的资源的HTTP请求

它的process方法

process(Request req,Reponse rep){    String uri =  req.getUri();  //得到uri然后通过请求的servlet的字符串来反射得到Servlet类    URLClassLoader loader  = new URLClassLoader (URL[]---通过uri转化)}

之后就是获取到servlet类。然后调它的service方法将request和reponse传入。


通过URLClassLoader,来处理url为对应的servlet。