当前位置: 首页 > news >正文

在【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版】【中文】【图文详解】

作为一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;IntelliJ IDEA为Web服务器提供了卓越的支持&#xff0c;从而极大地简化了程序员在Web开发过程中的工作流程。学习Java Web开发实质上就是掌握如何创造动态Web资源&#xff0c;这些资源在完成开发后&…...

【SSM】任务列表案例 基本CRUD SSM整合

文章目录 一、案例功能预览二、接口分析三、前端工程导入四、后端程序实现和测试4.1 准备4.2 功能实现4.2.1 分页查询显示4.2.2 添加计划4.2.2 删除计划4.2.3 修改计划 4.3 前后联调 一、案例功能预览 Github 地址 &#xff1a; ssm-integration-part 二、接口分析 学习计划…...

基于微信小程序的校园跑腿小程序,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

网络学习:9个计算机的“网络层”知识点

目录 一、IP 地址 1.1 分类表示法&#xff1a; 1.1.1 分类表示地址的其他说明 1.2 无分类编址 CIDR 二、IP 数据报文格式 Q: IP 报文里有什么&#xff1f;可以不按顺序或者字节来讲一讲 三、 路由概念 3.1 路由表 3.2 路由网络匹配 3.3 ARP 解析 3.4 RARP 逆地址解析…...

web项目的搭建

使用Webstorm并创建Next.js文件 1、配置nodejs环境、安装webstorm【配置node.js可以使用nvm去管理nodejs的版本】 2、需要破解webstorm&#xff0c;可能会导致原本的idea失效&#xff0c;注册码过期 3、taobao的npm过期&#xff0c;导致npm is sass执行不成功&#xff0c;需…...

C++for语句

1.求平均年龄 班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位 输入 第1行有一个整数n(1 <= n <=100),表示学生的人数;其后n行每行有1个整数,表示每个学生的年龄,取值为15~25 输出 一行,包含一个浮点数,为所求的平…...

最新基于R语言lavaan结构方程模型(SEM)技术

原文链接&#xff1a;最新基于R语言lavaan结构方程模型&#xff08;SEM&#xff09;技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…...

【网络安全】-数字证书

数字证书 数字证书是互联网通讯中用于标志通讯各方身份信息的一串数字或数据&#xff0c;它为网络应用提供了一种验证通信实体身份的方式。具体来说&#xff0c;数字证书是由权威的证书授权&#xff08;CA&#xff09;中心签发的&#xff0c;包含公开密钥拥有者信息以及公开密…...

【C++ 】stack 和 queue

1. 标准库中的stack stack 的介绍&#xff1a; 1. stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行 元素的插入与提取操作 2. stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其…...

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 平台上&#xff0c;运维团队在资源定义&#xff08;Resource Definition&#xff09;中声明提供的资源类型&#xff0c;通过设置匹配规则&#xff0c;将不同的资源部署模板应用到不同类型的环境、项目等。与此同时&#xff0c;研发人员无需关注底层具体实现方式&…...

Redis的一些问题,解决并发的

项目通布隆过滤器&#xff1a; 布隆过滤器&#xff1a; 布隆过滤器是一种空间效率非常高的数据结构&#xff0c;用于快速判断一个元素是否可能存在于一个集合中。它由一个位数组&#xff08;通常是长度为 m 的比特数组&#xff09;和 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命令&#xff0c;会在后台进行数据持久化通过bgsave生成最新的 RDB快照文件&#xff0c;持久化期间…...

GTH手册学习注解

CPLL的动态配置 终于看到有这个复位功能了 QPLL SWITCHing需要复位 器件级RESET没发现有管脚引出来 两种复位方式&#xff0c;对应全复位和器件级复位 对应的复位功能管脚 改那个2分频的寄存器说明段&#xff0c;复位是自动发生的&#xff1f;说明可能起效了&#xff0c;但是分…...

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 案例学习&#xff1a;使用 TS 及 HOC 封装 Context 具体 context 的实现在这里&#xff1a;[React 进阶系列] React Context 案例学习&#xff1a;子组件内更新父组件的状态。 根据项目经验是这样的&#xff0c;自从换了 TS 之后&#xff0c;…...

网络编程:网络编程基础

