Tomcat的13道面试题

x33g5p2x  于2021-08-23 转载在 Java  
字(2.7k)|赞(0)|评价(0)|浏览(268)

一、什么是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文件里面找到下列信息;

port=“8080”改成你想要的端口

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

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

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

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请求;

来源:http://blog.itpub.net/69902581/viewspace-2673221/

相关文章