JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)

news2024/11/17 1:50:06

前言

我们想要部署一个javaWeb项目到tomcat上,需要了解一些概念

 什么是tomcat?

        Tomcat 是 Apache 软件基金会(Apache Software Foundation)下的一个开源项目,主要用于实现 Java Servlet、JavaServer Pages(JSP)、Java Expression Language(JSTL)、Java WebSocket 技术以及 Java API for WebSocket 的容器。简而言之,Tomcat 是一个 Web 应用服务器(也称为 Servlet 容器),它主要用于在服务器上运行 Java 编写的 Web 应用程序。

        Tomcat 提供了对 Servlet 和 JSP 的支持,使得开发者能够编写出功能强大的交互式 Web 应用程序。Servlet 是一种运行在服务器上的 Java 应用程序,它主要用于处理客户端的请求并返回响应;而 JSP 是一种用于创建动态网页内容的技术,它允许将 Java 代码嵌入到 HTML 页面中

        Tomcat 通常被部署在服务器上,用于运行 Web 应用程序。开发者可以在本地计算机上安装 Tomcat 以进行开发和测试,然后将应用程序部署到生产环境中的 Tomcat 服务器上,以提供给最终用户使用。

 什么是maven项目?

maven是管理和构建java项目的工具,JavaWeb项目时在maven项目的基础上进行创建的。

maven中最重要的就是pom.xml配置文件,通过一小段描述来管理和构建java项目

 创建一个Javaweb项目

使用idea继承开发环境创建第一个JavaWeb程序( 前提:已经在idea配置了maven)

打开idea-->点击New Project 

项目结构如下:

 此时,已经创建了一个基本的JavaWeb项目,只不过此时不包含任何东西,如何创建Servlet等操作,这里不在赘述,直接演示如何打包JavaWeb项目,在Tomcat服务器运行

 打包JavaWeb项目

JavaWeb项目打包成war包

        在Maven项目中,将项目打包成WAR(Web Application Archive)包是一个常见的需求,特别是在开发Web应用程序时。WAR包是一个包含了所有Servlet类文件、JSP文件、Java类库、资源文件(如图片和HTML)以及Web页面所需的META-INF/和WEB-INF/目录的JAR文件。Maven通过其maven-war-plugin插件来支持WAR包的打包。

以下是将Maven项目打包成WAR包的基本步骤:

 1. 检查pom.xml文件

        首先,确保你的pom.xml文件中包含了正确的打包类型。对于Web应用程序,你通常不需要显式设置<packaging>元素,因为Maven默认将pom.xml中带有<webappDirectory>或包含Web资源目录(如src/main/webapp)的项目视为WAR包项目。但如果你需要明确指定,可以添加如下配置:

<packaging>war</packaging>

2. 配置maven-war-plugin

        尽管Maven的默认配置通常足以生成WAR包,但有时你可能需要自定义WAR包的某些方面。这时,你可以在pom.xml中配置maven-war-plugin。(如果不配置war插件的版本,在tomcat无法运行)以下是一个简单的配置示例:

<build>  
    <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-war-plugin</artifactId>  
            <version>3.3.2</version> <!-- 请使用最新的稳定版本 -->  
            <configuration>  
                <!-- 自定义WAR包的名称 -->  
                <warName>web/warName>  
                <!-- 其他配置... -->  
            </configuration>  
        </plugin>  
    </plugins>  
</build>

执行完以上操作后,记得重新加载POM.XML文件更新

 3. 打包maven项目

找到Maven的生命周期插件,双击package进行打包

 4. 启动tomcat

在本地资源管理器打开项目,找到我们打包后的war包 ,把它放在tomcat的webapps目录下:

 双击tomcat的bin目录下的startup.bat命令,启动本地的tomcat服务器,如下所示:

如果出现中文乱码,是字符编码集出现不匹配导致,不会影响项目的运行

tomcat启动完成后,会自动解压我们的war包:

 

 此时直接在浏览器测试:

1.查看tomcat是否启动成功:

访问localhost:8080出现如下页面,tomcat启动成功

2.查看JavaWeb项目是否启动成功: 

