Tomcat 的使用(图文教学)

Tomcat 的使用(图文教学)

  • 前言
  • 一、什么是Tomcat?
  • 二、Tomcat 服务器和 Servlet 版本的对应关系
  • 三、Tomcat 的使用
    • 1、安装
    • 2、目录介绍
    • 3、如何启动
    • 4、Tomcat 的停止
    • 5、如何修改 Tomcat 的端口号
    • 6、如何部暑 web 工程到 Tomcat 中
      • 6.1 方式一
      • 6.2 方式二
  • 四、两种访问页面的方式
    • 1、手托 html 页面到浏览器
    • 2、在浏览器中输入访问路径进行访问
  • 五、ROOT工程和index页面的默认访问
    • 1、ROOT 的工程的访问
    • 2、默认 index.html 页面的访 问
  • 六、IDEA 整合 Tomcat 服务器
  • 七、IDEA 中动态 web 工程的操作
    • 1、IDEA 中如何创建动态 web 工程
    • 2、Web 工程的目录介绍
    • 3、如何给动态 web 工程添加额外 jar 包
    • 4、如何在 IDEA 中部署工程到 Tomcat 上运行
    • 5、在 IDEA 中如何运行,和停止 Tomcat 实例。
    • 6、修改工程访问路径
    • 7、修改运行的端口号
    • 8、修改运行使用的浏览器



前言

本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!
也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!

一、什么是Tomcat?

Tomcat 是一款免费、开源的 Web 服务器和 Servlet 容器,由 Apache 软件基金会开发和维护。Tomcat 实现了 Java Servlet、JavaServer Pages(JSP)、Java Expression Language(EL)和 WebSocket 等 Java 技术规范,可以作为 Web 应用程序的运行环境。

Tomcat 的特点包括:

  • 轻量级:Tomcat 的核心代码非常小,可以快速启动和运行,而且占用的系统资源较少,适合用于低配置的服务器。
  • 易于配置:Tomcat 提供了丰富的配置选项,可以通过修改配置文件来定制化 Tomcat 的行为。
  • 支持标准:Tomcat 实现了 Java Servlet、JavaServer Pages(JSP)、Java Expression Language(EL)和 WebSocket 等 Java 技术规范,可以运行符合规范的 Web 应用程序。
  • 可扩展性:Tomcat 支持插件扩展,可以通过添加新的模块来增加功能。
  • 安全性:Tomcat 提供了多种安全机制,可以保护 Web 应用程序的安全性。

作为一个 Web 服务器和 Servlet 容器,Tomcat 可以用于部署和运行各种类型的 Web 应用程序,例如企业级应用、电子商务平台、博客、论坛等。Tomcat 也可以作为开发和测试 Web 应用程序时的本地开发服务器,支持快速的应用程序部署和调试。

二、Tomcat 服务器和 Servlet 版本的对应关系

Tomcat版本Servlet版本JavaEE版本运行环境版本
Tomcat 10Servlet 5.0JavaEE 8Java 11+
Tomcat 9Servlet 4.0JavaEE 7Java 8+
Tomcat 8Servlet 3.1JavaEE 7Java 7+
Tomcat 7Servlet 3.0JavaEE 6Java 6+
Tomcat 6Servlet 2.5JavaEE 5Java 5+

需要注意的是,Tomcat 6 已经停止维护,不再推荐使用。另外,实际应用中,JavaEE 版本可能不一定与 Servlet 版本完全对应,具体需根据应用的需求和兼容性进行选择。

三、Tomcat 的使用

1、安装

  1. 下载 Tomcat 安装包:首先你需要下载 Tomcat 的安装包,可以从 Tomcat 官网上下载,选择适合自己的版本即可。建议下载最新的稳定版本。

  2. 解压安装包:将安装包解压到你想要安装的目录下,例如 C:\Tomcat 或 /usr/local/tomcat。

2、目录介绍

