Java面试经常考察Tomcat,下面给大家总结了一份Tomcat面试题,包含了常见的Tomcat面试题及答案。
什么是Tomcat?
Tomcat是应用Java服务器,是一个Servlet容器,是由 Apache开发的一个开源 Java WEB 应用服务器。
Tomcat作用
Tomcat作用主要体现如下3个方面:
1.Web运行容器
当我们的Web Project代码开发完成后,需要放到Tomcat中才能跑起来。
举一个最简单的例子,比如:你的网站JSP页面编写好了,如果要运行起来,这个时候就需要有服务器来解释这些脚本语言。
2.Servlet容器
Tomcat是一个Servlet容器,除了具有传统的Web服务器的功能,还可以管理Servlet的生命周期。
3.JSP容器
当用户访问一个JSP页面时,会向Servlet容器,比如向Tomcat发出请求,最后通过数据查询返回结果。
具体如下图所示:
当有人请求JSP时,服务器内部会经历一次动态资源JSP到静态资源HTML的转化。
Tomcat的目录结构
如下图所示:
- bin:存放用于启动和暂停Tomcat的脚本;
- conf:存放Tomcat的配置文件;
- lib:存放Tomcat服务器需要的各种jar包;
- logs:存放Tomcat的日志文件;
- temp:Tomcat运行时用于存放临时文件;
- webapps:web应用的发布目录;
- work:Tomcat把有jsp生成Servlet防御此目录下;
Tomcat核心配置?
Tomcat配置如下:
context.xml | 用于定义所有Web应用均需要加载的 Context 配置,如果Web应用指定了自己的context.xml,那么该文件的配置将被覆盖 |
catalina.properties | Tomcat环境变量配置 |
catalina.policy | 当 Tomcat在安全模式下运行时,此文件为默认的安全策略配置 |
logging.properties | Tomcat日志配置文件,可通过该文件修改 Tomcat日志级别以及日志路径等 |
server.xml | Tomcat服务器核心配置文件,用于配置 Tomcat的链接器、监听端口、处理请求的虚拟主机等。
(对于我开发人员来说是非常重要) |
tomcat-users.xml | 用于定义 Tomcat默认用户及角色映射信息,Tomcat的 Manager模块即用该文件中定义的用户进行安全认证 |
web.xml | Tomcat中所有应用默认的部署描述文件,主要定义了基础 Servlet和MIME映射。
如果应用中不包含 Web. xml,那么 Tomcat将使用此文件初始化部署描述,反之,Tomcat会在启动时将默认部署描述与自定义配置进行合并 |
server.xml是Tomcat服务器核心配置文件。
Tomcat工作模式?
Tomcat作为servlet容器,有三种工作模式:
1.独立的servlet容器
servlet容器是web服务器的一部分。
2.进程内的servlet容器
servlet容器是作为web服务器的插件和java容器的实现,web服务器插件在内部地址空间打开一个jvm使得java容器在内部得以运行。
3.进程外的servlet容器
servlet容器运行于web服务器之外的地址空间,并作为web服务器的插件和java容器实现的结合,反应时间不如进程内但伸缩性和稳定性比进程内优。
Tomcat有几种部署方式?
1.利用Tomcat的自动部署
把web应用拷贝到webapps目录,Tomcat在启动时会加载目录下的应用。
2.使用Manager App控制台部署
在tomcat主页点击“Manager App” 进入应用管理控制台,可以指定一个web应用的路径,或war文件。
3.修改conf/server.xml文件部署
修改conf/server.xml文件,增加Context节点可以部署应用。
4.增加自定义的Web部署文件
在conf/Catalina/localhost/ :路径下增加 xyz.xml文件,内容是Context节点,可以部署应用。
Tomcat和Apache区别
Apache不能解释Java程序,比如典型的:JSP、Servlet等,Apache都不支持。
Apache主要支持支持静态网页,比如:html为代表的静态网页。
tomcat除了支持HTML等静态网页外,还可以支持:JSP、Velocity、FreeMarker等动态网页请求。
Nginx和Tomcat区别
Nginx常用做静态内容服务和代理服务器,直接将外来请求,转发给后面的应用服务器,比如:tomcat等。
Nginx在静态上的功能非常强大,主要直接把外来的请求做分发,不做后端处理。
而Tomcat则是需要做后端处理,比如:使用tomcat用在java后台程序上,让java web泡在里面的应用服务容器。
一句话总结:如果想要使用 Java 程序来动态生成资源内容,就会使用到Tomcat为代表的应用服务器。
Tomcat有哪几种Connector运行模式?
Tomcat Connector有三种运行模式:BIO、NIO,、APR模式。
这三种模式的不同之处如下:
1.BIO模式
BIO模式就是:一个线程处理一个请求,缺点:并发量高时,线程数较多,浪费资源。
2.NIO模式
利用Java的异步IO处理,可以通过少量的线程处理大量的请求,Tomcat8在Linux系统中默认使用这种方式。
3.APR模式
APR即Apache Portable Runtime,从操作系统层面解决io阻塞问题,Linux如果安装了apr和native,Tomcat直接启动就支持apr。
以上就是常见的Tomcat面试题及答案,更多的Java面试题及答案,请查看:1000+Java面试题及答案详解。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》