Tomcat8以前是BIO,以后是NIO,NIO并不是一定能提高性能,如果请求数据量较大,NIO性能比BIO性能还要差。
servlet3.0规范支持tomcat7,servlet3.1规范支持tomcat8.
一.目录
下图是Tomcat的webapps目录:
在Tomcat的webapps目录下的每个目录都是一个应用上下文,一般通过路径来进行划分,例如localhost:8080/root就可以访问到root目录下的内容。
所以在Tomcat架构图中,context会有多层,意味着context可以有多个。
Conf目录
catalina.policy:tomcat安全策略文件,java(一次编写到处运行,安全:java security),此文件中编写了各种权限(java.security.Permission)用来控制JVM相关权限。
catalina.properties:控制配置文件 ,如common classloader
logging.properties:日志配置文件,JDK Logging
server.xml:主要server配置文件
Context.xml:全局context配置文件
tomcat-users.xml:角色配置文件(Realm文件实现方式)
web.xml:servlet标准的web.xml部署文件,tomcat默认实现了部分配置
不使用Tomcat处理静态文件不是性能不好,而是因为它要占用端口,而端口是有限的。Jsp性能很好,也可以用html的形式去写,但它最大的缺点是要依赖于servlet容器。
Context主要关心应用相关的东西(web app),manager,loader,realm是安全相关的,内层的servlet是通过web app控制安全的,外层的Tomcat有自己的一套安全体系。Host有自己的实例,还会带有虚拟主机。Engine(引擎)带有Catalina。
Lib目录
Tomcat存放公用类库的文件
jasper.jar :jsp的编译器
ecj-4.6.3.jar :eclipse java 编译器
Logs目录
Localhost. d a t e . l o g : 当 T o m c a t 应 用 起 不 来 的 时 候 , 多 看 该 文 件 , 如 类 冲 突 C a t a l i n a . {date}.log :当Tomcat应用起不来的时候,多看该文件,如类冲突 Catalina. dat