Tomcat的基本使用

news2024/11/26 22:39:59

1, Tomcat

1.1 简介

1.1.1 什么是Web服务器

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。

1627058356051

Web服务器是安装在服务器端的一款软件,将来我们把自己写的Web项目部署到Web Tomcat服务器软件中,当Web服务器软件启动后,部署在Web服务器软件中的页面就可以直接通过浏览器来访问了。

Web服务器软件使用步骤

  • 准备静态资源
  • 下载安装Web服务器软件
  • 将静态资源部署到Web服务器上
  • 启动Web服务器使用浏览器访问对应的资源

上述内容在演示的时候,使用的是Apache下的Tomcat软件,至于Tomcat软件如何使用,后面会详细的讲到。而对于Web服务器来说,实现的方案有很多,Tomcat只是其中的一种,而除了Tomcat以外,还有很多优秀的Web服务器,比如:

1627060368806

Tomcat就是一款软件,我们主要是以学习如何去使用为主。具体我们会从以下这些方向去学习:

  1. 简介: 初步认识下Tomcat

  2. 基本使用: 安装、卸载、启动、关闭、配置和项目部署,这些都是对Tomcat的基本操作

  3. IDEA中如何创建Maven Web项目

  4. IDEA中如何使用Tomcat,后面这两个都是我们以后开发经常会用到的方式

首选我们来认识下Tomcat。

Tomcat

Tomcat的相关概念:

  • Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。

  • 概念中提到了JavaEE规范,那什么又是JavaEE规范呢?

    JavaEE: Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF。

  • 因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖Tomcat才能运行。

  • Tomcat的官网: https://tomcat.apache.org/ 从官网上可以下载对应的版本进行使用。

Tomcat的LOGO

1627176045795

  1. Web服务器的作用

封装HTTP协议操作,简化开发

可以将Web项目部署到服务器中,对外提供网上浏览服务

  1. Tomcat是一个轻量级的Web服务器,支持Servlet/JSP少量JavaEE规范,也称为Web容器,Servlet容器。

1.2 基本使用

Tomcat总共分两部分,Tomcat的基本使用,包括Tomcat的下载、安装、卸载、启动和关闭

1.2.1 下载

直接从官网下载

1627178001030

1.2.2 安装

Tomcat是绿色版,直接解压即可

  • 在D盘的software目录下,将apache-tomcat-8.5.68-windows-x64.zip进行解压缩,会得到一个apache-tomcat-8.5.68的目录,Tomcat就已经安装成功。

    注意,Tomcat在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败。

  • 打开apache-tomcat-8.5.68目录就能看到如下目录结构,每个目录中包含的内容需要认识下,

    1627178815892

    bin:目录下有两类文件,一种是以.bat结尾的,是Windows系统的可执行文件,一种是以.sh结尾的,是Linux系统的可执行文件。

    webapps:就是以后项目部署的目录

    到此,Tomcat的安装就已经完成。

1.2.3 卸载

卸载比较简单,可以直接删除目录即可

1.2.4 启动

双击: bin\startup.bat

1627179006011

启动后,通过浏览器访问 http://localhost:8080能看到Apache Tomcat的内容就说明Tomcat已经启动成功。

1627199957728

注意: 启动的过程中,控制台有中文乱码,需要修改conf/logging.prooperties
1627199827589

1.2.5 关闭

关闭有三种方式

  • 直接x掉运行窗口:强制关闭[不建议]
  • bin\shutdown.bat:正常关闭
  • ctrl+c: 正常关闭

1.2.6 配置

修改端口

  • Tomcat默认的端口是8080,要想修改Tomcat启动的端口号,需要修改 conf/server.xml

1627200509883

注: HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。

启动时可能出现的错误

  • Tomcat的端口号取值范围是0-65535之间任意未被占用的端口,如果设置的端口号被占用,启动的时候就会包如下的错误

    1627200780590

  • Tomcat启动的时候,启动窗口一闪而过: 需要检查JAVA_HOME环境变量是否正确配置

1627201248802

