更新:现在的tomcat已经可以实现调用servlet中的service()方法了,把在这个阶段遇到的问题总结一下。
1.在对网页进行访问时,访问会请求2次。第二次是请求/favicon.ico(网页图标)这个东西。(不知道是每个浏览器都会还是个别才有),因为测试的index.html等网页是没有设这个图标的,所以第二次请求会导致抛很多错。在项目中放个图片进去就好了。
2.在servlet调用service(request,response)方法后,如果不进行outputstream.close(),write()的内容不会到网页上,而且会显示“网页重定向”。
查了一下相关文档,当socket中的outpustream关闭时会把这个socket也关掉,但是为什么要在特定的地方close才可以呢??
—————————————————————————更新分界线—————————————————————————
这个简单版tomcat现在是只能处理静态资源的,它用自定义的request和response模拟tomcat接收到客户请求后把请求的静态资源返回给客户端的过程。
通过写了这个东西(虽然刚开始看了很多别人的代码),但是对于tomcat的处理机制终于有了一点简单的了解。以及,tomcat是每个客户端都开一个线程的。
项目结构图:
request作用:解析http请求,把其中的请求资源地址拿出来