Tomcat简介
众所周知,动态web项目基本就是使用了tomcat作为服务端
动态web项目的目录结构
Tomcat是一个轻量级的服务器,其实就是一个Java程序,能够作为一个服务端去接收客户端的请求,并返回给客户端响应
Tomcat本身是一个容器,一个Servlet的容器
Tomcat运行在内存中,其中有一定数量的Servlet
Tomcat运行原理
web.xml配置了每一个Servlet的url访问映射
Tomcat会读取web.xml文件,然后将访问映射放到一个HashMap<>当中(Servlet路由/Servlet容器)
当浏览器的请求请求Tomcat时,Tomcat存在一个解析器,去解析请求当中请求头的url,然后去HashMap当中根据key寻找Servlet实现类对象的全限定名
最后根据全限定名,利用反射获取对象,运行service方法/doGet方法等。这里的HashMap显然充当一个路由表的功能,所以我们可以叫它Servlet路由/Servlet容器
socket通信
所有的数据都会经过计算机网卡
网卡属于通信中的硬件部分,硬件部分很傻,所以还需要软件部分,这个软件就是Socket
操作系统内部需要处理很多不同硬件底层的驱动程序,这些程序一般都需要遵循不同设备的协议
但是这种通信,依然停留在OS内部,我们需要最终实现的是,网卡与tomcat应用程序的通信
保持网卡与tomcat之间的通信,就需要socket
具体流程图
请求地址解析器那边做一步判断:先判断是不是静态资源,是则返回静态资源;如果不是静态资源,根据url去servlet路由表中查询,能找到对应servlet,则执行对应的servlet中的方法;不能则返回失败