此时需要带上我们定义的项目名路径:这里我设置成了web(可以任意设置,不要出现非法字符)

因为没有写任何内容,会直接访问默认首页:(即index.jsp中的HTML页面)

访问成功!(这表示JavaWeb项目部署成功!)

 总结

 本博客主要是为了介绍如何将一个JavaWeb项目打包成war包,并且部署到tomcat服务器上,并没有书写Servlet和JSP等内容,目的是为了快速了解tomcat部署Java项目的全部流程。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 PyCharm 中配置 Anaconda 环境

1. 安装 Anaconda 如果尚未安装 Anaconda&#xff0c;你可以从 Anaconda 官方网站 下载或者从清华镜像网站下载并安装适合你操作系统的版本。 2. 创建 Anaconda 虚拟环境 打开 Anaconda Prompt&#xff08;Windows&#xff09;或终端&#xff08;macOS/Linux&#xff09;。 …

EmguCV学习笔记 VB.Net 11.6 图像分割

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

如何升级用 Helm 安装的极狐GitLab Runner?

本分分享如何对 Helm 安装的 Runner 进行升级。整个过程分为三步&#xff1a;1、确定 Runner 最新版本或者想要升级的版本是否存在&#xff1b;2、用 Helm upgrade 命令进行升级&#xff1b;3、升级确认。 极狐GitLab 为 GitLab 的中国发行版&#xff0c;中文版本对中国用户更…

【西电电装实习】6. 手装无人机的蓝牙断连debug

文章目录 前言零、闪灯状态零零、翻滚角&#xff0c;俯仰角&#xff0c;偏航角一、问题描述二、现象解释三、解决方案参考文献 前言 在 西电无人机电装实习 时遇到的问题使用蓝牙芯片 CH582F。沁恒的蓝牙芯片CH582F是一款集成了BLE&#xff08;Bluetooth Low Energy&#xff0…

华为初级认证HCIA怎么样?

想在网络技术领域实现职业突破吗&#xff1f;华为HCIA初级认证是专为网络领域的新手与初学者设计的一项入门级认证。它旨在评估并确认个人对网络基本原理和技术知识的扎实掌握&#xff0c;是步入华为认证体系大门的基石。 一、华为HCIA 初级认证概述 华为初级认证网络工程师&am…

分类预测|基于黑翅鸢优化核极限学习机的数据分类预测Matlab程序BKA-KELM 多特征输入多类别输出 含基础KELM

分类预测|基于黑翅鸢优化核极限学习机的数据分类预测Matlab程序BKA-KELM 多特征输入多类别输出 含基础KELM 文章目录 一、基本原理BKA-HKELM 分类预测原理和流程总结 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 BKA-HKELM 分类预测原理和流程 1. 黑翅鸢优化…

最好用的翻译器:什么是DeepL?如何订阅支付DeepL,订阅DeepL Pro以及申请DeepL API?

DeepL目前最好用的翻译软件&#xff0c;如果是学习翻译的同学或者海外客户翻译&#xff0c;一定不能错过&#xff0c;用它来处理文件&#xff0c;论文等翻译是最好不过了的&#xff01;&#xff01;&#xff01; AI翻译技术的飞速发展正在颠覆我们的沟通方式&#xff0c;打破语…

6年前倒闭的机器人独角兽,再次杀入AGV市场

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 在科技创新的浪潮中&#xff0c;一个曾经辉煌又迅速陨落的企业正悄然重生&#xff0c;引发业界广泛关注。 曾经的协作机器人鼻祖Rethink Robotic…

机器学习周报(9.9-9.15)-Pytorch学习(三)

文章目录 摘要Abstract1 损失函数与反向传播1.1 L1Loss损失函数1.2 MSELoss损失函数1.3 交叉熵损失函数&#xff08;CrossEntropyLoss&#xff09;1.4 反向传播 2 优化器3 现有网络模型的使用及修改4 网络模型的保存与读取4.1 保存模型4.2 读取 总结 摘要 本次学习对Pytorch中…

8.3Sobel算子边缘检测

