Tomcat的目录结构分析:
server.xml与Tomcat的架构:
Tomcat对应的组件的实现:
Connector组件:
Coyote实现很多种不同的Connector组件,其中最常见的也是Tomcat,默认的connector是BIO Connector
BIO Connector:使用较传统的阻塞式IO的操作方式,对应实现方式为javaIO的实现
Container组件:
Catalina实现Container容器的组件,用户的代码最终由Catalina执行
Tomcat个组件协调工作完成用户请求处理流程:
Tomcat的常见配置项
对于最配置文件进行修改的不可逆操作时候,记得先备份在修改Connector的配置参数
port:http监听的是80端口,而Tomcat默认监听的8080端口
address:ip地址
protocol:默认的是http1.1,在性能调优的时候可能会改用
connectionTimeout:客户端连接超时时间
acceptCount:所有的线程处理请求的时候,没有空闲线程存在,配置线程排队的长度,队列最大的是多大
如果队列超过了队列的长度,则其余的请求会被拒绝,默认为100
maxConnections:支持同时发送请求的最大连接数,默认BIO Connector与线程池相关
线程池
线程池在服务端开发必须知道的,线程的创建和销毁都比较耗时,假如来一个请求就创建一个线程,请求结束之后就把线程销毁,对系统性能来说损耗较大,实际开发中可以先创建一组线程等待客户的请求,当有请求时直接用线程池的线程,结束之后再放到池子里,这样就减少了线程的创建和销毁的过程线程池主要配置的参数:
minSpareThreads:最小空闲线程数目maxThreads:最大线程数
当同时请求数目超过线程池的线程数目,则后面的请求只能排队等待
当所有请求结束之后,线程池子会留有minSpareThreads
tomcat就是使用这样的弹性线程池
线程池的配置:
线程池的配置项<Executor>:
minSpareThreads
maxThreads
Connector配置线程池:
指定依赖的线程池配置(优先)
直接指定线程池的配置参数
日志的配置:
日志的作用:Tomcat的运行情况获知
调试利器:定位问题
Tomcat日志分类:
系统运行时的日志:捕获系统运行时的异常信息
访问日志:记录所有的请求访问
应用日志:应用程序打印日志
访问日志的配置文件也是server.xml
directory:访问日志的相对路径
部署web应用
手动部署
将项目直接考到tomcat目录下的webapps目录下项目应该按照一定格式编写:
web项目格式:
------WEB-INF:
静态资源可供外界访问的(html,img,avi等)
------classes:存放字节码文件
------lib:存放jar包
web.xml:一定格式的配置文件
War包部署:
将项目打成war包,在将项目上传到到tomcat目录下的webapps目录下打war包的格式:
cmd到你要打war包项目的路径下
输入命令:(格式为)
Jar -cvf 项目名.war . 最后的.表示当前目录下的所有文件夹以及文件