1.tomcat 是什么?
好多人说tomcat是一个servlet容器,那么servlet又是什么呢?servlet是server applet的总称,简单理解就是服务端程序,即客户端发送请求-->网络传送--服务端接收处理请求三个环节中的最后一个环节,为了统一客户端的请求即出现了servlet规范。
2.servlet中的doGet方法调用,需要传入req和resp,谁去实现这个接口呢?答案是tomcat实现了此接口,因为tomcat接受到客户端请求处理之后将参数组装成request和response,然后调用doGet()方法;
3.jar和war的区别:jar一般认为是依赖包,tomcat无法区分jar包是依赖还是一个web应用,所以一般部署就是war包;
tomcat部署三种方式:
1.描述符部署
context.xml中定义或者再server.xml中定义一个context;
2.war包和文件夹部署如下源码
4.tomcat容器之间的关系
servlet ->wrapper->context(应用)-->host(主机)-->Engine(容器)
servlet 请求顺序:Engine(Plpleline)-->host(Plpleline)-->context(Plpleline)-->wrapper(Plpleline)(StandardWrapperValve)-->servlet(httpservlet)
如下图示即可体现wrapper-->servlet之间的调用关系
到此我们如下平面图的右侧部分可以理解清楚了
那么现在来看左边部分的实现,浏览器到底是怎样给tomcat发送请求的呢?那就得引入TCP协议规范了,TCP协议可以保证数据可靠的传输,操作系统实现了TCP协议,如下linux源码中实现得三次握手
java中实现socket根据源码得知最终实现了native方法,
在openJDK中得实现如下
继续寻找
window系统中寻找文件
如下就是操作系统里面给出的接口