实验原理 Sobel算子是一种广泛使用的一阶导数边缘检测算子&#xff0c;它通过计算图像在水平和垂直方向上的梯度来检测边缘。Sobel算子使用一对3x3的掩模来实现这一功能。相比于其他边缘检测算子&#xff0c;Sobel算子在检测边缘的同时还能提供一定的抗噪能力。 在OpenCV中&a…

【射频通信电子线路基础第四讲】LC匹配网络、史密斯圆图、噪声与噪声系数

一、LC匹配网络 1、L-I型&#xff08;负载与电抗并联&#xff09; 2、L-II型&#xff08;负载与电抗串联&#xff09; 3、T型网络和π型网络例子 二、Smith圆图 这里先附上知乎大神的讲解链接&#xff0c;推荐直接去看非常适合入门理解&#xff0c;看完之后茅塞顿开 https://…

MySQL 安全机制全面解析

‍ 在如今的数字化时代&#xff0c;数据库安全 变得越来越重要。为了防止对数据库进行非法操作&#xff0c;MySQL 定义了一套完整的安全机制&#xff0c;包括用户管理、权限管理 和 角色管理。本文将为你深入浅出地介绍这三大安全机制&#xff0c;帮助你轻松掌握MySQL的安全管…

MPP数据库之SelectDB

SelectDB 是一个高性能、云原生的 MPP&#xff08;大规模并行处理&#xff09;数据库&#xff0c;旨在为分析型数据处理场景提供快速、弹性和高效的解决方案。它专为处理大规模结构化和半结构化数据设计&#xff0c;常用于企业级业务分析、实时分析和决策支持。 SelectDB 是在…

Vue2时间轴组件(TimeLine/分页、自动顺序播放、暂停、换肤功能、时间选择,鼠标快速滑动)

目录 1介绍背景 2实现原理 3组件介绍 4代码 5其他说明 1介绍背景 项目背景是 一天的时间轴 10分钟为一间隔 一天被划分成144个节点 一页面12个节点 代码介绍的很详细 可参考或者借鉴 2实现原理 对Element-plus滑块组件的二次封装 基于Vue2&#xff08;2.6.14&#x…

数字孪生引领智慧医院革新:未来医疗的智能化之路

数字孪生&#xff08;Digital Twin&#xff09; 是指将物理实体或系统的数字化模型与其实时运行数据相结合&#xff0c;以反映实体的状态、行为和性能&#xff0c;并通过数据分析和仿真来优化决策和管理。在智慧医院建设中&#xff0c;数字孪生技术扮演着关键角色。 1. 数字孪生…

基于SpringBoot+Vue的瑜伽体验课预约管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

国内按月/季/年使用GPT4.0及OpenAI最新的模型

其实gpt官方版本不仅对于网络要求很高&#xff0c;且订阅用户对高级模型的使用也是有次数限制的&#xff0c; 国内想要稳定且最快同步官网的最新模型&#xff0c;我推荐一个地址,可以方便的不限次数的使用GPT4.0等模型&#xff0c; 今天早上刚出的OpenAI全新的草莓模型&#xf…

uniapp 发布苹果IOS详细流程,包括苹果开发者公司账号申请、IOS证书、.p12证书文件等

记录一下uniapp发布苹果IOS的流程。 一、苹果开发者公司账号申请 1、邓白氏编码申请&#xff08;先申请公司邓白氏编码&#xff0c;这一步需要1-2周&#xff0c;没有这个编码苹果开发者没法申请&#xff0c;已有编码的跳过此步骤&#xff09;&#xff1a; 1&#xff09;联系苹…

【C++ Primer Plus习题】16.1

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream> #include <string> usin…

Linux通配符*、man 、cp、mv、echo、cat、more、less、head、tail、等指令、管道 | 、指令的本质 等的介绍

文章目录 前言一、Linux通配符*二、man 指令三、 cp 指令四、mv指令五、 echo 指令六、cat 指令七、more 指令八、 less 指令九、 head 指令十、 tail指令十一、 管道 |十二、指令的本质总结 前言 Linux通配符*、man 、cp、mv、echo、cat、more、less、head、tail、等指令、管…