Tomcat服务器和Web项目的部署

news2024/11/14 5:24:50

目录

一、概述和作用

 二、安装

1.进入官网

2.Download下面选择想要下载的版本

 3.点击Which version查看版本所需要的JRE版本

4.返回上一页下载和电脑和操作系统匹配的Tomcat

5. 安装完成后,点击bin目录下的startup.bat(linux系统下就运行startup.sh)

6.进入这个界面

7.打开浏览器输入localhost:8080看看能不能打开Tomcat

 三、目录结构

四、Web项目的目录结构

五、Web项目部署到Tomcat的方式  

方式3

六、Webapps目录下的五个原装web项目的访问

ROOT

host-manager和manager

配置账号和密码

host-manager打开的页面

manager打开的页面

 访问Tomcat部署的项目的url组成

七、IDEA中开发并部署运行WEB项目

1.步骤

2.IDEA关联本地Tomcat

3. IDEA创建web工程 

4.IDEA部署-运行web项目

八.IDEA部署并运行项目的原理  


一、概述和作用

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

我们写好的后端代码想要在服务器上跑起来,就需要Tomcat(不止这个)这个javaweb服务器软件支持。

Web服务器通常由硬件和软件共同构成。

  • 硬件:电脑,提供服务供其它客户电脑访问

  • 软件:电脑上安装的服务器软件,安装后能提供服务给网络中的其他计算机,将本地文件映射成一个虚拟的url地址供网络中的其他人访问。

  • Tomcat就是一种服务器软件

 二、安装

1.进入官网

Apache Tomcat® - Welcome!

 

2.Download下面选择想要下载的版本

以Tomcat10为例

 3.点击Which version查看版本所需要的JRE版本

4.返回上一页下载和电脑和操作系统匹配的Tomcat

 

5. 安装完成后,点击bin目录下的startup.bat(linux系统下就运行startup.sh)

6.进入这个界面

出现乱码就在conf目录下的logging.properties文件修改编码为GBK

7.打开浏览器输入localhost:8080看看能不能打开Tomcat

看到页面有小老虎表示成功

如果不成功,可能是默认端口8080被占用了,可以先把端口停一下

                                或者切换默认端口在conf目录下的server.xml文件修改port

 

 三、目录结构



打开webapps目录就可以看到要部署的项目

启动Tomcat可以根据项目的部署目录路径添加到http://localhost:8080后面来访问项目。

(注意:项目的访问路径!=项目的部署目录路径,访问路径是可以通过配置文件调的,但是太复杂了,直接在idea里面调就行) 

 

四、Web项目的目录结构

放在webapps目录下的每一个web项目的目录结构是有要求的,如下

下面的资源除了WEB-INF目录里面的内容不能通过浏览器直接访问,其他都行

 

 

五、Web项目部署到Tomcat的方式  

方式1 直接将编译好的项目放在webapps目录下 (已经演示)

方式2 将编译好的项目打成war包放在webapps目录下,tomcat启动后会自动解压war包(其实和第一种一样)

方式3 可以将项目放在非webapps的其他目录下,在tomcat中通过配置文件指向app的实际磁盘路径

方式3

在磁盘的自定义目录上准备一个要部署的项目

在tomcat的conf下创建Catalina/localhost目录,并在该目录下准备一个app.xml文件

 xml文件内容如下

<!-- 
    path: 项目的访问路径,也是项目的上下文路径,就是在浏览器中,可以不用和项目的名称一样
    docBase: 项目在磁盘中的实际路径
 -->
<Context path="/app" docBase="D:\mywebapps\app" />

启动Tomcat,验证一下

 

六、Webapps目录下的五个原装web项目的访问

以下的访问项目的url都是没有配置文件改过的,都是文件部署路径

访问项目的url如果没有指定的资源,只到项目的名称时,都是默认访问项目下的index文件。

比如http://localhost:8/docs这个url进去是直接访问docs目录下的index.html页面文件

examples,host-manager,manager也都一样。

ROOT不一样,它甚至项目名字都不用输入

直接http://localhost:8就可以访问ROOT目录下的index文件了

ROOT

访问这个项目的资源的url可以不用项目的名称。

以下两个个url的网页都是一样的。

host-manager和manager

配置账号和密码

