当前位置: 首页 > news >正文

Tomcat简述介绍

文章目录

  • Web服务器
  • Tomcat的作用
  • 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:说明文件。

http://www.xdnf.cn/news/512659.html

相关文章:

  • 10.8 LangChain三大模块深度实战:从模型交互到企业级Agent工具链全解析
  • 企业级小程序APP用户数据查询系统安全脆弱性分析及纵深防御体系构建
  • JUC入门(二)
  • [创业之路-362]:企业战略管理案例分析-3-战略制定-华为使命、愿景、价值观的演变过程
  • 开源项目实战学习之YOLO11:12.5 ultralytics-models-sam.py通用图像分割模型源码分析
  • Django学习
  • **HTTP/HTTPS基础** - URL结构(协议、域名、端口、路径、参数、锚点) - 请求方法(GET、POST) - 请求头/响应头 - 状态码含义
  • IS-IS 中间系统到中间系统
  • ASCII码表
  • 离散文本表示
  • Java IO框架
  • YOLO12改进-模块-引入Channel Reduction Attention (CRA)模块 降低模型复杂度,提升复杂场景下的目标定位与分类精度
  • 云原生安全:IaaS安全全解析(从基础到实践)
  • Linux 安装 Unreal Engine
  • 4.1.8文件共享
  • MCP实战:在扣子空间用扣子工作流MCP,一句话生成儿童故事rap视频
  • java中的Servlet3.x详解
  • 07、基础入门-SpringBoot-自动配置特性
  • wsl2中Ubuntu22.04配置静态IP地址
  • 荔枝成熟度分割数据集labelme格式2263张3类别
  • 基于PageHelper的分页查询
  • MyBatis-Plus 的 updateById 方法不更新 null 值属性的问题
  • MySQL--day2--基本的select语句
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Expanding Cards (展开式卡片)
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月18日第81弹
  • symfonos: 1靶场
  • 一个stm32工程从底层上都需要由哪些文件构成
  • 【ROS2】RViz2源码分析(九):RosClientAbstraction和RosNodeAbstraction的关系
  • Android 性能优化入门(二)—— 内存优化
  • MATLAB安装常见问题解决方案