1.2.7 部署

  • Tomcat部署项目: 将项目放置到webapps目录下,即部署完成。

    • hello 目录拷贝到Tomcat的webapps目录下

    • 通过浏览器访问http://localhost/hello/a.html,能看到下面的内容就说明项目已经部署成功。

      1627201572748

      但是呢随着项目的增大,项目中的资源也会越来越多,项目在拷贝的过程中也会越来越费时间,该如何解决呢?

  • 一般JavaWeb项目会被打包称war包,然后将war包放到Webapps目录下,Tomcat会自动解压缩war文件

    • haha.war目录拷贝到Tomcat的webapps目录下

    • Tomcat检测到war包后会自动完成解压缩,在webapps目录下就会多一个haha目录

    • 通过浏览器访问http://localhost/haha/a.html,能看到下面的内容就说明项目已经部署成功。

      1627201868752

至此,Tomcat的部署就已经完成了,至于如何获得项目对应的war包,后期我们会借助于IDEA工具来生成。

1.3 Maven创建Web项目

介绍完Tomcat的基本使用后,我们来学习在IDEA中如何创建Maven Web项目,学习这种方式的原因是以后Tomcat中运行的绝大多数都是Web项目,而使用Maven工具能更加简单快捷的把Web项目给创建出来,所以Maven的Web项目具体如何来构建呢?

在真正创建Maven Web项目之前,我们先要知道Web项目长什么样子,具体的结构是什么?

1.3.1 Web项目结构

Web项目的结构分为:开发中的项目和开发完可以部署的Web项目,这两种项目的结构是不一样的,我们一个个来介绍下:

  • Maven Web项目结构: 开发中的项目

    1627202865978

  • 开发完成部署的Web项目

    1627202903750

    • 开发项目通过执行Maven打包命令package,可以获取到部署的Web项目目录
    • 编译后的Java字节码文件和resources的资源文件,会被放到WEB-INF下的classes目录下
    • pom.xml中依赖坐标对应的jar包,会被放入WEB-INF下的lib目录下

1.3.2 创建Maven Web项目

介绍完Maven Web的项目结构后,接下来使用Maven来创建Web项目,创建方式有两种:使用骨架和不使用骨架

使用骨架

具体的步骤包含:

1.创建Maven项目

2.选择使用Web项目骨架

3.输入Maven项目坐标创建项目

4.确认Maven相关的配置信息后,完成项目创建

5.删除pom.xml中多余内容

6.补齐Maven Web项目缺失的目录结构

  1. 创建Maven项目

    1627227574092

  2. 选择使用Web项目骨架

    1627227650406

  3. 输入Maven项目坐标创建项目

    1627228065007

  4. 确认Maven相关的配置信息后,完成项目创建

    1627228413280

  5. 删除pom.xml中多余内容,只留下面的这些内容,注意打包方式 jar和war的区别

    1627228584625

  6. 补齐Maven Web项目缺失的目录结构,默认没有java和resources目录,需要手动完成创建补齐,最终的目录结果如下

不使用骨架

具体的步骤包含:

1.创建Maven项目

2.选择不使用Web项目骨架

3.输入Maven项目坐标创建项目

4.在pom.xml设置打包方式为war

5.补齐Maven Web项目缺失webapp的目录结构

6.补齐Maven Web项目缺失WEB-INF/web.xml的目录结构

  1. 创建Maven项目

    1627229111549

  2. 选择不使用Web项目骨架

    1627229137316

  3. 输入Maven项目坐标创建项目

    1627229371251

  4. 在pom.xml设置打包方式为war,默认是不写代表打包方式为jar

    1627229428161

  5. 补齐Maven Web项目缺失webapp的目录结构

    1627229584134

  6. 补齐Maven Web项目缺失WEB-INF/web.xml的目录结构

    1627229676800

  7. 补充完后,最终的项目结构如下:

    1627229478030

上述两种方式,创建的web项目,都不是很全,需要手动补充内容,至于最终采用哪种方式来创建Maven Web项目,都是可以的,根据各自的喜好来选择使用即可。

小结

1.掌握Maven Web项目的目录结构

