在【IntelliJ IDEA】中配置【Tomcat】【2023版】【中文】【图文详解】
作为一款功能强大的集成开发环境(IDE),IntelliJ IDEA为Web服务器提供了卓越的支持,从而极大地简化了程序员在Web开发过程中的工作流程。学习Java Web开发实质上就是掌握如何创造动态Web资源,这些资源在完成开发后,必须部署在Web服务器上,才能对外提供服务并接受访问。在众多Web服务器中,Tomcat因其稳定性和易用性而备受青睐。本篇文章将为您详细解析Tomcat服务器的安装与使用方法,帮助您更好地掌握Java Web开发的核心技术。
在此之前,让我先为您简要介绍Tomcat。Tomcat作为Apache组织Jakarta项目中的关键组件,得到了Sun公司(现已被Oracle收购)的官方推荐,作为运行Servlet和JSP的理想容器(引擎)。其源代码的完全公开性,使得开发者能够更深入地理解和定制其功能。Tomcat不仅涵盖了Web服务器的基本功能,还提供了数据库连接池等丰富的通用组件支持。
Tomcat以其出色的稳定性、可靠性和高效性而著称,它能够与目前市场上主流的Web服务器(如Apache、IIS等)无缝协作,同时也可作为独立的Web服务器软件运行。因此,越来越多的软件企业和开发人员选择Tomcat作为他们运行Servlet和JSP的首选平台。
随着版本的持续更新和迭代,Tomcat的功能不断得到完善与增强,从而满足不断变化的开发需求和市场趋势。
一、【Tomcat】 的 【Windows】 配置
大家可以从官方网站(Apache Tomcat® - Welcome!)下载,为了便于Tomcat的启动和加载过程,建议下载ZIP压缩包(本文提供了Tomcat 8.5.16版本的压缩包,以及相关实例包,可以在此处 JavaWeb程序Tomcat及Servlet配置:实例与组件包-zip压缩包资源-CSDN文库 直接进行下载),通过解压的方式安装。注意:运行Tomcat之前需要安装Java JDK。
1.我们将Tomcat压缩文件直接解压在D盘的Tomcat文件夹下,解压后会产生一个apache-tomcat-8.5.16文件夹。打开这个文件夹可以看到Tomcat的目录结构,如图所示。

这一系列子目录各自承担着不同的功能,接下来将对它们进行简要的介绍:
(1)bin:此目录用于存放Tomcat的可执行文件和脚本文件。其中,常见的文件扩展名为.bat,例如tomcat8.exe和startup.bat。这些文件是启动和管理Tomcat服务器所必需的。
(2)conf:此目录存放着Tomcat的各种配置文件,如web.xml和server.xml。这些文件对于配置Tomcat服务器的行为至关重要,包括端口设置、安全策略等。
(3)Lib:此目录用于存放Tomcat服务器和所有Web应用程序所需的JAR文件。JAR文件是Java应用程序的归档文件,包含了Java类、资源和其他依赖项。
(4)logs:Tomcat的日志文件被存放在此目录中。这些日志记录了服务器的运行信息、错误消息和其他重要事件,对于故障排除和系统监控非常有帮助。
(5)temp:此目录用于存放Tomcat运行时产生的临时文件。这些文件通常是短暂存在的,用于支持应用程序的运行。
(6)webapps:这是Web应用程序的主要发布目录。开发者通常将开发完成的Web应用程序部署到这个目录下,使其能够被Tomcat服务器识别并提供给外界访问。
(7)work:Tomcat的工作目录位于此。JSP(Java Server Pages)编译生成的Servlet源文件和字节码文件被放置在这个目录下。这些文件是JSP页面转换为可执行的Servlet时的中间产物。
2.双击图中的startup.bat文件,便会启动Tomcat服务器。此时,可以在弹出的命令行看到一些启动信息。
如果你电脑上弹出的黑窗口出现这样的信息,那么恭喜你——已经初步在Windows环境中已经配置好了tomcat。

3. Tomcat 服务器启动后,在浏览器的地址栏中输入http://localhost:8080或者http://127.0.0.1:8080 (localhost和127.0.0.1都表示本地计算机)访问Tomcat服务器,如果浏览器中的显示界面如图所示,则说明Tomcat服务器彻底安装成功了。

注意:如果您在按这个流程配置的过程中发现弹出的黑窗口一闪而过。先不要着急,一般都是有两个问题所导致的。
(1)电脑中还未配置Java JDK。由于篇幅所限,在这儿就不阐述Java JDK的配置过程了,网络中都有大家自行检索哈。
在这里提供一个检查是否配置好Java JDK的方法:点击Windows键+R键——然后在弹出的窗口中输入cmd——点击确定或者Enter键——在弹出的黑窗口中输入命令行:java -version,如果出现这样的界面说明Java JDK安装没问题。
注意:建议复制粘贴命令行java -version,以防止输入错误,中间有空格。