Tomcat/
├── bin/
│   ├── catalina.sh
│   ├── catalina.bat
│   ├── startup.sh
│   ├── shutdown.sh
│   └── ...
├── conf/
│   ├── server.xml
│   ├── web.xml
│   └── ...
├── lib/
│   ├── catalina.jar
│   ├── servlet-api.jar
│   └── ...
├── logs/
├── temp/
├── webapps/
│   ├── ROOT/
│   ├── examples/
│   ├── docs/
│   └── ...
└── work/

下面是对目录的简要介绍:

  • bin/:包含了启动和关闭 Tomcat 的脚本以及其他一些工具。
  • conf/:包含了 Tomcat 的配置文件,例如 server.xml 和 web.xml。
  • lib/:包含了 Tomcat 运行时所需的 jar 文件。
  • logs/:包含了 Tomcat 运行时的日志文件。
  • temp/:包含了 Tomcat 运行时所需的临时文件。
  • webapps/:是放置 Web 应用程序的目录。
  • work/:包含了 Tomcat 运行时生成的临时文件。

3、如何启动

  1. 在 Windows 操作系统上,可以通过双击 Tomcat 安装目录下的 bin/catalina.bat 文件来启动 Tomcat。
  2. 启动后,可以通过浏览器访问 http://localhost:8080 来验证 Tomcat 是否启动成功。
  3. 当出现如下界面,说明 Tomcat 服务器启动成功!!!
    在这里插入图片描述

常见的启动失败的情况有,双击 startup.bat 文件,就会出现一个小黑窗口一闪而来。 这个时候,失败的原因基本上都是因为没有配置好 JAVA_HOME 环境变量。

配置 JAVA_HOME 环境变量:
在这里插入图片描述
常见的 JAVA_HOME 配置错误有以下几种情况:

  1. JAVA_HOME 必须全大写。
  2. JAVA_HOME 中间必须是下划线,不是减号-
  3. JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录。

4、Tomcat 的停止

三种方式:

  1. 点击 tomcat 服务器窗口的 x 关闭按钮
  2. 把 Tomcat 服务器窗口置为当前窗口,然后按快捷键 Ctrl+C
  3. 找到 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器

5、如何修改 Tomcat 的端口号

Tomcat 默认的 HTTP 端口号是 8080,如果需要修改端口号,可以按照下面的步骤进行操作:

  1. 打开 conf/server.xml 文件。

  2. 找到以下代码:

    <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
    

    其中,port="8080" 表示 Tomcat 的 HTTP 端口号是 8080。

  3. 修改 port 属性的值为你需要的端口号。例如,将端口号修改为 8888,代码如下:

    <Connector port="8888" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
    
  4. 保存 server.xml 文件。

  5. 重新启动 Tomcat,使修改生效。

    如果是在 Windows 操作系统上,可以双击 Tomcat 安装目录下的 bin/catalina.bat 文件启动 Tomcat;如果是在 Linux 操作系统上,可以进入 Tomcat 安装目录下的 bin/ 目录,然后执行以下命令来启动 Tomcat:

    $ sh catalina.sh run
    
  6. 在浏览器中访问修改后的端口号,例如 http://localhost:8888/,验证端口号是否修改成功。

注意:如果端口号被占用,Tomcat 启动时会报错。在修改端口号时,要确保新端口号没有被其他程序占用。

6、如何部暑 web 工程到 Tomcat 中

6.1 方式一

将一个 Web 工程部署到 Tomcat 中,可以按照以下步骤进行操作:

  1. 将 Web 工程打成 war 包。

    在 Eclipse 或者其他 Java IDE 中,可以通过选择 Web 工程右键菜单中的“Export”或“Export as WAR file”选项,将 Web 工程打成 war 包,保存到本地。

  2. 将 war 包复制到 Tomcat 的 webapps/ 目录下。

    将刚才打成的 war 包,复制到 Tomcat 的 webapps/ 目录下。Tomcat 会自动将其解压并部署。

  3. 启动 Tomcat。

    在 Windows 操作系统上,可以双击 Tomcat 安装目录下的 bin/catalina.bat 文件启动 Tomcat;如果是在 Linux 操作系统上,可以进入 Tomcat 安装目录下的 bin/ 目录,然后执行以下命令来启动 Tomcat:

    $ sh catalina.sh run
    
  4. 在浏览器中访问 Web 工程。

    在浏览器中输入 http://localhost:8080/工程名,其中 工程名 是 Web 工程的名称。例如,假设 Web 工程的名称是 mywebapp,那么可以通过访问 http://localhost:8080/mywebapp 来访问该 Web 工程。