2.掌握使用骨架的方式创建Maven Web项目

1627204022604

3.掌握不使用骨架的方式创建Maven Web项目

1627204076090

1.4 IDEA使用Tomcat

  • Maven Web项目创建成功后,通过Maven的package命令可以将项目打包成war包,将war文件拷贝到Tomcat的webapps目录下,启动Tomcat就可以将项目部署成功,然后通过浏览器进行访问即可。
  • 然而我们在开发的过程中,项目中的内容会经常发生变化,如果按照上面这种方式来部署测试,是非常不方便的
  • 如何在IDEA中能快速使用Tomcat呢?

在IDEA中集成使用Tomcat有两种方式,分别是集成本地TomcatTomcat Maven插件

1.4.1 集成本地Tomcat

目标: 将刚才本地安装好的Tomcat8集成到IDEA中,完成项目部署,具体的实现步骤

  1. 打开添加本地Tomcat的面板

    1627229992900

  2. 指定本地Tomcat的具体路径

    1627230313062

  3. 修改Tomcat的名称,此步骤可以不改,只是让名字看起来更有意义,HTTP port中的端口也可以进行修改,比如把8080改成80

    1627230366658

  4. 将开发项目部署项目到Tomcat中

    1627230913259

    扩展内容: xxx.war和 xxx.war exploded这两种部署项目模式的区别?

    • war模式是将WEB工程打成war包,把war包发布到Tomcat服务器上

    • war exploded模式是将WEB工程以当前文件夹的位置关系发布到Tomcat服务器上

    • war模式部署成功后,Tomcat的webapps目录下会有部署的项目内容

    • war exploded模式部署成功后,Tomcat的webapps目录下没有,而使用的是项目的target目录下的内容进行部署

    • 建议大家都选war模式进行部署,更符合项目部署的实际情况

  5. 部署成功后,就可以启动项目,为了能更好的看到启动的效果,可以在webapp目录下添加a.html页面

    1627233265351

  6. 启动成功后,可以通过浏览器进行访问测试

    1627232743706

  7. 最终的注意事项

    1627232916624

至此,IDEA中集成本地Tomcat进行项目部署的内容我们就介绍完了,整体步骤如下,大家需要按照流程进行部署操作练习。

1627205657117

1.4.2 Tomcat Maven插件

在IDEA中使用本地Tomcat进行项目部署,相对来说步骤比较繁琐,所以我们需要一种更简便的方式来替换它,那就是直接使用Maven中的Tomcat插件来部署项目,具体的实现步骤,只需要两步,分别是:

  1. 在pom.xml中添加Tomcat插件

    <build>
        <plugins>
        	<!--Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </build>
    
  2. 使用Maven Helper插件快速启动项目,选中项目,右键–>Run Maven --> tomcat7:run

1627233963315

注意:

  • 如果选中项目并右键点击后,看不到Run Maven和Debug Maven,这个时候就需要在IDEA中下载Maven Helper插件,具体的操作方式为: File --> Settings --> Plugins --> Maven Helper —> Install,安装完后按照提示重启IDEA,就可以看到了。

1627234184076

  • Maven Tomcat插件目前只有Tomcat7版本,没有更高的版本可以使用
  • 使用Maven Tomcat插件,要想修改Tomcat的端口和访问路径,可以直接修改pom.xml
<build>
    <plugins>
    	<!--Tomcat插件 -->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
            	<port>80</port><!--访问端口号 -->
                <!--项目访问路径
					未配置访问路径: http://localhost:80/tomcat-demo2/a.html
					配置/后访问路径: http://localhost:80/a.html
					如果配置成 /hello,访问路径会变成什么?
						答案: http://localhost:80/hello/a.html
				-->
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>
</build>

小结

通过这一节的学习,大家要掌握在IDEA中使用Tomcat的两种方式,集成本地Tomcat和使用Maven的Tomcat插件。后者更简单,推荐大家使用,但是如果对于Tomcat的版本有比较高的要求,要在Tomcat7以上,这个时候就只能用前者了。

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

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

相关文章

