Servlet容器
Tomcat其实是一个Servlet容器,他负责将Http请求封装成HttpServletRequest,并且将讲求结果封装成HttpServletResponse,然后将其再转成Http响应返回给客户端。
Servlet是什么
Servlet是Java语言中的一个接口,就是为了处理动态网络请求的。
HttpServlet是一个继承了Servlet的抽象类,负责专门实现HTTP请求的交互。
如何手写一个Tomcat?
我们的程序可以实现套接字交互,也就是网络接口编程Socket。
当不使用Tomcat的时候,只要指定IP地址和端口号,我们就能找到服务器上运行的程序,这个程序运行在JVM上。
我们的程序监听端口的InputStream,当然输入流接收到的数据就是一个符合HTTP协议的URL,然后我们将这个URL解析成一个HttpServletRequest对象,然后我们再创建一个HttpServletResponse对象,然后通过我们自定义Servletmappting来匹配URL对应的那个具体的Servlet,然后调用servlet的方法并将HttpServletRequest和HttpServletResponse作为参数传递给doGet或者doPost方法来执行,执行的结果就是调用HttpServletResponse的getOutPutStream方法来获取一个输出流,将我们的返回结果通过这个输出流返回给客户端。