注意事项:

  • 在部署 Web 工程之前,要确保 Tomcat 已经成功安装并启动。
  • 如果 Tomcat 中已经存在同名的 Web 工程,部署新的 Web 工程会覆盖原有的 Web 工程。
  • 在部署 Web 工程时,要确保 Web 工程的目录结构正确,包括 WEB-INF 目录、web.xml 文件等。

6.2 方式二

找到 Tomcat 下的 conf 目录\Catalina\localhost\ 下,创建如下的配置文件:
abc.xml 配置文件内容如下:

<!-- Context 表示一个工程上下文 path 表示工程的访问路径:/abc docBase 表示你的工程目录在哪里 --> 
<Context path="/abc" docBase="E:\book" />

访问这个工程的路径如下:http://ip:port/abc/ 就表示访问 E:\book 目录

四、两种访问页面的方式

1、手托 html 页面到浏览器

手托 html 页面的原理:
在这里插入图片描述

2、在浏览器中输入访问路径进行访问

在浏览器中输入http://ip:端 口号/工程名/ 进行访问

输入访问地址访问的原因:
在这里插入图片描述
手动拖拽 HTML 页面到浏览器的方式是通过文件系统直接打开 HTML 文件,然后在浏览器中渲染显示该页面。这种方式不需要借助 Web 服务器和 Web 应用程序,适用于简单的静态网页或本地测试。

而在浏览器中输入 http://ip:端口号/工程名/ 的方式则是通过 Web 服务器和 Web 应用程序来访问 HTML 页面。通常情况下,HTML 页面是作为 Web 应用程序的一部分被部署在 Web 服务器上的,因此需要通过 Web 服务器和 Web 应用程序来进行访问。

具体来说,这种方式的访问流程如下:

  1. 用户在浏览器中输入 http://ip:端口号/工程名/

  2. 浏览器向 Web 服务器发送 HTTP 请求。

  3. Web 服务器接收到请求后,将请求转发给相应的 Web 应用程序。

  4. Web 应用程序根据请求的 URL,找到对应的 HTML 页面,并将该页面返回给浏览器。

  5. 浏览器接收到 HTML 页面后,解析显示该页面。

通过 Web 服务器和 Web 应用程序访问 HTML 页面的方式,可以实现更多的功能和交互,例如动态页面、表单提交、数据库访问等。同时,Web 服务器和 Web 应用程序也提供了更好的安全性和可扩展性,可以部署和管理复杂的 Web 应用程序。

五、ROOT工程和index页面的默认访问

1、ROOT 的工程的访问

在 Web 应用程序中,ROOT 是指 Web 应用程序的根目录,也就是 Web 应用程序的访问路径。如果某个 Web 应用程序被部署在 Web 服务器的 ROOT 目录下,那么该 Web 应用程序就可以通过访问 Web 服务器的 IP 地址或域名来访问,而无需指定 Web 应用程序的名称。

例如,如果将一个名为 myapp 的 Web 应用程序部署在 Tomcat 的 ROOT 目录下,那么该应用程序的访问路径将变成 http://ip:端口号/,而不是 http://ip:端口号/myapp/。这种方式可以简化 Web 应用程序的访问路径,提高用户体验。

2、默认 index.html 页面的访 问

默认的 index.html 页面是指 Web 应用程序中的默认首页文件,当用户访问 Web 应用程序的根目录时,Web 服务器会自动寻找默认的 index.html 文件并将其返回给用户。通常情况下,该文件包含了 Web 应用程序的简介、导航或者其他重要信息,是用户访问 Web 应用程序的入口。

