面试网> 面试题库 > IT面试题 > 关于Tomcat的13道面试题,你能答对几个?

关于Tomcat的13道面试题,你能答对几个?

面试网2020/1/13 10:53:550人围观
简介Tomcat服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期...

    Tomcat服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期的名称为catalina,后来由Apache、Sun 和其他一些公司及个人共同开发而成,并更名为Tomcat。

    Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,因为Tomcat技术先进、性能稳定,成为目前比较流行的Web应用服务器。面试中,tomcat也往往会涉及到。

一、什么是Tomcat?

    Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。

二、tomcat结构目录有哪些?

    ①bin:启动和关闭tomcat的bat文件。

    ②conf:配置文件。

    ③server.xml该文件用于配置server相关的信息,比如tomcat启动的端口号,配置主机(Host)。

    ④web.xml文件配置与web应用(web应用相当于一个web站点)

    ⑤tomcat-user.xml配置用户名密码和相关权限。

    ⑥lib:该目录放置运行tomcat运行需要的jar包。

    ⑦logs:存放日志,当我们需要查看日志的时候,可以查询信息。

    ⑧webapps:放置我们的web应用。

    ⑨work工作目录:该目录用于存放jsp被访问后生成对应的server文件和.class文件。

三、如何配置Tomcat虚拟目录?

    1、在server.xml中的节点下添加如下代码。path表示的是访问时输入的web项目名,docBase表示的是站点目录的绝对路径。

    2、进入到confCatalinalocalhost文件下,创建一个xml文件,该文件的名字就是站点的名字。

四、Tomcat体系结构是怎样的?

    浏览器 -> tomcat server-> service ->connector -> engine(引擎) -> host(主机) -> web应用。

五、Web请求在Tomcat请求中的请求流程是怎么样的?

    ①浏览器输入URL地址;

    ②查询本机hosts文件寻找IP;

    ③查询DNS服务器寻找IP;

    ④向该IP发送Http请求;

    ⑤Tomcat容器解析主机名;

    ⑥Tomcat容器解析Web应用;

    ⑦Tomcat容器解析资源名称;

    ⑧Tomcat容器获取资源;

    ⑨Tomcat响应浏览器。

六、如何在tomcat集群中实现Session共享

    Apache集群实现Tomcat的Session共享配置其实很简单,在Tomcat自带的文档中有详细的说明( /docs/cluster-howto.html ),只不过是英语的,所以联合下面根据说下怎么配置吧:

    1、既然是集群肯定要多准备几个Tomcat来模拟,比如分别为Tomcat01、Tomcat02、Tomcat03。

    如果各Tomcat程序放在不同的机器上,那么就不会有端口的冲突。如果是放在同一台机器上的话,那就简单改几个端口,防止端口占用造成的冲突。打开conf文件夹中的server.xml文件,需要修改的端口有:

    1、<Server port=8015 shutdown=SHUTDOWN>

    2、<Connector port=8081 protocol=HTTP/1.1 connectionTimeout=20000 redirectPort=8443 />

    3、<Connector port=8019 protocol=AJP/1.3 redirectPort=8443 />

    以上port需要修改,至于修改成什么样子,看你自己了,只要不出现端口冲突就可以了,要保证各个Tomcat实例间没有端口冲突。

七、tomcat有哪些Connector?

    Tomcat的Web服务器连接器支持两种协议:AJP和HTTP,它们均定义了以二进制格式在Web服务器和Tomcat之间进行数据传输,并提供相应的控制命令。

    AJP(Apache JServ Protocol)协议:目前正在使用的AJP协议的版本是通过JK和JK2连接器提供支持的AJP13,它基于二进制的格式在Web服务器和Tomcat之间传输数据,而此前的版本AJP10和AJP11则使用文本格式传输数据。

    HTTP协议:诚如其名称所表示,其是使用HTTP或HTTPS协议在Web服务器和Tomcat之间建立通信,此时,Tomcat就是一个完全功能的HTTP服务器,它需要监听在某端口上以接收来自于商前服务器的请求。

八、tomcat的Valve的作用是什么?

    Valve类似于过滤器,它可以工作于Engine和Host/Context之间Host和Context之间以及Context和Web应用程序的某资源之间。一个容器内可以建立多个Valve,而且Valve定义的次序也决定了它们生效的次序。

九、Webserver和 Application Server的区别是什么?

    最大区别,WebServer 一般仅仅指Web(如servlet,jsp)的应用服务器,ApplicationServer不仅可以是Web,还可以是Ejb等其它的应用服务器。

    web server可以是application server的一部分,也可以是单独存在。

 、Tomcat的缺省端口是多少,怎么修改?

    1)找到Tomcat目录下的conf文件夹;

    2)进入conf文件夹里面找到server.xml文件;

    3)打开server.xml文件;

    4)在server.xml文件里面找到下列信息;

    <Connector connectionTimeout=20000 port=8080 protocol=HTTP/1.1  redirectPort=8443 uriEncoding=utf-8/>

    port=8080改成你想要的端口

十一 、Tomcat 有几种部署方式?

    1)直接把Web项目放在webapps下,Tomcat会自动将其部署

    2)在server.xml文件上配置<Context>节点,设置相关的属性即可

    3)通过Catalina来进行配置:进入到conf\Catalina\localhost文件下,创建一个xml文件,该文件的名字就是站点的名字。编写XML的方式来进行设置。

十二、tomcat容器是如何创建servlet类实例?用到了什么原理?

    当容器启动时,会读取在webapps 目录下所有的web应用中的web.xml 文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。

十三、Tomcat顶层架构小结

    (1)Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container;

    (2) Server掌管着整个Tomcat的生死大权;

    (4)Service是对外提供服务的;

    (5)Connector用于接受请求并将请求封装成Request和Response来具体处理;

    (6)Container用于封装和管理Servlet,以及具体处理request请求;

最新信息

  • 技术干货:Hadoop面试题及答案

    一、什么是Hadoop? Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容: HDF...

  • 技术干货:ActiveMQ面试题及答案

    1、什么是 ActiveMQ? activeMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。2、Active...

  • 技术干货:RabbitMQ面试题及答案

    RabbitMQ作为目前应用相当广泛的消息中间件,在企业级应用、微服务应用中充当着重要的角色,特别是在一些典型的应用场景以及业务模块中具有重要的作用。 比如业务服务模块解耦,异步通信,高并发限流...

  • 关于Tomcat的13道面试题,你能答对几个?

    Tomcat服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期...

  • 12道Zookeeper面试题,让你不再束手无策!

    ZooKeeper是一个开源的分布式协调服务,可以基于ZooKeeper实现诸如:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、配置维护,名字服务、分布式同步、分布...

  • 技术干货:spring boot面试题及答案

    做Java开发,没有人敢小觑 Spring Boot的重要性,现在出去面试,无论多小的公司 or 项目,都要跟你扯一扯 Spring Boot,扯一扯微服务,不会?没用过?Sorry,我们不合适! ...

标签列表