在【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.恭喜你,完成了。


        希望大家能够从这篇文章中获得启示和收获,同时也感谢各位大佬的支持。如果您在阅读文章时发现任何问题,欢迎在评论区留言,鸿蒙会尽快回复并提供反馈!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Text)

显示一段文本的组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含Span和ImageSpan子组件。 接口 Text(content?: string | Resource, value?: TextOptions) 从API versi…

(码农福利) 介绍几个不用魔法 就能免费使用的AI工具

因为 AI的飞速发展 IT行业已经可以说非常的卷了 作为程序员 如果不具备 AI 使用的能力 很快就会被淘汰 但 在社区内 无法直接谈论魔法 大部分程序员 可能也不具备魔法 今天说一个不需要魔法 好用的 AI工具 我们打开官网 https://chandler.bet/#/overView 点击 Get Chrome Ex…

部署docker仓库harbor

1、下载包 1、包已上传有两个harbor.v2.6.0.tar与harbor.tar 2、harbor.tar解压后会生成harbor目录&#xff0c;将harbor.v2.6.0.tar移动到harbor目录下。 3、执行harbor目录下的install.sh 4、执行完后修改配置文件 2、修改配置文件 vim /root/harbor/make/ harbor.yml.tmpl …

微信小程序-day01

文章目录 前言微信小程序介绍 一、为什么要学习微信小程序?二、微信小程序的历史创建开发环境1.注册账号2.获取APPID 三、下载微信开发者工具1.创建微信小程序项目2.填写相关信息3.项目创建成功 四、小程序目录结构项目的主体组成结构 总结 前言 微信小程序介绍 微信小程序&…

【计算机视觉】一、计算机视觉概述

文章目录 一、计算机视觉二、计算机视觉与其它学科领域的关系1、图像处理2、计算机图形学3、模式识别4、人工智能&#xff08;AI&#xff09;5、神经生理学与认知科学 三、计算机视觉的应用1. 人脸识别2. 目标检测3. 图像生成4. 城市建模5. 电影特效6. 体感游戏动作捕捉7. 虚拟…

Android Kotlin知识汇总(一)编程语言

在 2019 年 Google I/O 大会上宣布今后将优先采用 Kotlin 进行 Android 开发。Kotlin 是一种富有表现力且简洁的编程语言&#xff0c;不仅可以减少常见代码错误&#xff0c;还可以轻松集成到现有应用中。如果您想构建 Android 应用&#xff0c;建议您从 Kotlin 开始着手&#x…

电机控制杂谈——载波比降低对电机控制性能的影响以及简单的补救措施

在低速大功率和高速领域&#xff0c;受限于开关损耗、 散热能力以及系统效率&#xff0c;驱动器开关频率与电机基频的比值&#xff08;即载波比&#xff09;往往较低。&#xff08;有的文献里也叫做基频比&#xff09; 当载波比低于 15 时&#xff0c;认为电机工作在低载波比工…

新火种AI|GPT-4诞生1年,OpenAI把它放到了机器人上

作者&#xff1a;一号 编辑&#xff1a;美美 ChatGPT拥有了身体&#xff0c;机器人也有了灵魂。 从OpenAI在去年3月14日拿出GPT-4后&#xff0c;已经过了整整一年。显然&#xff0c;在GPT-4诞生之后的这一年&#xff0c;一切都迭代得太快了&#xff0c;从GPT-4展现多模态能力&…

Qt教程 — 3.1 深入了解Qt 控件:Buttons按钮

目录 1 Buttons按钮简介 1.1 Buttons按钮简介 1.2 Buttons按钮如何选择 2 如何使用Buttons按钮 2.1 QPushButton使用-如何自定义皮肤 2.2 QToolButton使用-如何设置帮助文档 2.3 QRadioButton使用-如何设置开关效果 2.4 QRadioButton使用-如何设置三态选择框 2.5 QCom…

吴恩达deeplearning.ai:独热编码One-hot连续有价值的特征回归树

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai专栏 文章目录 One-hot编码连续有价值的特征回归树 在之前的决策树例子中&#xff0c;每个分裂都只有两种选择&#xff0c;但是今天我们将提到一种新的分裂方式叫做One-hot&#xff0c;可以解决以…

【Cookie和Session辨析】

1.cookie 1.1什么是cookie Cookie 是一种在客户端&#xff08;通常是 Web 浏览器&#xff09;和服务器之间传递信息的机制&#xff0c;用于在客户端存储少量的数据。它由服务器发送到客户端浏览器&#xff0c;然后浏览器会将这些数据存储在本地&#xff0c;并在后续的请求中将…

力扣热题100_矩阵_73_矩阵置零

文章目录 题目链接解题思路解题代码 题目链接 73.矩阵置零 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&…

基于Java+SpringBoot+vue的图书购物商城系统详细设计和实现

基于JavaSpringBootvue的图书购物商城系统详细设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文…

linux sshd_config配置说明

[root01 ssh]# cat sshd_config #######################SSH Base Config################## #######通过OpenSSH工具入xshell连接默认端口 可以改成其他默认是22 PAM 认证过程 1&#xff09;使用者执行/usr/bin/passwd程序&#xff0c;并输入密码。 2&#xff09;passwd开…

热点篇(三)-促进传统地产的数字化、网络化和智能化转型

在全国两会召开之际&#xff0c;两会代表纷纷建言“数字化”&#xff0c;全国人大代表、58同城CEO姚劲波指出&#xff0c;在数字中国的大背景下&#xff0c;房地产行业也需要将新的技术与传统地产相融合&#xff0c;从数字基建、数字管理到智能化开发等各个环节实现数字化的流程…

C语言之文件操作(万字详解)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a; 我要学编程(ಥ_ಥ)-CSDN博客 目录 前言 文件的打开和关闭 流和标准流 文件指针 文件的打开和关闭 文件的顺序读写 顺序读写函数介绍 fputc的使用 fgetc的使用 fput…

为什么大口径管材产线中使用大直径测径仪?

关键词&#xff1a;测径仪, 管材测径仪, 外径检测, 大口径管材测径仪, 大口径测径仪 在一个繁忙的钢管制造工厂里&#xff0c;生产线上的钢管正源源不断地被制造出来。然而&#xff0c;工程师们发现了一个问题&#xff1a;由于测量误差&#xff0c;部分钢管的直径不符合规格&am…

【学一点RISC-V】RISC-V IMSIC

IMSIC RISC-V AIA 文档 第三章 Incoming MSI Controller (IMSIC) 传入 MSI 控制器&#xff08;IMSIC&#xff09;是一个可选的 RISC-V 硬件组件&#xff0c;与 hart 紧密相连&#xff0c;每个 hart 有一个 IMSIC。IMSIC 接收并记录 Hart 的传入消息信号中断 (MSI)&#xff0c;并…

P5016 [NOIP2018 普及组] 龙虎斗

1.思路 1.先计算包含天降神兵的势力 #include <iostream> using namespace std; int main(){long long n;cin >> n;long long c[n+10];for (long long i= 1; i <= n; i++){cin >> c[i];} long long m,p1,s1,s2;cin >> m >> p1 >> s1…

C++类和对象一

#include <iostream> using namespace std;//设计一个学生类 class CStudent {public: //公有成员void InputData(){cout << "请输入学号";cin >> sno;cout << "请输入姓名";cin >> sname;cout << "请输入分…