Tomcat的简单介绍
Tomcat是Apache软件基金会属下Jakarta项目开发的Servlet容器,提供了作为Web服务器的一些特有功能。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是用C语言实现的HTTPWeb服务器。
tomcat原理图
首先看一下tomcat内部原理图
在图中显示connector和container是核心组件,接下来说明一下这辆组件的核心作用
- connector组件的作用
- 接收客户端的连接
- 加工处理客户端请求
- container组件的作用
处理请求的容器
Contain下容器从大到小分别为Engine,Host,Context,Wrapper,从左到右容器的关系是一对多的关系
上图为tomcat处理http的请求流程图,下面解析一下处理的过程
客户端发送请求,然后被端口为8080,协议是HTTP/1.1的coyote的连接器监听到
connector将请求发送到下属的container处理,并且等待回应
container根据请求的域名,匹配对应的host,然后将请求交给对应的host处理
context根据请求的path路径,寻找到对应的工程,然后将请求交给context
context中根据请求找到相应的servlet类,交由其处理
构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用相应的servlet类的doGet和doPost方法
context把执行完之后的HttpServletResponse对象返回给host
host把HttpServletResponse对象返回给engine
engine把HttpServletResponse对象返回给connector
HttpServletResponse对象返回给客户端
上图为tomcat内部文件图,我们来解析一下这些文件夹的用处:
- bin:tomcat下的各种命令
- conf:各种配置文件,典型的有server.xml,是tomcat的体系结构,在tomcat启动时构建tomcat容器
- lib:tomcat和工程需要的jar包
- logs:存放tomcat运行时的各种日志文件,比图catalina文件里时控制台输出的信息
- temp:用户运行tomcat时产生的临时文件,删去无影响
- webapps:存放工程文件,在该文件夹下的ROOT文件夹存放的是各种静态文件,可以ip+端口/文件名称直接访问
- work:tomcat运行时编译后的文件
tomcat的配置
端口修改
1 | <!-- 端口号的修改,配置文件是在tomcat下的conf/server.xml --> |
内存信息修改
1 | #内存信息可以配置在tomcat下的bin/catalina.sh中,写在第二行 |
热部署:不重启tomcat的情况下,将应用部署到tomcat中
- 直接将war包放入webapps中,就能直接访问
1 | <!-- 在tomcat下的conf/server.xml下,在<Host></Host>代码块中加入 --> |