36道Tomcat高频题整理(附答案背诵版)
由于篇幅限制,这里只列出部分高频Tomcat问题及其答案:
Tomcat 的 Container 的生命周期是怎样的?
答案:Tomcat 中的 Container 分为 Engine、Host、Context 和 Wrapper 四个层次,它们的生命周期由以下方法控制:
startInternal()
: 启动 Container,并启动它下面的所有子 Container。stopInternal()
: 停止 Container,并停止它下面的所有子 Container。backgroundProcess()
: 进行周期性处理,如加载 Session 保存等。
Tomcat 如何配置数据源?
答案:在 Tomcat 的
conf/context.xml
文件中配置数据源,例如:<Context> <Resource name="jdbc/MyDataSource" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="user" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb"/> </Context>
Tomcat 的集群session如何实现?
答案:Tomcat 原生不支持集群 session,但可以使用第三方解决方案如
memcached-session-manager
来实现。Tomcat 的 JSP 文件是如何被转换为 Servlet 的?
答案:Tomcat 内部使用 JSP 编译器(Jasper)来将 JSP 文件转换成 Servlet 源代码,然后进一步编译成 .class 文件。
Tomcat 的 Classloader 是什么?
答案:Tomcat 的 Classloader 用于加载应用程序的类和资源,确保各个应用程序之间的类和资源是隔离的。
Tomcat 的 Request 和 Response 对象是如何被创建的?
答案:这是在连接器(Connector)层完成的,每当一个新请求到达,连接器会创建一个新的 Request 和 Response 对象,并传递给 Container 处理。
这些是 Tomcat 核心问题的简答,实际上 Tomcat 的复杂性远不止这些,需要深入理解每个组件的设计和实现。
评论已关闭