Tomcat使用教程(超详细)

news2025/2/28 6:39:58

文章目录

  • Tomcat学习笔记
    • 1、Tomcat概述
    • 2、Tomcat的基本使用
      • 2.1 基本操作
        • 2.1.1 安装
        • 2.1.2 卸载
        • 2.1.3 配置
        • 2.1.4 启动
        • 2.1.5 部署
        • 2.1.6 关闭
    • 3、IDEA中使用Maven创建Web项目
      • 3.0 Web项目目录结构介绍
      • 3.1 使用骨架创建Web项目
      • 3.2 直接创建web项目
    • 4、Web项目部署
      • 4.1 集成本地的Tomcat
      • 4.2 Tomcat Maven插件的使用

Tomcat学习笔记

本文主要是针对IDEA集成Tomcat,手把手教你如何将你在IDEA中写的的JavaWeb项目部署到Tomcat上
学习建议:建议先学完Maven,因为学完Maven后再来使用Tomcat会更加方便导入JavaWeb所需依赖
推荐阅读:一文带你快速上手项目开发神器Maven

1、Tomcat概述

  • 什么是Tomcat

    Tomcat是一个开源、免费、轻量级的Web服务器

      Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。

    Tomcat官网:✈️传送门

    Tomcat的Log:

    image-20220801110857609

  • 什么是Web服务器

    Web服务器是安装在服务端的一款软件,它对HTTP协议的操作进行了封装使得程序员不必直接对协议进行相关操作,让Web开发变得更加便捷。Web服务器的主要功能就是提供网上信息浏览服务,当我们将自己写的Web项目部署道Web服务器上,只要启动Web服务器,就能直接通过浏览器访问我们的Web项目了。

    目前比较有名的Web服务器有:Apache、Nginx、ISS。

拓展

  • Tomcat和Apache的联系:Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的

  • Tomcat仅支持JDBC、JSP、Servlet等少量JavaEE规范1

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

  • Web服务器服务端服务器的区别和联系

    • 服务器是一种特殊的计算机,它比普通计算机运行更快、负载更高、价格更贵,属于硬件范畴;
    • 服务端是是指为客户端提供服务的计算机,服务的内容诸如:提供数据的保存、数据的访问……属于硬件范畴;
    • Web服务器是指安装再服务端的一款软件,主要功能是提供网上信息浏览服务,但是只能响应HTTP的请求数据,属于软件范畴。
  • 能让你写的网站被所有人访问的三要素:服务器+域名+网站

2、Tomcat的基本使用

2.1 基本操作

2.1.1 安装

下载 → 解压 下载\rightarrow{解压} 下载解压

直接去官网下载,官网地址:✈️传送门,或者直接下载

image-20220801143643444

企业最常用的是Tomcat8,点击直接下载:

image-20220801144340923

Tomcat是绿色软件,直接解压就能使用!

image-20220801144628321

注意:Tomcat在解压缩的时候,解压所在的目录可以任意,但最好解压到一个不包含中文和空格的目录,因为后期在部署项目的时候,如果路径有中文或者空格可能会导致程序部署失败!(解压后最后将Tomcat文件夹重命名一下,使用原始名字配置环境变量容易出问题)

2.1.2 卸载

直接删除Tomcat文件夹即可,如果配置了环境变量,还要将环境变量进行删除

2.1.3 配置

安装后需要配置环境变量,过程和Java的环境变量配置如出一辙,这里就不细说了<(^-^)>
如图所示:
在这里插入图片描述
在这里插入图片描述
备注:Tomcat8.x及其以上的版本需要配置环境,以下的版本不需要

  • 修改默认端口号

    进入Tomcat目录下,conf文件夹中的server.xml文件

    image-20220802110424307

    image-20220802110513929

小知识:

  • 端口号的范围是:0~65535

  • HTTP协议默认的端口号是80,如果将Tomcat的端口号改为80后,使用浏览器访问Tomcat就只需要输入localhost了

端口号被占,报错:

image-20220802124358477

2.1.4 启动

期间遇到的bug总结:👉Tomcat无法成功启动的解决方案