(2)Tomcat服务器未成功配置。一般来说,出现这样的情况是因为刚开始还没有配置相关的环境变量。
在这里同样提供一个检查配置Tomcat的方法:找到刚刚解压在D盘中的Tomcat,然后在apache-tomcat-8.5中,打开bin文件夹——在这个文件夹中点击鼠标右健,然后点击“在终端中打开”——在弹出的黑窗口中输入命令行:startup.bat。如果出现下面的错误信息,确实是由于未配置成功Tomcat服务器而导致的。

配置环境变量流程:
1)在电脑界面中找到该图标,然后鼠标右键。

2)点击属性。

3)然后点击高级系统设置。
4)点击环境变量。
5)单击系统变量区域的新建按钮。
6)在弹出的对话框中将变量名设置为 JAVA_HOME ,变量值设置为JDK的安装目录。填写完后,点击确定。
注意:变量名“JAVA_HOME”均为大写;变量值必须是你的jdk安装目录


7)双击打开,系统变量中的Path。


8)在这里,你可以新建或者替换原来在Path环境变量中的JDK安装路径,将其修改为%JAVA_HOME%\bin。
注意:需要在JAVA_HOME两侧添加“%”
9)此时,再次重复之前的操作就会成功了。

二、【Tomcat】的【IntelliJ IDEA】配置
此时所有的准备工作已经完善,正式开始在IntelliJ IDEA里面配置Tomcat。
1.打开你的IntelliJ IDEA编译器。

2.在左上角文件中点击新建,点击项目。

3.只需要在新建项目中添加项目即可,无需点击下面的。
名称:自行设置合理的名称;位置:选择你要创建项目的文件夹;其他如图所示,然后点击创建。



4.在2023版本中很显然什么都没有,显得很简陋,因此就需要将大部分内容自行配置。
首先我们进行配置web项目模块,点击项目结构(Project Structure)。

5.点击Facet(Facets),然后点击右侧那个“+”

6.点击出来的Web。

7.弹出窗口后点击确定。

8.点击右下角的应用,然后点击创建工件。

9.点击上面那个 Web exploded,然后点击右下角的应用。

10.找到这里,如果没有出现右侧的web文件夹,可以关闭窗口重新打开。

11.鼠标右键WEB-INF,新建目录classes和lib。


12.点击上面的路径,将编译器输出修改为 使用模块编译输出路径 然后将路径修改为项目web文件夹下的WEB-INF文件夹下的classes地址(之前刚刚创建的classes),该操作的作用是配置所有编译为 .class 的文件都输出到此文件夹下,最后记得点击应用。



13.点击上面的依赖,然后点击中间的“+”,继续点击JAR和目录


14.在弹出的窗口选择项目下web文件夹下WEB-INF文件夹下的lib,然后在弹出的窗口继续选择Jar Directory。


15.选择这个依赖项,然后应用。

16.现在进行Tomcat服务器配置,点击上侧的当前文件,然后点击编辑配置。

17.点击左上角的“+”

18.找到Tomcat服务器,然后点击本地。

19.在这个界面,先要配置Tomcat服务器的路径(打开的浏览器自行按照喜爱配置),然后点击应用。


20.应用后点击修复,在这里点击 Web exploded 然后再次点击应用。

21.在返回主界面后,部分人可能没有 index.jsp 文件,这个文件可以自行配置。

22.鼠标右键web文件夹,然后新建,再点击JSP/JSPX页面,最后复制下面那段代码即可。

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head><title>JSP</title> <!--打开网页的标签名-->
</head>
<body>
$END$ <!--网页内显示的内容-->
</body>
</html>
23.完成后是这样的,注意:这个新建的文件是在web文件夹下的,最后就可以点击启动了。

24.恭喜你,完成了。

