Tomcat简述介绍

文章目录

Web服务器

Web服务器的作用是接收客户端的请求,给客户端作出响应。

知名Java Web服务器

  • Tomcat(Apache):用来开发学习使用;免费,开源
  • JBoss(Redhat红帽)
  • Weblogic(Orcale):要钱的,使用Tomcat开发,项目写完了,放到Weblogic上运行;
  • Websphere(IBM):要钱的,与Weblogic相似。

Tomcat的作用

当用户通过发送过来一个请求后,Tomcat来接收请求,然后给用户返回响应。通常用户都是通常浏览器发出请求,然后浏览器的响应都是html代码。当然,这也不是全部,有时用户可能会通过其他手段向服务器发送请求,而Tomcat返回的响应也可能不是html,也可能是一个文件,一张图片等。

  1. 作为 Web 服务器
    • 处理 HTTP 请求:Tomcat 能够接收客户端(如浏览器)发送的 HTTP 请求,并根据请求内容提供相应的资源。当用户在浏览器中输入一个 URL 并按下回车键时,浏览器会向服务器发送一个 HTTP 请求,Tomcat 可以接收这个请求,并根据请求中的路径信息找到对应的网页文件(如 HTML、JSP 等),然后将这些文件内容返回给客户端浏览器进行显示。
    • 静态资源服务:它可以直接处理和提供静态资源,如 HTML 页面、CSS 样式表、JavaScript 文件、图片等。当客户端请求这些静态资源时,Tomcat 会从文件系统中读取相应的文件,并将其发送给客户端,无需额外的处理。
  2. 作为 Servlet 容器
    • Servlet 管理:Servlet 是运行在服务器端的 Java 小程序,用于处理客户端请求并生成动态内容。Tomcat 作为 Servlet 容器,负责加载、实例化和管理 Servlet。当有请求到达时,Tomcat 会根据请求的 URL 映射找到对应的 Servlet,并调用其相应的方法(如 doGet、doPost 等)来处理请求。
    • 生命周期管理:Tomcat 管理着 Servlet 的生命周期,包括 Servlet 的初始化、服务请求和销毁。在 Servlet 被加载时,Tomcat 会调用其 init 方法进行初始化;当有请求到来时,调用相应的服务方法处理请求;当 Servlet 不再使用时,Tomcat 会调用其 destroy 方法进行资源释放。
  3. 作为 JSP 容器
    • JSP 编译与执行:JSP(JavaServer Pages)是一种动态网页技术,它允许在 HTML 页面中嵌入 Java 代码。Tomcat 可以将 JSP 文件编译成 Servlet 类,然后像处理普通 Servlet 一样执行这些编译后的 Servlet,从而生成动态的 HTML 页面返回给客户端。
    • 支持 JSP 特性:Tomcat 支持 JSP 的各种特性,如表达式语言(EL)、自定义标签库等,使得开发人员可以更方便地创建动态网页。
  4. 支持 Java Web 应用部署
    • 应用部署:开发人员可以将开发好的 Java Web 应用打包成 WAR(Web Application Archive)文件,然后将其部署到 Tomcat 中。Tomcat 会自动解压 WAR 文件,并将应用程序部署到相应的目录下,使其可以被访问。
    • 多应用支持:Tomcat 可以同时部署多个 Java Web 应用,每个应用都有自己独立的上下文路径,相互之间不会干扰。这样可以在一个 Tomcat 实例上运行多个不同的 Web 应用,提高服务器资源的利用率。
  5. 与其他服务器集成
    • 反向代理:Tomcat 可以与其他 Web 服务器(如 Apache、Nginx 等)配合使用,通过反向代理的方式将请求转发给 Tomcat 处理。这样可以利用其他 Web 服务器的高性能和稳定性来处理静态资源请求,而将动态请求转发给 Tomcat 处理,从而提高整个系统的性能和可扩展性。
    • 集群部署:在高并发场景下,Tomcat 可以进行集群部署,通过负载均衡器将客户端请求均匀地分发到多个 Tomcat 实例上,从而提高系统的处理能力和可靠性。

Tomcat分析

目录结构

  • bin:该目录下存放的是可执行文件,有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME和shutdown.bat用来停止Tomcat;

  • conf:这是一个非常非常重要的目录,这个目录下有三个最为重要的文件:

    • server .xml:配置整个服务器信息。例如修改端口号,下面会详细介绍这个文件;
    • web .xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!
  • lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把项目依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之;

  • logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。

  • temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!

  • webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。

  • work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!**可以把这个目录下的内容删除,再次运行时会生再次生成work目录。**当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

  • LICENSE:许可证。

  • NOTICE:说明文件。

相关推荐
菠萝崽.1 小时前
RabbitMQ高级篇-MQ的可靠性
java·分布式·后端·消息队列·rabbitmq·异步编程
万叶学编程2 小时前
@RequestParam 和 @RequestBody、HttpServletrequest 与HttpServletResponse
java
zfj3213 小时前
H2数据库源码学习+debug, 数据库 sql、数据库引擎、数据库存储从此不再神秘
java·数据库·sql·学习·数据库底层原理
编程、小哥哥4 小时前
Java面试实战:从Spring Boot到分布式缓存的深度探索
java·spring boot·redis·微服务·grpc·缓存技术·面试技巧
在未来等你4 小时前
互联网大厂Java求职面试:Spring AI与大模型交互的高级模式与自定义开发
java·微服务·云原生·大模型·spring ai
androidwork4 小时前
Android Kotlin权限管理最佳实践
android·java·kotlin
录大大i4 小时前
spring中yml配置上下文与tomcat等外部容器不一致问题
spring·tomcat
键盘客5 小时前
Spring Boot 配置明文密码加密,防泄漏
java·spring boot·后端·spring
二进制小甜豆6 小时前
SpringBoot快速上手
java·spring boot·maven