这两个项目是需要Tomcat的账号和密码的,需要我们先在配置文件目录conf下的tomcat-users.xml文件里面配置用户的账号和密码

配置内容如下

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">	
	<role rolename="admin-gui"/>
	<role rolename="admin-script"/>
	<role rolename="manager-gui"/>
	<role rolename="manager-script"/>
	<role rolename="manager-jmx"/>
	<role rolename="manager-status"/>
	<user 	username="admin" 
			password="123456" 
			roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"
	/>
</tomcat-users>

启动Tomcat,浏览器输入http://localhost:8/manager 或者 http://localhost:8/host-manager

输入账号admin和密码123456(配置文件自己定义) 

打开下面的两个页面之一

host-manager打开的页面

管理Tomcat的一些主机

manager打开的页面

管理Tomcat下的项目

 访问Tomcat部署的项目的url组成

七、IDEA中开发并部署运行WEB项目

1.步骤

以下步骤没有使用Maven和Springboot

IDEA关联本地Tomcat

IDEA创建web工程 

IDEA部署-运行web项目

2.IDEA关联本地Tomcat

(1)在创建项目前设置本地tomcat,也可以在打开某个项目的状态下找到settings

(2)找到 Build,Execution,Eeployment下的Application Servers ,找到+号

(3)选择Tomcat Server

(4)选择tomcat的安装目录  

(5)点击ok

(6)关联完毕

3. IDEA创建web工程 

(1)推荐先创建一个空项目,这样可以在一个空项目下同时存在多个modules,不用后续来回切换之前的项目,当然也可以忽略此步直接创建web项目

(2)检查项目的SDK,语法版本,以及项目编译后的输出目录 (下载Tomcat时对应的适配JRE) 

 

(3)先创建一个普通的JAVA项目  

(4)检查各项信息是否填写有误  

(5)创建完毕后,为项目添加Tomcat依赖  

 

 (6)选择modules,添加 framework support

注意:如果找不到这个选项,就到help->search actions搜索这个选项,先选中模块再进行

(7)选择Web Application 注意Version,勾选 Create web.xml  

(8)删除index.jsp ,替换为 index.html

(9)处理配置文件  

  • 在工程下创建resources目录,专门用于存放配置文件(都放在src下也行,单独存放可以尽量避免文件集中存放造成的混乱)

  • 标记目录为资源目录,不标记的话则该目录不参与编译

标记完成后,显示效果如下

(10) 处理依赖jar包问题

  • 在WEB-INF下创建lib目录

  • 必须在WEB-INF下,且目录名必须叫lib!!!

  • 复制jar文件进入lib目录

  • 将lib目录添加为当前项目的依赖,后续可以用maven统一解决(先放一个jar包进去才有Add as Library这个选项)

  • 环境级别推荐选择module 级别,降低对其他项目的影响,name可以空着不写

  • 查看当前项目有那些环境依赖

  • 在此位置,可以通过-号解除依赖

  •  

(11)添加静态资源 

下面框住的部分,4个目录,css,js,img

4.IDEA部署-运行web项目

(1)检查idea是否识别modules为web项目并存在将项目构建成发布结构的配置

A.就是检查工程目录下,web目录有没有特殊的识别标记

B.以及artifacts下,有没有对应 _war_exploded,如果没有,就点击+号添加

完成AB步骤后,项目模块出现下图的黄色部分

(2)运行配置界面  

(3)点击+号,添加本地tomcat服务器  

(4)因为IDEA 只关联了一个Tomcat,红色部分就只有一个Tomcat可选

(5)选择Deployment,通过+添加要部署到Tomcat中的artifact

(6)applicationContext中是默认的项目上下文路径,也就是url中需要输入的路径,这里可以自己定义,可以和工程名称不一样,也可以不写,但是要保留/,我们这里暂时就用默认的  

(7) 点击apply 应用后,回到Server部分. After Launch是配置启动成功后,是否默认自动打开浏览器并输入URL中的地址,HTTP port是Http连接器目前占用的端口号

(8)点击OK后,启动项目,访问测试  

绿色箭头是正常运行模式

"小虫子"是debug运行模式

点击后,查看日志状态是否有异常

浏览器自动打开并自动访问了index.html欢迎页  