C语言rewind()函数:将文件指针重新指向文件开头

rewind()函数用于将文件指针重新指向文件的开头&#xff0c;同时清除和文件流相关的错误和eof标记&#xff0c;相当于调用fseek(stream, 0, SEEK_SET)&#xff0c;其原型如下&#xff1a; void rewind(FILE * stream); 【参数】stream为已打开文件的指针。 注意&#xff1a;准…

深入理解Pytorch中的分布式训练

作者&#xff1a;台运鹏 (正在寻找internship...)主页&#xff1a;https://yunpengtai.top鉴于网上此类教程有不少模糊不清&#xff0c;对原理不得其法&#xff0c;代码也难跑通&#xff0c;故而花了几天细究了一下相关原理和实现&#xff0c;欢迎批评指正&#xff01;关于此部…

【Python • 字符串】巧用python字符串切片

文章目录前言字符串切片常用用法理解一个字符串逆向下标的字符串字符串切片截取下标a到b的字符串取下标a以后的所有字符串取下标a以前的所有字符串间隔n个字符取字符串字符串逆序输出从下标a的字符开始逆序取字符串逆序输出从b到a的字符串逆序间隔一个字符串输出总结前言 在py…

站酷基于服务网格ASM的生产实践

作者&#xff1a;服务网格ASM 背景介绍 站酷&#xff08;ZCOOL&#xff09;2006 年 8 月创立于北京&#xff0c;深耕设计领域多年&#xff0c;聚集了 1500 万设计师、摄影师、插画师、艺术家、创意人&#xff0c;在设计创意群体中具有一定的影响力与号召力。站酷在创立之初&am…

企业数字化转型“核心方法论”

一、什么是数字化转型&#xff1f;数字化转型是近年来&#xff0c;很多企业老生常谈的话题。那么听了这么多数字化转型的故事&#xff0c;你对其真正了解多少呢&#xff1f;下面织信就数字化转型的背景、以及多个示例的讲解&#xff0c;带你深入理解“数字化转型”这一概念。&a…

构建自组织团队,让敏捷管理更好地落地

敏捷开发是以用户的需求为核心&#xff0c;通过不断迭代、小步快跑、循序渐进的方法进行软件产品的研发&#xff0c;在迭代研发过程中的产品都需要经过测试&#xff0c;具备可视化、可集成和可运行使用的特征。 在团队方面&#xff0c;敏捷开发倡导团队协作&#xff0c;强调个…

React(coderwhy)- 05(redux)

Redux的核心思想 理解JavaScript纯函数 ◼ 函数式编程中有一个非常重要的概念叫纯函数&#xff0c;JavaScript符合函数式编程的范式&#xff0c;所以也有纯函数的概念&#xff1b;  在react开发中纯函数是被多次提及的&#xff1b;  比如react中组件就被要求像是一个纯函数…

数据库迁移到达梦的一些记录

1 达梦迁移工具 参考MySQL迁移到达梦-超出定义长度问题 使用你设置的配置&#xff0c;即可&#xff0c;因为达梦默认采用按照字节存储&#xff0c;mysql是按照字符存储&#xff0c;故而他认为越界了。 使用3.5G数据&#xff0c;342张表进行数据迁移验证 第一此执行,结果 任务…

linux安装mysql以及允许外网访问mysql

下载社区版本 下载最新版 下载历史版本 点击 Archives 文件上传云服务器 /opt/mysql 存放目录随便 添加用户组 groupadd mysql useradd -r -g mysql mysql删除mariadb rpm -qa|grep mariadbrpm -e --nodeps mariadb-libs安装 解压tar -xvf mysql-5.7.20-1.el7.x86_64…

中国企业邮箱安全性研究报告

声明 本文是学习中国企业邮箱安全性研究报告. 下载地址 http://github5.com/view/55003而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 奇安信网神邮件威胁检测系统 奇安信网神邮件威胁检测系统是奇安信集团面向政府、企业、金融、军队等大型企事业单…

javaEE初阶 — 阻塞队列