希望大家能够从这篇文章中获得启示和收获,同时也感谢各位大佬的支持。如果您在阅读文章时发现任何问题,欢迎在评论区留言,鸿蒙会尽快回复并提供反馈!
相关文章:
在【IntelliJ IDEA】中配置【Tomcat】【2023版】【中文】【图文详解】
作为一款功能强大的集成开发环境(IDE),IntelliJ IDEA为Web服务器提供了卓越的支持,从而极大地简化了程序员在Web开发过程中的工作流程。学习Java Web开发实质上就是掌握如何创造动态Web资源,这些资源在完成开发后&…...
【SSM】任务列表案例 基本CRUD SSM整合
文章目录 一、案例功能预览二、接口分析三、前端工程导入四、后端程序实现和测试4.1 准备4.2 功能实现4.2.1 分页查询显示4.2.2 添加计划4.2.2 删除计划4.2.3 修改计划 4.3 前后联调 一、案例功能预览 Github 地址 : ssm-integration-part 二、接口分析 学习计划…...
基于微信小程序的校园跑腿小程序,附源码
博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
网络学习:9个计算机的“网络层”知识点
目录 一、IP 地址 1.1 分类表示法: 1.1.1 分类表示地址的其他说明 1.2 无分类编址 CIDR 二、IP 数据报文格式 Q: IP 报文里有什么?可以不按顺序或者字节来讲一讲 三、 路由概念 3.1 路由表 3.2 路由网络匹配 3.3 ARP 解析 3.4 RARP 逆地址解析…...
web项目的搭建
使用Webstorm并创建Next.js文件 1、配置nodejs环境、安装webstorm【配置node.js可以使用nvm去管理nodejs的版本】 2、需要破解webstorm,可能会导致原本的idea失效,注册码过期 3、taobao的npm过期,导致npm is sass执行不成功,需…...
C++for语句
1.求平均年龄 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位 输入 第1行有一个整数n(1 <= n <=100),表示学生的人数;其后n行每行有1个整数,表示每个学生的年龄,取值为15~25 输出 一行,包含一个浮点数,为所求的平…...
最新基于R语言lavaan结构方程模型(SEM)技术
原文链接:最新基于R语言lavaan结构方程模型(SEM)技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…...
【网络安全】-数字证书
数字证书 数字证书是互联网通讯中用于标志通讯各方身份信息的一串数字或数据,它为网络应用提供了一种验证通信实体身份的方式。具体来说,数字证书是由权威的证书授权(CA)中心签发的,包含公开密钥拥有者信息以及公开密…...
【C++ 】stack 和 queue
1. 标准库中的stack stack 的介绍: 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作 2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其…...
html--彩虹马
文章目录 htmljscss 效果 html <!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>Rainbow Space Unicorn</title> <link rel"stylesheet" href"css/style.css"> &l…...
如何将应用一键部署至多个环境?丨Walrus教程
在 Walrus 平台上,运维团队在资源定义(Resource Definition)中声明提供的资源类型,通过设置匹配规则,将不同的资源部署模板应用到不同类型的环境、项目等。与此同时,研发人员无需关注底层具体实现方式&…...
Redis的一些问题,解决并发的
项目通布隆过滤器: 布隆过滤器: 布隆过滤器是一种空间效率非常高的数据结构,用于快速判断一个元素是否可能存在于一个集合中。它由一个位数组(通常是长度为 m 的比特数组)和 k 个不同的哈希函数组成。当一个元素被加入…...
郭炜老师mooc第十一章数据分析和展示(numpy,pandas, matplotlib)
多维数组库numpy numpy创建数组的常用函数 # numpy数组import numpy as np #以后numpy简写为np print(np.array([1,2,3])) #>>[1 2 3] print(np.arange(1,9,2)) #>>[1 3 5 7] 不包括9 print(np.linspace(1,10,4)) #>>[ 1. 4. 7. 10.] # linespace(x,y,n)&…...
Redis主从架构和管道Lua(一)
Redis主从架构 架构 Redis主从工作原理 如果为master配置了一个slave,不管这个slave是否是第一次连接上Master,它都会发送一个PSYNC命令给master请求复制数据。master受到PSYNC命令,会在后台进行数据持久化通过bgsave生成最新的 RDB快照文件,持久化期间…...
GTH手册学习注解
CPLL的动态配置 终于看到有这个复位功能了 QPLL SWITCHing需要复位 器件级RESET没发现有管脚引出来 两种复位方式,对应全复位和器件级复位 对应的复位功能管脚 改那个2分频的寄存器说明段,复位是自动发生的?说明可能起效了,但是分…...
html5cssjs代码 002 50以内的加法算式
html5&css&js代码 002 一些基本概念 50以内的加法算式 一、代码二、解释 50以内的加法算式。 一、代码 <!DOCTYPE html> <html lang"en"> <head><title>50以内的加法算式</title><meta charset"UTF-8"><m…...
[React 进阶系列] React Context 案例学习:使用 TS 及 HOC 封装 Context
[React 进阶系列] React Context 案例学习:使用 TS 及 HOC 封装 Context 具体 context 的实现在这里:[React 进阶系列] React Context 案例学习:子组件内更新父组件的状态。 根据项目经验是这样的,自从换了 TS 之后,…...
网络编程:网络编程基础
一、网络发展 1.TCP/IP两个协议阶段 TCP/IP协议已分成了两个不同的协议: 用来检测网络传输中差错的传输控制协议TCP 专门负责对不同网络进行2互联的互联网协议IP 2.网络体系结构 OSI体系口诀:物链网输会示用 2.1网络体系结构概念 每一层都有自己独…...
力扣热题100_矩阵_73_矩阵置零
文章目录 题目链接解题思路解题代码 题目链接 73.矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&…...
C++程序设计-第四/五章 函数和类和对象【期末复习|考研复习】
前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念,以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门: 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