例如,在一个名为 myapp 的 Web 应用程序中,如果存在一个名为 index.html 的文件,在用户访问 http://ip:端口号/myapp/ 时,Web 服务器会自动将该文件返回给用户。这样,用户就可以通过访问 Web 应用程序的根目录来访问默认的 index.html 页面,而无需指定具体的文件名。

六、IDEA 整合 Tomcat 服务器

操作的菜单如下:File | Settings | Build, Execution, Deployment | Application Servers
在这里插入图片描述
配置你的 Tomcat 安装目录:
在这里插入图片描述
就可以通过创建一个 Model 查看是不是配置成功!!!在这里插入图片描述

七、IDEA 中动态 web 工程的操作

1、IDEA 中如何创建动态 web 工程

  1. 创建一个新模块:

在这里插入图片描述

  1. 选择你要创建什么类型的模块:

在这里插入图片描述

  1. 输入你的模块名,点击【Finish】完成创建。

在这里插入图片描述

  1. 创建成功如下图:

在这里插入图片描述

2、Web 工程的目录介绍

在这里插入图片描述
Web 工程是指一个 Web 应用程序的开发和部署项目,包含了一系列的文件和目录。下面是 Web 工程中常见的目录介绍:

  1. WEB-INF 目录

    WEB-INF 目录是 Web 应用程序的安全目录,包含了不允许客户端直接访问的文件和目录。该目录下通常包含以下两个目录:

    • classes 目录:用于存放编译后的 Java 类文件和其他可执行文件。

    • lib 目录:用于存放 Web 应用程序所需的 jar 包和其他依赖库文件。

    WEB-INF 目录下还包含了一个 web.xml 文件,用于定义 Web 应用程序的部署描述符(Deployment Descriptor)。该文件包含了 Web 应用程序的配置信息,例如 Servlet、Filter、Listener、Error Page 等。

  2. META-INF 目录

    META-INF 目录是 Java 应用程序的元信息目录,用于存放应用程序的元信息文件。在 Web 应用程序中,META-INF 目录通常包含了 MANIFEST.MF 文件和 context.xml 文件。

    • MANIFEST.MF 文件:用于定义 Java 应用程序的元信息,例如应用程序的版本号、作者、依赖库等。

    • context.xml 文件:用于定义 Web 应用程序的上下文信息,例如数据库连接池配置、全局参数配置等。

  3. css、js 和 images 目录

    这些目录分别用于存放 Web 应用程序中的样式表、JavaScript 文件和图像文件。这些文件可以通过 HTML 页面引用,用于美化页面、实现交互和丰富内容。

  4. WEB-INF/views(或 templates)目录

    该目录用于存放 Web 应用程序的视图模板文件,例如 JSP、Thymeleaf 等。视图模板文件通常用于生成动态的 HTML 页面,实现 Web 页面的渲染和展示。

  5. WEB-INF/resources 目录

    该目录用于存放 Web 应用程序的资源文件,例如配置文件、数据库脚本、静态文件等。这些文件一般不需要直接访问,通常由 Web 应用程序的其他部分调用或读取。

以上是 Web 工程中常见的目录介绍,不同的 Web 应用程序可能会有不同的目录结构和文件组织方式。

3、如何给动态 web 工程添加额外 jar 包

  1. 可以打开项目结构菜单操作界面,添加一个自己的类库:

在这里插入图片描述

  1. 添加你你类库需要的 jar 包文件

在这里插入图片描述

  1. 选择你添加的类库,给哪个模块使用:

在这里插入图片描述

  1. 选择 Artifacts 选项,将类库,添加到打包部署中:

在这里插入图片描述

4、如何在 IDEA 中部署工程到 Tomcat 上运行

  1. 建议修改 web 工程对应的 Tomcat 运行实例名称:

在这里插入图片描述

  1. 确认你的 Tomcat 实例中有你要部署运行的 web 工程模块:

在这里插入图片描述

  1. 你还可以修改你的 Tomcat 实例启动后默认的访问地址:

在这里插入图片描述

5、在 IDEA 中如何运行,和停止 Tomcat 实例。

  1. 正常启动 Tomcat 实例:

在这里插入图片描述

  1. Debug 方式启动 Tomcat 运行实例:
    在这里插入图片描述
  2. 停止 Tomcat 运行实例:在这里插入图片描述
  3. 重启 Tomcat 运行实例:
    在这里插入图片描述

6、修改工程访问路径

在这里插入图片描述

7、修改运行的端口号

在这里插入图片描述

8、修改运行使用的浏览器

在这里插入图片描述
h)配置资源热部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7927.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红队打靶:Nullbyte打靶思路详解(vulnhub)

目录 写在开头 第一步&#xff1a;主机发现与端口扫描 第二步&#xff1a;Web渗透 第三步&#xff1a;hydra密码爆破 第四步&#xff1a;SQL注入大赏 方法一&#xff1a;手工SQL注入之联合查询 方法二&#xff1a;SQL注入写入一句话木马 方法三&#xff1a;SQL注入写入…

C语言学习笔记 VScode设置C环境-06

目录 一、下载vscode软件 二、安装minGW软件 三、VS Code安装C/C插件 3.1 搜索并安装C/C插件 3.2 配置C/C环境 总结 一、下载vscode软件 在官网上下载最新的版本 Download Visual Studio Code - Mac, Linux, Windowshttps://code.visualstudio.com/download 二、安装minGW…

测试覆盖率 JVM 字节码测试运用 - 远程调试、测试覆盖、影子数据库

目录 前言&#xff1a; 简介 基础使用方式介绍 工具特性 前言&#xff1a; 在软件开发中&#xff0c;测试覆盖率是一个非常重要的指标&#xff0c;它表示代码中所有的测试用例是否都已经被覆盖到。JVM 字节码测试是一种比较新的测试方法&#xff0c;它可以对 JVM 字节码进…

托管和非托管 Kubernetes 管理平台详解(第一部分)

托管和非托管 Kubernetes 管理平台分别有哪些优势和不足&#xff1f;我们将通过两篇文章进行详细介绍&#xff0c;帮助您选择更适合自身需求的平台。 首先&#xff0c;让我们了解一下托管的 Kubernetes 管理平台&#xff08;KMP&#xff09;。 托管的 KMP 托管 Kubernetes 管…

FFMPEG源码之ffmpeg.c解析

