Tomcat面试题

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Tomcat面试题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

3)打开 server.xML 文件

4)在 server.xml 文件里面找到下列信息 port="8080"改成你想要的端口

2、tomcat 有哪几种 Connector 运行模式(优化)?

bio:传统的Java I/O操作,同步且阻塞IO。

maxThreads="150"//Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最 大的线程数。默认值200。可以根据机器的时期性能和内存大小调整,一般可以在400-500。最大可以在800左右。

minSpareThreads="25"—Tomcat初始化时创建的线程数。默认值4。如果当前没有空闲线 程,且没有超过maxThreads,一次性创建的空闲线程数量。Tomcat初始化时创建的线程数量也由 此值设置。

maxSpareThreads="75"—一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线 程。默认值50。一旦创建的线程超过此数值,Tomcat会关闭不再需要的线程。线程数可以大致上 用 “同时在线人数每秒用户操作次数系统平均操作时间” 来计算。

acceptCount="100"—指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队 列中的请求数,超过这个数的请求将不予处理。默认值10。如果当前可用线程数为0,则将请求放入处理队列中。这个值限定了请求队列的大小,超过这个数值的请求将不予处理。

connectionTimeout="20000" —网络连接超时,默认值20000,单位:毫秒。设置为0表示永 不超时,这样设置有隐患的。通常可设置为30000毫秒。

nio:JDK1.4开始支持,同步阻塞或同步非阻塞IO。

指定使用NIO模型来接受HTTP请求

PRotocol="org.apache.coyote.http11.Http11NioProtocol" 指定使用NIO模型来接受 HTTP请求。默认是BlockingIO,配置为protocol="HTTP/1.1" acceptorThreadCount="2" 使用NIO模型时接收线程的数目

aio(nio.2):JDK7开始支持,异步非阻塞IO。

apr:Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络 传输操作,从而大大地 提高Tomcat对静态文件的处理性能。

<!--
<Connector connectionTimeout="20000" port="8000" protocol="HTTP/1.1" redirectPort="8443" uriEncoding="utf-8"/>
-->
     <!-- protocol 启用 nio模式,(tomcat8默认使用的是nio)(apr模式利用系统级异步 io) -->
     <!-- minProcessors最小空闲连接线程数-->
     <!-- maxprocessors最大连接线程数-->
     <!-- acceptCount允许的最大连接数,应大于等于maxProcessors-->
     <!-- enableLookups 如果为true,requst.getRemoteHost会执行DNS查找,反向解析 ip对应域名或主机名-->

    <Connector port="8080"
         protocol="org.apache.coyote.http11.Http11NioProtocol"
         connectionTimeout="20000"
         redirectPort="8443"
         maxThreads="500"
         minSpareThreads="100"
         maxSpareThreads="200"
         acceptCount="200"
         enableLookups="false"
     />

其他配置

maxHttpHeaderSize="8192" http请求头信息的最大程度,超过此长度的部分不予处理。一般 8K。

URIEncoding="UTF-8" 指定Tomcat容器的URL编码格式

disableUploadTimeout="true" 上传时是否使用超时机制

enableLookups="false"–是否反查域名,默认值为true。为了提高处理能力,应设置为 false

comPression="on" 打开压缩功能

compressionMinSize="10240" 启用压缩的输出内容大小,默认为2KB

noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩

compressableMimeTyPE="text/html,text/xml,text/javascript,text/css,text/plain" 哪些类型需要压缩

&nbsp;

 

3、Tomcat 有几种部署方式?

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

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

3)通过 Catalina 来进行配置:进入到 confcatalinalocalhost 文件下,创建一个 xml 文件,该文件的名字就是站点的名字。

编写 XML 的方式来进行设置。

 

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

当容器启动时,会读取在webapps 目录下所有的 web 应用中的 web.xml文 件,然后对 xml 文件进行解析,

并读取 servlet 注册信息。然后,将每个应用中注册的 servlet 类都进行加载, 并通过反射的方式实例化。

(有时候也是在第一次请求时实例化)在 servlet 注册时加上如果为正数,则在 一开始就实例化,

如果不写或为负数,则第一次请求实例化

脚本宝典总结

以上是脚本宝典为你收集整理的Tomcat面试题全部内容,希望文章能够帮你解决Tomcat面试题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。