tomcat的安装与配置(包含在idea中配置tomcat)

        Tomcat 是由 Apache 软件基金会开发的开源 Java Web 应用服务器,主要用于运行 Servlet 和 JSP(JavaServer Pages)程序。它属于轻量级应用服务器,适用于中小型系统及开发调试场景,尤其在处理动态内容(如 Java 程序)时表现优异,但其静态资源处理能力弱于 Apache HTTP Server 或 Nginx 

温馨提示:安装tomcat过程中遇到的所有问题都在文章最后一一解答,如果还有其他问题欢迎留言讨论!!!

一、安装tomcat并配置环境变量

1、首先查看jdk的版本

​不同JDK 版本 下载对应的 Tomcat 版本对照表

下载官网:Apache Tomcat® - Welcome!

JDK 版本兼容的 Tomcat 版本支持范围说明
JDK 1.0-1.3Tomcat 3.x, 4.0.x早期兼容已淘汰,仅供历史参考。
JDK 1.4Tomcat 4.1.x, 5.xJDK 1.4+Tomcat 5.5 需 JDK 1.4 或更高。
​**J2SE 5.0 (5)**​Tomcat 5.5.x, 6.xJDK 5.0+Tomcat 6.x 最低需 JDK 5.0。
Java SE 6Tomcat 6.x, 7.xJDK 6+Tomcat 7.x 需 JDK 6+(推荐 JDK 7+)。
Java SE 7Tomcat 7.x, 8.xJDK 7+Tomcat 8.x 最低需 JDK 7,但推荐 JDK 8+。
Java SE 8Tomcat 8.5.x, 9.x, 10.xJDK 8+Tomcat 9.x/10.x 需 JDK 8+,是主流生产组合。
Java SE 9-10Tomcat 9.x, 10.xJDK 8+JDK 9-10 可能存在兼容性问题,需测试。
Java SE 11Tomcat 10.1.x, 9.x (限)JDK 11+Tomcat 10.1.x 需 JDK 11+(支持模块化)。
Java SE 17Tomcat 10.1.x, 11.x (测试)JDK 11+Tomcat 11.x 在开发中,需 JDK 17+。
Java SE 21Tomcat 11.x (未来支持)JDK 17+Tomcat 11.x 预计支持 JDK 21(需验证)。

 2、下载Tomcat(以下载Tomcat9为例)

 下载完成后存放到自己指定的位置即可,这里不在叙述

3、配置jdk的环境变量

1.找到jdk下载位置(复制该路径)

2.设置环境变量(如果已经设置好了,可以跳过这步骤)

 

4、找到tomcat的启动文件startup并双击打开

5、启动后,如果没有出现闪退现象那么就成功了,如果出现闪退现象,在下面有解决方案

如果出现乱码其实没什么影响,原因是编码方式不同导致中文在编译时出错

