Tomcat

0 阅读5分钟

简介

Tomcat 是一个 Java Web 应用服务器(Servlet 容器) ,用来运行 Java Web 项目。

  1. 运行 Java Web 程序
    Tomcat 实现了:Servlet 规范、JSP 规范。所以它可以运行:Servlet、JSP、Spring MVC、Spring Boot(内嵌 Tomcat)
  2. 充当 Web 服务器
    Tomcat 本身就是一个 HTTP 服务器,可以:监听 8080 端口、接收浏览器请求、返回 HTML 页面或 JSON 数据。比如你访问:http://localhost:8080 其实是 Tomcat 在响应。
  3. 处理请求流程
    当用户访问网页时:浏览器 → Tomcat → Servlet → 业务逻辑 → 返回响应 → 浏览器 Tomcat 负责:创建 request / response 对象、调用对应的 Servlet、处理线程池、管理生命周期

安装

下载链接:tomcat.apache.org/download-10…

mac 启动

  1. 进入 Tomcat 的 bin 目录 cd /path/to/your/apache-tomcat-10.1.52/bin
  2. 赋予脚本执行权限(首次运行需要chmod +x *.sh
  3. 启动 Tomcat./startup.sh,如果一切正常,你会在终端看到类似 Tomcat started 的提示。
  4. 验证是否启动成功:访问 http://localhost:8080
  5. 关闭 Tomcat./shutdown.sh

Tomcat常见目录

  • bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat10.exe、tomcat10w.exe,前者是在控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动,shutdown.bat用来停止Tomcat;
  • conf:配置文件:
    • server.xml:配置整个服务器信息。例如修改端口号。默认 HTTP 请求的端口号是:8080
    • tomcat-users.xml:存储 tomcat 用户的文件,这里保存的是 tomcat 的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加 tomcat 用户,然后就可以在 Tomcat 主页中进入 Tomcat Manager 页面了;
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> 
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/> 
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <user username="admin" password="admin" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" /> 
</tomcat-users>
  • web.xml:部署描述符文件,这个文件中注册了很多 MIME 类型,即文档类型。这些 MIME 类型是客户端与服务器之间说明文档类型的,如用户请求一个 html 网页,那么服务器还会告诉客户端浏览器响应的文档是 text/html 类型的,这就是一个 MIME 类型。客户端浏览器通过这个 MIME 类型就知道如何处理它了。当然是在浏览器中显示这个 html 文件了。但如果服务器响应的是一个 exe 文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME 就是用来说明文档的内容是什么类型的!
  • lib:Tomcat 的类库,里面是一大堆 jar 文件。如果需要添加 Tomcat 依赖的 jar 文件,可以把它放到这个目录中,当然也可以把应用依赖的 jar 文件放到这个目录中,这个目录中的 jar 所有项目都可以共享之,但这样你的应用放到其他 Tomcat 下时就不能再共享这个目录下的 jar 包了,所以建议只把 Tomcat 需要的 jar 包放到这个目录下;
  • logs:这个目录中都是日志文件,记录了 Tomcat 启动和关闭的信息,如果启动 Tomcat 时有错误,那么异常也会记录在日志文件中。
  • webapps:存放 web 项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是 tomcat 自带的项目。其中 ROOT 是一个特殊的项目,在地址栏中访问:http://127.0.0.1:8080,没有给出项目目录时,对应的就是 ROOT 项目。http://localhost:8080/examples,进入示例项目。其中 "examples" 就是项目名,即文件夹的名字。

Web项目标准结构

app 本应用根目录

  • static 非必要目录,约定俗成的名字,一般在此处放静态资源(css js img);
  • WEB-INF 必要目录,必须叫 WEB-INF。受保护的资源目录,浏览器通过 url 不可以直接访问的目录;
    • classes 必要目录,src 下源代码、配置文件,编译后会在该目录下。web 项目中如果没有 Java 源码,则该目录不会出现。
    • lib 必要目录,项目依赖的 jar 编译后会出现在该目录下,web 项目要是没有依赖任何 jar,则该目录不会出现。
    • web.xml 必要文件,web 项目的基本配置文件,较新的版本中可以没有该文件,但是学习过程中还是需要该文件。
  • index.html 非必要文件,index.html/index.htm/index.jsp 为默认的欢迎页; image.png

IDEA 中使用 Tomcat

image.png

  1. IDEA 关联本地 Tomcat image.png image.png image.png
  2. 使用 IDEA 创建 javaWEB 工程,在工程中开发代码
    打开 -> 项目 image.png
  3. 创建 JavaWeb 项目 image.png image.png
  4. 添加Web资源组件
    双击 Shift 键打开全局搜索,输入 Add Framework Support
    image.png 4.0 的约束在 Tomcat10 中不能运行,需要提升项目版本号,需要增加 Tomcat 作为开发依赖。
    文件 -> 项目结构:
    image.png image.png 再次打开之后。 image.png 此时变成了 JavaWeb 项目 image.png HTML、JS、CSS 放在 web 中,Java代码放在 src 下,配置文件放在 resource 文件夹中。需要把 resource 文件夹和 src 的内容打包到一起: image.png
  5. jar 包导入
    必须放在 WEB-INF 下的 lib 中 image.png 添加为依赖: image.png image.png image.png
  6. 构建成 App
  • 顶部导航/构建/构建工件。
  • 构建完之后,生成 out 目录。 image.png image.png
  1. 将构建好的 App 放在 Tomcat 中 image.png image.png image.png
  2. 运行 Tomcat image.png

IDEA 部署/运行项目原理

image.png