一、网络发展 1.TCP/IP两个协议阶段 TCP/IP协议已分成了两个不同的协议&#xff1a; 用来检测网络传输中差错的传输控制协议TCP 专门负责对不同网络进行2互联的互联网协议IP 2.网络体系结构 OSI体系口诀&#xff1a;物链网输会示用 2.1网络体系结构概念 每一层都有自己独…...

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

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

C++程序设计-第四/五章 函数和类和对象【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门&#xff1a; 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…...

C#快速入门基础

本篇文章从最基础的C#编程开始学习&#xff0c;经过非常优秀的面向对象编程思想和方法的学习&#xff0c;为C#编程打下基础。 第 01 章 C#开发环境之VS使用和.NET平台基础 1.1 Visual Studio 开发环境 1.1.1 硬件环境 i5CPUi5CPU&#xff08;建议 4核 4线程或以上 &#xff0…...

UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

一.颜色叠加混合 1.Blend混合 // 正常&#xff0c;透明度混合 Normal Blend SrcAlpha OneMinusSrcAlpha //柔和叠加 Soft Additive Blend OneMinusDstColor One //正片叠底 相乘 Multiply Blend DstColor Zero //两倍叠加 相加 2x Multiply Blend DstColor SrcColor //变暗…...

Vue3调用钉钉api,内嵌H5微应用单点登录对接

钉钉内嵌H5微应用单点登录对接 https://open.dingtalk.com/document/isvapp/obtain-the-userid-of-a-user-by-using-the-log-free 前端需要的代码 1、安装 dingtalk-jsapi npm install dingtalk-jsapi2、在所需页面引入 import * as dd from dingtalk-jsapi; // 引入钉钉a…...

UE5 局域网联机,寻找会话失败。

目录 参考资料&#xff1a; 尝试解决办法 1.1在【项目名.Build.cs】脚本中添加该行&#xff0c;添加后关闭编辑器&#xff0c;重新生成解决方案。​编辑 2.检查是否在同一个C类子网 参考资料&#xff1a; 1.Cant find session in LAN - Programming & Scripting / Mul…...

Windows系统安装MongoDB并结合内网穿透实现公网访问本地数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…...

Hadoop伪分布式配置--没有DataNode或NameNode

一、原因分析 重复格式化NameNode 二、解决方法 1、输入格式化NameNode命令&#xff0c;找到data和name存放位置 ./bin/hdfs namenode -format 2、删除data或name&#xff08;没有哪个删哪个&#xff09; sudo rm -rf data 3、重新格式化NameNode 4、重新启动即可。...

柚见第十期(后端队伍接口详细设计)

创建队伍 用户可以 创建 一个队伍&#xff0c;设置队伍的人数、队伍名称&#xff08;标题&#xff09;、描述、超时时间 P0 队长、剩余的人数 聊天&#xff1f; 公开 或 private 或加密 信息流中不展示已过期的队伍 请求参数是否为空&#xff1f;是否登录&#xff0c;未登录不…...

【李沐论文精读】GPT、GPT-2和GPT-3论文精读

论文&#xff1a; GPT&#xff1a;Improving Language Understanding by Generative Pre-Training GTP-2&#xff1a;Language Models are Unsupervised Multitask Learners GPT-3&#xff1a;Language Models are Few-Shot Learners 参考&#xff1a;GPT、GPT-2、GPT-3论文精读…...

新版Android Studio火烈鸟 在新建项目工程时 无法选java的语言模板解决方法

前言 最近下载最新版androidstudio时 发现不能勾选java语言模板了 如果快速点击下一步 新建项目 默认是kotlin语言模板 这可能和google主推kt语言有关 勾选1 如图所示 如果勾选 No Activity 这个模板 是可以选java语言模板的 但是里面没有默认的Activity 勾选2 和以前的用法…...

github(不是git啊)操作记录(踩坑)

专栏介绍与文章目录-CSDN博客 github是程序员绕不开的东西。 网站打不开&#xff1f; 向雇主或有关部门申请合法信道连接互联网。 明明账号密码都对却登录失败&#xff1f; 向雇主或有关部门申请合法信道连接互联网。 重置密码失败&#xff1f; 向雇主或有关部门申请合法信道…...