八.IDEA部署并运行项目的原理  

  • idea并没有直接进将编译好的项目放入tomcat的webapps中

  • idea根据关联的tomcat,创建了一个tomcat副本,将项目部署到了这个副本中

  • idea的tomcat副本在C:\用户\当前用户\AppData\Local\JetBrains\IntelliJIdea2022.2\tomcat\中

  • idea的tomcat副本并不是一个完整的tomcat,副本里只是准备了和当前项目相关的配置文件而已

  • idea启动tomcat时,是让本地tomcat程序按照tomcat副本里的配置文件运行

  • idea的tomcat副本部署项目的模式是通过conf/Catalina/localhost/*.xml配置文件的形式实现项目部署的

 

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

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

相关文章

Midjourney技巧-生成拟人化动物(做你的品牌形象代言人)

​ 前言/introduction 如何用Midjourney生成这种时尚潮流的动物拟人图片&#xff1f; 用来做你的品牌形象代言人也是不赖&#xff01; ​ 关键词/personify 生成这种动物拟人化的图片其实主要在关键词-拟人化personify 比如&#xff0c;一只拟人化的老鼠/An anthropomorphic…

惊!北京三害、上海四毒、广东五虎,谁才是互联网界的“拼命三郎”?

在互联网江湖中&#xff0c;流传着这样一份神秘的“工作强度排名”&#xff0c;它们以地域为划分&#xff0c;将那些被公认为加班狂魔的互联网大厂归为了“北京三害”、“上海四毒”和“广东五虎”。 这份名单一出&#xff0c;让人不禁哑然失笑&#xff0c;同时也让人深思&…

【系统架构设计】计算机网络

【系统架构设计】计算机网络 网络架构与协议网络互联模型OSI/RM 结构模型TCP/IP结构模型IPv6 局域网与广域网局域网特点 网络互连与常用设备网络互联设备交换技术路由技术 网络存储技术 网络架构与协议 网络互联模型 OSI/RM 结构模型 1977年&#xff0c;国际标准化组织为适应…

framebuffer屏幕显示接口(linux)

framebuffer &#xff1a; 帧缓存、帧缓冲技术 Linux内核为应用提供的一套显示相关接口 流程&#xff1a; 1. 打开显示设备&#xff08;/dev/fb0&#xff09; 2. 获取显示设备相关参数 3. 建立内存映射 4. 写入RGB颜色值 5. 解除映射 6. 关闭显示…

【深度学习】什么是自回归模型?

文章目录 自回归模型的数学表达自回归模型的特点示例自回归模型在机器学习中的应用总结扩散模型与自回归模型的区别扩散模型在TTS(文本转语音)中的应用总结自回归模型(Autoregressive Model, AR Model)是一种用于时间序列分析和生成的统计模型。它的核心思想是预测变量(通…

Java:成员内部类

文章目录 匿名内部类代码讲解new 类new接口 特点&#xff1a;作用&#xff1a;在开发中的应用场景&#xff1a; 成员内部类&#xff08;了解&#xff09;静态内部类&#xff08;了解&#xff09;局部内部类&#xff08;了解&#xff09; 匿名内部类 一种特殊的局部内部类&…

绘唐科技为什么是全网最强AI推文应用

绘唐科技之所以被称为全网最强AI推文应用&#xff0c;主要有以下几个原因&#xff1a; 绘唐AIGC阿祖https://qvfbz6lhqnd.feishu.cn/wiki/D3YLwmIzmivZ7BkDij6coVcbn7W 先进的AI技术&#xff1a;绘唐科技采用了最先进的自然语言处理和机器学习算法&#xff0c;能够快速准确地生…

掌握高可用核心:Keepalived 铸就坚不可摧的集群防线

目录 一.初识keepalived 二.VRRP工作模式 1.三种状态 2.选举机制 三.Keepalived 架构 四. Keepalived环境准备 五.KeepAlived 配置说明 1.配置文件组成部分 2.配置语法说明&#xff1a;全局配置 3.配置虚拟路由器 4.启用keepalived日志功能 5.实现独立子配置文件 六…

8月报名 | 海克斯康-MSC设计与仿真行业研讨会深圳站

您好&#xff01;感谢您长期以来对优飞迪科技与海克斯康的关注与支持。我们诚邀您参加8月23日的海克斯康-MSC设计与仿真行业研讨会深圳站活动&#xff0c;本次会议主要就目前大家所关注的电子热流体、电子电器噪声等热点仿真问题展开讨论&#xff0c;为大家提供工程实际问题的解…

BCNet

bilateral boundary extraction module (BBEM)&#xff0c;receptive field block (RFB). attention-driven cross-layer feature interaction modules (ACFIMs)&#xff0c;global feature integration modules (GFIMs) global max pooling (GMP) 作者未提供代码

input系统之InputReader

1.InputReader启动 InputReader和InputDispatcher是IMS中的两个重要的线程&#xff0c;InputReader主要负责从Eventhub获取事件&#xff0c;然后将事件进行处理&#xff0c;并将封装好的EventEntry事件交给InputDispatcher的去进行分发&#xff1b;InputDispatcher主要负责将输…

LeetCode 热题 HOT 100 (025/100)【宇宙最简单版】

【二叉树】No. 0124 二叉树中的最大路径和 【困难】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你…

12.C基础_字符串相关函数

字符串长度strlen 头文件 #include <string.h> 函数声明 size_t strlen(const char *s); 返回值&#xff1a;long型的字符串长度 s&#xff1a;要计算长度的字符串&#xff0c;必须以 \0 结尾 注意&#xff1a;strlen计算的长度是以 \0 为结尾&#xff0c;而sizeo…

【书生大模型实战营(暑假场)闯关材料】入门岛:第1关 Linux 基础知识

【书生大模型实战营&#xff08;暑假场&#xff09;闯关材料】入门岛&#xff1a;第1关 Linux 基础知识 1. 使用VScode进行SSH远程连接服务器2. 端口映射及实例参考文献 这一博客主要介绍使用VScode进行服务器远程连接及端口映射。 1. 使用VScode进行SSH远程连接服务器 安装V…

一个基于 vue 的强大表单和高性能表格组件,简洁API设计,支持虚拟树,列拖拽,懒加载,快捷菜单(附源码)

前言 在现代Web应用开发中&#xff0c;表单和表格是两个核心组件&#xff0c;它们对于数据展示和用户交互至关重要。然而&#xff0c;现有的解-决方案往往存在一些痛点&#xff0c;如不够灵活、性能问题、以及难以实现复杂功能等。这些问题限制了开发者的创造力&#xff0c;也…

树莓派开发相关知识二

1、相关术语 树莓派装载的芯片&#xff1a;BCM2835是一个MCU微处理器&#xff0c;它可以理解为CPU其它模块的组合。 GPIO&#xff1a;General-purpose input/output&#xff0c;通用型输入输出&#xff0c;其接脚可以供使用者由程控自由使用&#xff0c;PIN脚依现实考量可作为…

java或者sh脚本实现 实现 mysql 数据库指定表,定时导出并导入指定数据库并切换指定字段名(适合linux和windows)

定时导出指定数据库的指定表导出到指定数据库 一、Java实现 1、contronller Slf4j Controller public class BackupController {AutowiredBackupService backupService;// 备份 // ResponseBody // PostMapping("/backup/backupByfile")Scheduled(cron&quo…

音视频开发

通过多线程分别获取高分辨率(1920 * 1080)和低分辨率(1280 * 720) 初始化VI模块 初始化HIGH VENC模块 初始化LOW VENC模块 初始化RGA模块 绑定 VI和HIGH VENC 绑定 VI和RGA 创建线程 HIGH VENC处理 RGA处理 LOW VENC处理 销毁 QP原理的讲解 QP参数调节&#xff0c;指的是量化…

C:每日一题:二分查找

1、知识介绍&#xff1a; 1.1 概念&#xff1a; 二分查找是一种在有序数组中查找某一特定元素的搜索算法 1.2 基本思想&#xff1a; 每次将待查找的范围缩小一半&#xff0c;通过比较中间元素与目标元素的大小&#xff0c;来决定是在左半部分还是右半部分继续查找。 举个生…

进程状态和线程

一、wait&#xff08;阻塞调用&#xff09; pid_t wait(int *status); 1.功能&#xff1a;&#xff08;1&#xff09;获取子进程退出状态 &#xff08;2&#xff09;.回收资源 //会让僵尸态的子进程销毁 参数 int *status: 指向一个整数的指针&#xff0c;wait …