该文包含遇到的两个问题:

  1. 双击startup无法启动Tomcat
  2. 通过浏览器无法成功访问Tomcat
  • Step1:双击bin目录下的startup.bat,弹出如下窗口,表示Tomcat启动成功

    image-20220802102026067

  • Step2:设置编码。因为在中国的Windows系统默认编码都是GBK,而Tomcat默认编码是UTF-8,导致乱码

    image-20220802102644931

    image-20220802102818442

    修改后,就没有出现乱码了:

    image-20220802102959122

    小知识:

    • GBK编码中文占两个字节,UTF-8编码中文占3个字节

    • 如果是在Maven中使用Tomcat,并且安装了Tomcat7和Maven Helper两个插件,就可以使用mvn tomcat7:run命令启动Tomcat

    参考文章:JavaSE

  • Step3:检验启动后能否被访问

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

    在这里插入图片描述

2.1.5 部署

直接将你的Web项目复制到webapps目录下,就部署完成了

image-20220802135154111

然后启动Tomcat即可直接使用浏览器进行访问了(但是只能在你本机所在的局域网上进行访问,想要其他人都能访问需要获取域名,这个以后再详细学习<(^-^)>

image-20220802135616806

2.1.6 关闭

  • 方法一:强制关闭

    直接叉掉运行窗口,缺点:数据容易丢失

  • 方法二:运行shutdown.bat文件,正常关闭不会造成数据丢失,缺点:比较麻烦

  • 方法三Crtl+C,正常关闭不会造成数据丢失,推荐使用

3、IDEA中使用Maven创建Web项目

前期回顾:👉一文教你快速上手Maven

3.0 Web项目目录结构介绍

  • 原始项目目录

image-20220802162424308

  • 打包后的目录结构

image-20220802162502209

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

3.1 使用骨架创建Web项目

创建Maven项目
选中骨架
补全java和resources目录
删除多余的依赖

F i l e → n e w → M o u d l e . . . → M a v e n File\rightarrow{new}\rightarrow{Moudle...}\rightarrow{Maven} FilenewMoudle...Maven

image-20220802141113209image-20220802141509106

然后就可以无脑下一步了😆

第一时间没有出现src文件夹,不要慌,因为第一次创建要加载很久……

创建成功后(Java和resources目录需要手动创建):

image-20220802153928841

使用骨架创建Web项目会自动添加很多依赖, 建议删除多余的依赖,只留下这些就够了

image-20220802161629908

3.2 直接创建web项目

创建Maven项目
补全wepapp目录
设置默认打包方式

F i l e → n e w → M o u d l e . . . → M a v e n File\rightarrow{new}\rightarrow{Moudle...}\rightarrow{Maven} FilenewMoudle...Maven

image-20220802160528991

创建成功后:

image-20220802160624031

会发现少了一个Web目录,自动补齐Web项目必须的文件夹,同时需要在pom.xml文件中手动修改Web项目的默认打包方式

f i l e → P r o j e c t     S t r u c t r u e → F a c e t s file\rightarrow{Project~~~Structrue}\rightarrow{Facets} fileProject   StructrueFacets

image-20220802160336323

image-20220802161000379

添加成功后:

image-20220802171725790

4、Web项目部署

最原始的方法:在2.1.5介绍了,就是直接将Web项目拷贝到Tomcat的webapps目录下。显然这种方法有很大的弊端,当项目很大时,会耗费很长的时间进行拷贝,同时不利于项目的测试。

改进的方法:通过Maven的package命令可以将项目打包成war包,将打包好的war包拷贝到Tomcat的webapps目录下。这种方法有效的降低了拷贝所需的时间,但是仍然不利于项目的测试(一些大型的Web项目都是边写边测试的)。

所以这就迫使我们寻早一种更好的方式将我们的Web项目部署到Tomcat上,至此有两种有效的方式能同时避免上述的两种问题分别是:集成本地Tomcat使用Tomcat Maven插件

4.1 集成本地的Tomcat

集成Tomcat
确定打包项目同
时确定打包方式
测试
  • Step1:集成Tomcat

    image-20220802164840484

    没有这个的可以直接双击Shift搜索,我的是老版IDEA,新版的是点击Add Configurationsimage-20220802165230597image-20220802165406293

  • Step2:确定要打包的项目,同时确定该项目的打包方式image-20220802173729414

  • Step3:测试集成Tomcat后的功能

    image-20220802172445811


    点击运行,直接将文件打包成war包,然后部署到Tomcat的wepapps目录下

    image-20220802172437777


    image-20220802172608913


    浏览器默认打开的地址,是可以进行修改的(修改位置在Step2)

    image-20220802173030202

4.2 Tomcat Maven插件的使用

使用插件相对前一种方法更加简便<(^-^)>

注意虽然插件很好用,但是该插件只支持Tomcat7及其以下版本,使用更高版本就会不成功,所以更加建议使用第一种方式在IDEA中集成Tomcat

  • Step1:在pom.xml添加Tomcat Maven插件

    <build>
        <plugins>
        	<!--Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version><!--我是使用2.1版本的-->
            </plugin>
        </plugins>
    </build>
    

    小插曲:

    我的插件使用2.2直接爆红:

    image-20220802211601547

    害的我找了好久的原因,我发现我都是一步一步来的,也没出错啊,各种重启、改配置文件、上网搜,都没有解决😭,结果还是无意中在一篇博客下面的评论下看到,说可能是Maven版本过低导致的,然后要重新修改Maven有点麻烦,我就干脆直接降低插件的版本😂,终于解决了(最怕遇到bug了,bug就是时间啊😫)

  • Step2:启动Tomcat

    在Maven的配置文件中添加了Tomcat插件后,就可以直接使用Maven Helper插件来运行了。

    前期回顾:一文带你快速上手Maven

    运行项目,同时将项目部署到Tomcat:

    image-20220802212614522

在控制控制台会输出一行超链接,点击跳转就可以进行访问你的Web项目了

image-20220803081341392

image-20220803081438431


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

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

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

相关文章

别找了诸位 【十二款超级好用的谷歌插件都在这】(确定不来看看?)

目录 &#x1f30c;前言&#xff1a; &#x1f307;第一款、油猴插件 &#x1f307;第二款、Adblock Plus - 免费的广告拦截器 &#x1f307;第三款、谷歌清理大师&#xff08;CleanMaster&#xff09; &#x1f307;第四款、google翻译 &#x1f307;第五款、OneTab &a…

vue的双击事件(dbclick的使用)

双击事件(dblclick) vue事件中基于点击事件&#xff0c;有一个双击事件&#xff0c;通过dblclick事件触发。 语言&#xff1a;vue3/Ts 函数库&#xff1a;vueuse 1、需求分析 双击事件触发&#xff1b; 在双击时隐藏对应文字元素&#xff1b; 展示输入框&#xff1b; 输入…

Vue系列之插槽(slot)详解

文章の目录1、什么是插槽了2、插槽的分类3、默认插槽的使用3.1、语法3.2、示例4、具名插槽的使用4.1、什么是具名插槽4.2、语法4.3、示例4.4、缩写5、作用域插槽的使用5.1、什么是作用域插槽了5.2、语法5.3、示例6、动态插槽名6.1、什么是动态插槽名6.2、示例写在最后Vue 版本&…

Node.js | 从前端到全栈的必经之路

&#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;即将大三的学生&#xff0c;一个不甘平庸的平凡人&#x1f36c; &#x1f5a5;️ NodeJS专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ 博主的前端之路&#xff1a;前端之行&#xff0c;任重道远&#xff08;来自大三…

在uni-app中使用手机号一键登录

1、首先需要在dcloud开发者控制台开通一键登录 https://dev.dcloud.net.cn/uniLogin 开通一键登录服务, 获取关键最关键的两个参数 ApiKey 和 ApiSecret 真机调试无需添加应用&#xff0c;如需打包使用请添加。一键登录应用ID为离线打包时配置的appid 2、登录云服务空间&#x…

HTML零基础入门教程(详细)

首先我们先介绍一下网页&#xff1a; 网页时构成网站的基本元素&#xff0c;它通常由图片&#xff0c;链接&#xff0c;文字&#xff0c;声音&#xff0c;视频等元素组成。通常我们看到的网页&#xff0c;常见以.htm或.html后缀结尾的文件&#xff0c;因此我们把它俗称为HTML文…

webpack看这一篇就够了

文章目录今日学习目标1. webpack基本概念webpack能做什么2. webpack的基本使用2.0 创建项目2.1 解决多次引入资源文件2.2 webpack使用2.3_webpack 更新打包3. webpack的配置3.0_webpack-入口和出口3.1_打包流程图3.2_插件-自动生成html文件3.3_mode模式3.3_webpack开发服务器-为…

微信小程序转uniapp的迁移步骤及遇到的问题

目录 前言 一、迁移步骤 第一步:安装miniprogram-to-uniapp 插件 第二步:查看是否安装成功 第三步:使用插件进行转换

vue实现input输入模糊查询(三种方式)

vue实现input输入模糊查询(三种方式) 目录 vue实现input输入模糊查询(三种方式) 1 计算属性实现模糊查询 演示&#xff1a; 2 watch 监听实现模糊查询 3 通过按钮点击实现模糊查询 演示&#xff1a; 1 计算属性实现模糊查询 vue 中通过计算属性实现模糊查询,创建 html …

微信小程序面试题大全(持续更新)

1.请谈谈微信小程序主要目录和文件的作用&#xff1f; project.config.json&#xff1a;项目配置文件&#xff0c;用的最多的就是配置是否开启https校验App.js&#xff1a;设置一些全局的基础数据等App.json&#xff1a;底部tab&#xff0c;标题栏和路由等设置App.wxss&#x…

呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!!

呕心沥血 JavaScript知识点梳理大全&#xff0c;超详细 建议收藏&#xff01;&#xff01;&#xff01; ✴️大家好,我是王同学&#xff0c;爆肝三天三夜王同学把JavaScript 知识点梳理了一遍&#xff0c;文章没有一点套路&#xff0c;只有满满的干货 ✴️如果对你有帮助就给我…

vite.config.js配置-解决跨域问题,以及@vitejs/plugin-vue等报错

开发环境 在配置的过程中踩了很多坑&#xff0c;还是太菜&#xff0c;有些东西弄不明白什么意思。 运行项目时的报错可直接到最下面看vite.config.js文件的注释 目前项目用到的模块并不多&#xff0c;package.json文件如下 {"name": "PsWebV3Abb",&quo…

Vue vue.config.js 的详解与配置

Vue vue.config.js 的详解与配置 1. 为什么要配置 vue.config.js 由于 vue-cli 3 也学习了 rollup 的零配置思路&#xff0c;所以项目初始化后&#xff0c;没有了以前熟悉的 build 目录&#xff0c;也就没有了 webpack.base.config.js、webpack.dev.config.js 、webpack.prod…

HTML中的表格和表单(含有示例代码)

表格表格的基本构成标签 table标签&#xff1a;表格标签 caption标签&#xff1a;表格标题tr标签&#xff1a;表格中的行 th标签:表格的表头 td标签&#xff1a;表格单元格表格的基本结构 <table>定义表格 <caption>表格标题</caption><tr>定义表行 &l…

vue3 + vite 性能优化 ( 从5s -> 0.5s )

Ⅰ、Vue Vite 构建项目性能优化 vite 相比于 webpack 优势显著&#xff1b;然而 社区&#xff0c;却 不够成熟 &#xff0c;参考资料较少&#xff1b;如何让vue vite 构建项目变的 访问秒开 &#xff08;要想足够快&#xff0c;就是让首次加载足够小&#xff09;&#xff0c…

安装nvm,并使用nvm安装nodejs及配置环境变量

一、安装nvm 1.下载nvm 解压后点击exe文件进行安装&#xff1a; 2、点击下一步安装到 D:\NVM 下 3、先在D:\NVM 下创建nodejs文件夹&#xff0c;然后将路径设置如下&#xff1a; 4、点击next 一直点击 完成安装&#xff1b; 5、找到指定nvm打开后&#xff1a; 给该文件添加这…

关于 Token 过期问题的两种解决方案

对于token过期&#xff0c;我们有两种方案&#xff1a; 方案一&#xff1a;当我们操作某个需要token作为请求头的接口时&#xff0c;返回的数据错误error.response.status 401&#xff0c;说明我们的token已经过期了。 我们希望当响应返回的数据是401身份过期时&#xff0c;让…

【学Vue就跟玩一样】如何使用vue中的消息订阅与发布,如何使用vue实现动画效果

一&#xff0c;消息订阅与发布1.什么是消息订阅与发布消息订阅与发布是一种组件间通信的方式&#xff0c;适用于任意组件间通信。能更好的实现组件间通信&#xff08;消息订阅与发布就像是送报员一样。好比小a向报社订阅了一份报纸&#xff0c;然后在报社留下了自己的信息&…

Web 开发与搜索引擎优化,你应该选择哪一个?

&#x1f482; 个人网站:【海拥】【摸鱼游戏】【神级源码资源网站】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】** 目录什么是搜索引…

什么是BFC,他有什么用?

1、什么是BFC BFC - Block Formatting Context 块级格式化上下文 BFC的定义&#xff0c;在官方文档到中是这么介绍的&#xff1a;一个BFC区域包含创建该上下文元素的所有子元素&#xff0c;但是不包括创建了新的BFC的子元素的内部元素&#xff0c;BFC是一块块独立的渲染区域&a…