文章目录阻塞队列1. 概念与特性2. 生产者与消费者模型2.1 生产者消费者模型的两个好处&#xff08;主要的&#xff09;3. 标准库中的阻塞队列3.1 代码实现生产者消费者模型4. 阻塞队列实现4.1 普通队列实现4.2 给队列追加阻塞功能阻塞队列 1. 概念与特性 阻塞队列 是一种特殊的…

Centos 安装Datax及Datax-web

异构数据的采集&#xff0c;方案还是比较多样&#xff0c;除了基于大数据平台的一些集成&#xff1b;简单的数据源&#xff0c;可以直接使用阿里开源的datax来实现&#xff1b;datax-web则是datax界面化操作的开源框架&#xff0c;集成了datax异构数据采集和任务调度的功能。关…

【Kubernetes | Pod 系列】 Pod 的生命周期 Ⅱ —— 容器重启策略

目录题5.4 容器重启策略示例&#xff08;1&#xff09;Always 策略&#xff08;2&#xff09;OnFailure 策略&#xff08;3&#xff09;Never 策略5.4 容器重启策略 在 Pod 的 YAML 清单的 spec 中包含一个 restartPolicy 字段&#xff0c;其可能取值包括 Always&#xff08;…

Jdbc配置文件连接mysql8.0——批量增删改查操作

目录 一、批量插入数据 (一)在DogDao中新增一个功能saveDogList (二)DogDaoImpl实现类中定义字符串拼接实现功能saveDogList (三)DogTest测试 (四)批量插入运行结果 (五)优化后的批量插入 1.DogDao接口中还是使用原来的新增功能saveDog 2. DogDaoImpl实现类中实现saveD…

DOS、DDos攻击详解

目录 一、DDOS 是什么&#xff1f; 二、DDoS的危害 三、常见的DOS攻击 四.DDoS的防范 一、DDOS 是什么&#xff1f; DoS为Denial of Service的简称&#xff0c;意思是拒绝服务。DoS攻击是一种使被攻击者无法正常提供服务的攻击 来解释一下&#xff0c;DDOS 是什么。 举例…

esxi6.0安装

一、安装exsi需要注意的事项&#xff1a; 1.进入BIOS做raid 不同硬件厂商进入bios的方式各不相同&#xff0c;请自行查阅相关资料 RAID 0的特点&#xff1a; 最少需要两块磁盘 数据条带式分布 没有冗余&#xff0c;性能最佳(不存储镜像、校验信息) 不能应用于对数据安全性要求…

代码随想录回溯总结

文章目录0、 前言1、回溯的定义2、回溯解决那些问题3、回溯模板4、问题详解4、1组合问题&#xff1a;[4.1.1 组合](https://leetcode.cn/problems/combinations/)[4.1.2 组合总和 II](https://leetcode.cn/problems/combination-sum-ii/)4.1.3 组合的其他问题4.2排列问题4.2.1[…

3.Isaac入门

Isaac入门 本节提供有关如何开始开发和运行 Isaac 应用程序的指南。 文章目录Isaac入门教程和示例应用程序运行应用程序应用程序控制台选项在 Jetson 上部署和运行Python 应用程序支持使用分布式工作区使用 Docker安装依赖创建 Isaac SDK 开发镜像教程和示例应用程序 有一个可…

【运维有小邓】实时告警通知

当网络上发生特定事件时&#xff0c;EventLog Analyzer可以通过多种方式进行响应。EventLog Analyzer可以实时生成告警 - 发送电子邮件或短信通知给指定的接收者 - 或运行由管理员提供的自定义脚本。通过所提供的多个选项&#xff0c;用户可以确保不会错过任何安全事件。EventL…

Python解题 - CSDN周赛第21期 - 接雨水

本期比赛都是比较基础的排序、查找&#xff0c;没有多少难度。不过有很多人反映第二题测试数据有问题&#xff0c;基本所有选手在本题上都没得分。最近官方每期比赛都会有类似的数据问题&#xff0c;虽然参赛者对数据有疑问&#xff0c;但从未得到解答&#xff0c;官方也未曾公…