Apache Tomcat下载安装配置使用超详细

下载安装

tomcat官网

在此我们以Tomcat 9.0.81为例,点击下载压缩包,解压到自己的文件夹。

  • tar.gzlinux操作系统下的安装版本。
  • zipwindows系统下的压缩版本。
  • Windows Service Installerwindows操作系统下的exe安装版本。

检查是否配置JDK

1.win+r,输入cmd回车

2.输入Java检查是否安装jdk

3.输入java -version查看自己的jdk版本

配置环境变量

1.右键此电脑------属性

点击高级系统设置

点击环境变量

2.新建系统变量

新建JAVA_HOME,变量值:jdk的安装目录。

找到系统变量中的Path 然后编辑,新建%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

新建CLASSPATH,变量值:".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar"。

测试Tomcat

tomcat 目录下的 bin 目录,找到 startup.bat 文件,双击运行。

启动成功后不要关闭此窗口。

打开浏览器 输入 localhost:8080 或者127.0.0.1:8080。出现此页面即成功启动tomcat

关闭Tomcat

  1. 直接关闭 tomcat 启动窗口
  2. tomcat 目录下 bin 目录,查找其中的 shutdown.bat 命令,双击关闭服务器。

启动常见问题

1. 无法启动(闪退:cmd命令窗口出现一下,就消失)

主要原因:没有配置JAVA_HOME系统变量。JAVA_HOME环境变量中配置的是JDK的安装路径,不包含bin目录,不是Tomcat的安装目录。

闪退的原因查看:可以在 startup.bat 文件末尾书写 pause 命令。让运行的窗口暂停。

2.端口被占用导致启动失败

如果启动的时候,发生异常问题,可能是端口被占用。

Tomcat服务器在启动的时候默认占用本地的8080端口,如果这个端口被占用,启动就会报错。

报错内容可以通过查询 tomcat 目录下的 logs 目录中 Catalina.当前系统年月日.log 文件查看:

解决方法:

  1. 结束当前占用此端口的进程,使用netstat-ano命令,找到进程并结束。
  2. 修改tomcat端口:
    找到tomcat目录下的config目录,找到server.xml文件,打开。

server.xml:服务器端口配置,服务器自身配置文件


3.启动时乱码问题

找到tomcat下的config文件夹,找到 logging.properties 并打开。

Tomcat目录介绍

在idea中配置Tomcat

首先创建一个New Project项目,然后项目右键,点击Add Framework Support...

选择Web ApplicationVersions选择4.0。

idea右上角点击设置,点击Project Structure...

点击ProjectSDK选择当前使用JDK版本,Language level选择17。

点击Modules,点开项目名称,选择Web,如果xml地址和web根目录存在则不做任何操作,不存在点击+添加。

点击Artifacts,点击+,选择Web Application:Exploded,选择From Modules...

在项目目录web下配置web.xml,下载Servlet的jar包,存放到lib目录下。

写一个Java程序,点击Edit Configurations

点击+,选择Tomcat Server下面的Local

点击deployment,点击+,选择Artifact

运行程序后,在浏览器中输入配置的项目路径。

附加

启动tomcat服务后,浏览器访问http://localhost:8080/,出现页面的主要操作有

其中,Server StatusManager AppHost Manager需要设置用户名密码才能进入。设置方法:

找到 tomcat/conf/tomcat-users.xml 文件

<tomcat-users> 节点中添加如下代码:

其中, manager-gui 是进入 Manager AppServer Status 的权限。

Manager App界面可以看到当前tomcat服务上所有的应用相关信息,在这里可以部署项目。

相关推荐
测试员周周5 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
Mahir087 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析
java·后端·spring·缓存·面试·循环依赖·三级缓存
杜子不疼.7 小时前
【C++ AI 大模型接入 SDK】 - DeepSeek 模型接入(上)
开发语言·c++·chatgpt
加号37 小时前
【C#】 串口通信技术深度解析及实现
开发语言·c#
sycmancia8 小时前
Qt——编辑交互功能的实现
开发语言·qt
RyFit8 小时前
SpringAI 常见问题及解决方案大全
java·ai
石山代码8 小时前
C++ 内存分区 堆区
java·开发语言·c++
绝知此事9 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
无风听海9 小时前
C# 隐式转换深度解析
java·开发语言·c#
一只大袋鼠9 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git