6、在浏览器上验证是否能登入8080端口(注意:不要关闭tomcat服务器!!!即上面的框框

输入下面的主机和端口:

http://localhost:8080

出现下面的情况说明能正常访问!!! 


二、在idea中配置tomcat

注意:下面步骤适用于 idea 2023及以上版本(idea2020及以下版本,部分步骤有所不同在文章最后补充!!!)

1、打开idea并新建一个项目

 或在其他项目中新建其他项目

2、项目名称自己随意取 ,点击创建即可

 3、点击  文件(file)  并点击  项目结构

4、添加一个Web运用(模块)

 5、创建工件并运用

创建工件后直接点运用并确定即可 

6、创建Web运用成功后(如下图所示)

7、在idea配置tomcat服务器

注意顺序:先部署后配置服务器!!! 

先添加工件 

 工程路径名字可以删除一部分

点击运用但不要点确定!!! (还要配服务器那边)

 配置tomcat文件

更改名称:根据自己意愿想改就改 

 配置浏览器

最后点击运用并确定 

最后就可以看见Tomcat的标志出来了 

8、配置完成后也仅仅只是个框架,并不能运行程序,还需要编写程序并添加对应的API(接口)

下面以编写jsp程序为例:

在WEB-INF下面创建一个lib目录用于存放jar文件(接口)

9、找到jsp-api.jar文件并复制(这个文件在Tomcat的lib目录下)

10、粘贴到lib目录下 

 11、解析api添加为库

这样就可以在idea中调用这些类和接口了 

12、新建一个jsp文件,取名为test(名字随意) 

13、编写一个简单的程序 

14、点击绿色按钮启动Tomcat服务 

 

温馨提示:需要启动Tomcat服务来访问该文件!!! (点击最上面绿色按钮启动)而不是下面的错误示范!!!

Tomcat服务启动后会自动打开浏览器访问默认地址 

 正常运行展示如下:

 15、访问jsp文件(自己要记得刚刚建好的jsp文件,注意:需要带后缀!!!因为静态文件还有很多种像html、css、js、jsp、img等等)

结果如下: 

最后补充:一定要正确配置不同文件的位置,src目录下是专门存放java文件的!!!静态资源直接存放在web运用下,jar包需要放在WEB-INF下的lib目录


常见问题解答:

1、如何查看自己下载的jdk版本?

(1)打开命令提示符,输入以下命令

java -version

2、如何查找jdk安装的位置?

(1)打开命令提示符,输入以下命令

where java

如果出现以下情况,那么可能没有配置环境变量

查看 Path 中是否存在

%SystemRoot%\system32
%SystemRoot%

若无,需手动添加

 

 

如果输入where java 但是没有找到位置,那么可能是没有配置jdk的环境变量

3、若未安装JDK或配置错误:

(1)下载JDK:从Java Downloads | Oracle选择版本(如JDK 18)并安装。(一直往下面滑,直到看见java8,点击进去)

下载jdk压缩包,可能需要创建oracle账号,自己创建一个即可 

(2)配置jdk环境变量(以Win10为例):

1.新建系统变量 JAVA_HOME,值为JDK安装路径(如 C:\Program Files\Java\jdk-18)。

 注意:一定要知道自己安装jdk的位置(如 C:\Program Files\Java\jdk-18),这个路径复制即可,不需要进入bin目录!!!

2.去环境变量设置那里 (上面有步骤)

3.变量名:JAVA_HOME        变量值:jdk安装的路径

 4.编辑 Path,添加 %JAVA_HOME%\bin 和 %JAVA_HOME%\jre\bin

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

5.注意:退出的时候,一定要点确定!!!

4、配置文件成功后还是启动不了startup文件:

(1)再次确认环境变量是否输错或者是目录打错名字,建议直接复制粘贴!!!

(2)如果之前电脑配置过Tomcat,那么有可能某个程序已经占用了8080端口!!!

查看哪个进程占用了8080端口

netstat -ano | findstr 8080

终止该进程(例如进程id为7920 )

taskkill /pid 7920 /f

5、idea2020版本在配置web运用时有点不同:

其他步骤都一样

如果还有什么问题,欢迎来评论区讨论!!!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速开始React开发(一)

快速开始React开发(一) React是一个JavaScript库,用于构建交互式网站,并且能够快捷创建SPA(Single Page App),其组件化的思想也是被一再传播,无论是普通的Web网站还是嵌入移动端交互…

安装nvidia-docker 和设置docker 镜像源

Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 可以先参考官方文档 下面的操作具体和官方文档类似 curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-ke…

C++第二节:C/C++内存管理

1.C/C内存分布 【说明】 栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。堆用于程序运行时动态内存分…

rust编程实战:实现3d粒子渲染wasm

源码 纯js实现 fps: wasm实现 通过对比可以看出来 wasm 实现的计算比纯js刷新相对稳定。

开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享

OpenHarmony 5.0版本的发布时间是2024年12月20日至21日。这个版本带来了许多新特性和改进。现在5.0出了两个release 版本,分别是5.0.0和5.0.1。 就在5.0版本发布不到2周的时间内,2025年01月01日起,不支持新产品基于老分支(OpenHar…

deepseek在pycharm 中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…

23种设计模式一览【设计模式】

文章目录 前言一、创建型模式(Creational Patterns)二、结构型模式(Structural Patterns)三、行为型模式(Behavioral Patterns) 前言 设计模式是软件工程中用来解决特定问题的一组解决方案。它们是经过验证…

spring boot整合flyway实现数据的动态维护

1、简单介绍一下flyway Flyway 是一款开源的数据库版本控制工具,主要用于管理数据库结构的变更(如创建表、修改字段、插入数据等)。它通过跟踪和执行版本化的迁移脚本,帮助团队实现数据库变更的自动化。接下来简单介绍一下flyway…

致远电子三合一8路串口服务器

ZLG致远电子全新推出国产化透传型三合一8路串口服务器,让用户轻松实现串口信号与以太网的无缝数据交互。性能强悍,等你来评,还有机会获得新年第一份心意! GCOM88-2NET-P硬件速览 国产高性能816MHz处理器; 2路10/100M自…

20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开

sync poweroff rootok3588:/# sync rootok3588:/# sync rootok3588:/# cd 107 rootok3588:/107# ls -l total 0 rootok3588:/107# sync rootok3588:/107# poweroff 20250304解决在飞凌的OK3588-C的Linux R4下解决使用gstreamer保存的mp4打不开 2025/3/4 10:58 缘起&#xff1a…

安路FPGA移植Cortex-M0内核

本文是关于基于安路FPGA EG4S20BG256移植Cortex M0内核的笔记。硬件平台使用硬木课堂的安路核心板,软件使用安路的TD5.6.2和keil5。(博主刚学FPGA不久,文中有不足之处请帮忙指出) 在移植之前,博主看了网上很多的文章、…

STM32——串口通信 UART

一、基础配置 Universal Asynchronous Receiver Transmitter 异步,串行,全双工 TTL电平 :高电平1 低电平0 帧格式: 起始位1bit 数据位8bit 校验位1bit 终止位1bit NVIC Settings一栏使能接受中断。 之前有设置LCD,…

flink集成tidb cdc

Flink TiDB CDC 详解 1. TiDB CDC 简介 1.1 TiDB CDC 的核心概念 TiDB CDC 是 TiDB 提供的变更数据捕获工具,能够实时捕获 TiDB 集群中的数据变更(如 INSERT、UPDATE、DELETE 操作),并将这些变更以事件流的形式输出。TiDB CDC 的…

DeepSeek×博云AIOS:突破算力桎梏,开启AI普惠新纪元

背景 在全球人工智能技术高速迭代的背景下,算力成本高企、异构资源适配复杂、模型部署效率低下等问题,始终是制约企业AI规模化应用的关键。 DeepSeek以创新技术直击产业痛点,而博云先进算力管理平台AIOS的全面适配,则为这一技术…

ArcGIS Pro建库中常用公式的应用与技巧

在当今数字化的时代,地理信息系统(GIS)在各个领域都发挥着至关重要的作用。 ArcGIS Pro作为一款功能强大的GIS软件,为用户提供了丰富的工具和功能,使得数据处理、地图制作和空间分析变得更加高效和便捷。 本文将为您…

C++入门基础

文章目录 C核心特性详解(基础增强版)一、第一个C程序:Hello World完整代码解析新手常见问题 二、命名空间(详解版)1. 为什么需要命名空间?2. 命名空间使用场景3. 嵌套命名空间4. 匿名命名空间 三、输入输出…

探秘基带算法:从原理到5G时代的通信变革【三】Turbo 编解码

文章目录 2.2 Turbo 编解码2.2.1 基本概念与系统构成2.2.2 编码过程分步解析交织器递归系统卷积编码器复接器总结 2.2.3 译码算法分类与原理Turbo码的强大主要来源于其解码器理论基础解码过程详解交织与解交织译码算法总结 2.2.4 Turbo码的应用场景无线通信卫星通信深空通信 2.…

一键无损放大视频,让老旧画面重焕新生!

打工人们你们好!这里是摸鱼 特供版~ 嘿,朋友们!在数字时代,视频已经成为我们生活中不可或缺的一部分。无论是珍贵的家庭录像,还是老旧的影视素材,我们都希望能以高清画质重温那些美好瞬间。但很多时候&…

build gcc

1,下载源码 wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2 wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz git clone --mirror https://github…

《用Python+PyGame开发双人生存游戏!源码解析+完整开发思路分享》

导语​ "你是否想过用Python开发一款可玩性高的双人合作游戏?本文将分享如何从零开始实现一款类《吸血鬼幸存者》的生存射击游戏!包含完整源码解析、角色系统设计、敌人AI逻辑等核心技术点,文末提供完整代码包下载!" 哈…