重要函数解析 main()ffmpeg_parse_options()transcode() main() int main(int argc, char **argv) {int ret;BenchmarkTimeStamps ti;/* 初始化动态加载 */init_dynload();/* 注册退出回调函数 */register_exit(ffmpeg_cleanup);/* 设置stderr的缓冲模式&#xff08;win32运行…

【运动规划算法项目实战】TABV代码解析(五):plan_manage

文章目录 前言一、FastPlannerManager.h1.1 成员变量:二、KinoReplanFSM.h2.1 成员变量2.2 方法三、plan_container.hpp3.1 成员变量:3.2 实现方法:四、backward.hpp五、fast_planner_node.cpp六、kino_replan_fsm.cpp七、planner_manager.cpp八、traj_server.cpp九、总结前言…

nlp系列(6)文本实体识别(Bi-LSTM+CRF)pytorch

模型介绍 LSTM&#xff1a;长短期记忆网络&#xff08;Long-short-term-memory&#xff09;,能够记住长句子的前后信息&#xff0c;解决了RNN的问题&#xff08;时间间隔较大时&#xff0c;网络对前面的信息会遗忘&#xff0c;从而出现梯度消失问题&#xff0c;会形成长期依赖…

Elasticsearch 一段时间后出现 SocketTimeoutException的问题

java springboot 使用ES客户端连接 一段时间闲置后&#xff0c;首次调用es命令会报SocketTimeOutException问题&#xff0c;再次调用不会报错 问题出现原因&#xff1a; Elasticsearch 客户端会根据服务器返回的HTTP报文内容&#xff0c;来决定客户端保持HTTP连接Keep-Alive…

开源项目注意事项

fork项目后&#xff0c;记得另外开启一个分支然后在新分支上进行开发&#xff0c;push到仓库后从分支往原项目提交。 否则会出现Partially verified&#xff08;导致提交pr后auto-merge失败&#xff09; 注意git提交操作 https://blog.csdn.net/sonichenn/article/details/13…

flask中的werkzeug介绍

flask中的werkzeug Werkzeug是一个Python库&#xff0c;用于开发Web应用程序。它是一个WSGI&#xff08;Web Server Gateway Interface&#xff09;工具包&#xff0c;提供了一系列实用功能来帮助开发者处理HTTP请求、响应、URLs等等。Werkzeug的设计非常灵活&#xff0c;可以…

请问学JavaScript 前要学html 和css 吗?

前言 html和css可以理解为是一个网站的骨架和皮肤&#xff0c;这两部分做好后整个网站的外观展示的完成度基本就有了个90%左右&#xff0c;所以在学习js前是需要学习html和css 的&#xff0c;这两部分不用花特别多的时间&#xff08;虽然css如果想做一些非常炫酷的效果个人认为…

vue中重新获取数据导致页面加长,要求在页面更新之后浏览器滚动条滚动到之前浏览记录的位置。以及获取当前页面中是哪个元素产生滚动条的方法。

目前的页面样式为&#xff1a; 代码是&#xff1a; <section id"detailSection"><el-tableref"multipleTable":data"logDetailList"style"width: 650px;margin:20px auto;"id"dialogDetail":show-header"fals…

App测试流程及测试点

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间&#xff0c;一般测试时间为两三周&#xff08;即15个工作日&#xff09;&#xff0c;根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源…

启动es容器错误

说明&#xff1a;启动es容器&#xff0c;刚启动就停止&#xff0c;查看日志&#xff0c;出现以下错误信息&#xff08;java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 8.8.2 but version 7.12.1 is running&#xff09; 解决&…

【2023】HashMap详细源码分析解读

前言 在弄清楚HashMap之前先介绍一下使用到的数据结构&#xff0c;在jdk1.8之后HashMap中为了优化效率加入了红黑树这种数据结构。 树 在计算机科学中&#xff0c;树&#xff08;英语&#xff1a;tree&#xff09;是一种抽象数据类型&#xff08;ADT&#xff09;或是实作这种…

【洛谷】P4414 [COCI2006-2007#2] ABC

[COCI2006-2007#2] ABC 题面翻译 【题目描述】 三个整数分别为 A , B , C A,B,C A,B,C。这三个数字不会按照这样的顺序给你&#xff0c;但它们始终满足条件&#xff1a; A < B < C A < B < C A<B<C。为了看起来更加简洁明了&#xff0c;我们希望你可以按…

MySQL学习笔记 ------ 分组查询

#进阶5&#xff1a;分组查询 /* 语法&#xff1a; select 分组函数&#xff0c;列&#xff08;要求出现在group by的后面&#xff09; from 表 【where 筛选条件】 group by 分组的列表 【order by 排序的字段】; 注意&#xff1a;查询列表必须特殊&#xff0c;要求是分组函…

ChatGPT在智能电子设备中的应用如何?

ChatGPT在智能电子设备中有着广泛的应用潜力&#xff0c;可以为电子设备提供更智能、更个性化的用户体验&#xff0c;并为用户提供更多便利和高效的功能和服务。智能电子设备是指通过集成计算机、传感器、网络和人工智能等技术&#xff0c;实现智能化的功能和交互的设备。ChatG…

【C#】Lock关键字

一、概述 Lock关键字&#xff0c;确保当一个线程位于代码的临界区时&#xff0c;另一个线程不进入临界区。如果其他线程试图进入锁定的代码&#xff0c;则它将一直等待&#xff08;即被阻止&#xff09;&#xff0c;直到该对象被释放。 Lock关键字属于语法糖&#xff0c;其本…

数据结构【栈和队列】

第三章 栈与队列 一、栈 1.定义&#xff1a;只允许一端进行插入和删除的线性表&#xff0c;结构与手枪的弹夹差不多&#xff0c;可以作为实现递归函数&#xff08;调用和返回都是后进先出&#xff09;调用的一种数据结构&#xff1b; 栈顶&#xff1a;允许插入删除的那端&…