web项目的初始化
Tomcat 安装配置
Tomcat 官方站点:Apache Tomcat® - Welcome! 。
安装
-  
得到下载的安装包(一般是 zip 文件),并解压到你指定的目录(建议不要解压在 c 盘);(这里以 windows10 系统为例,下载的是 8.0.50 版本);

 -  
找到 bin 目录下的
startup.bat文件,双击。出现黑色窗口后不要关闭,不要关闭,不要关闭。此时 Tomcat 已经装载完毕;黑色窗口如下:

 -  
校验。在浏览器输入 url:
localhost:8080,若显示了以下图片,则算成功;

 
安装错误排查
- 双击 startup.bat 文件,出现一个小黑窗口然后就没了,原因是因为没有配置 JAVA_HOME 环境变量。Tomcat 本质是一个 Java 程序,所以要 jdk, 会去根据 JAVA_HOME 使用指定 jdk;
 - JAVA_HOME 必须全大写;
 - JAVA_HOME 中间必须是下划线;
 - JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录;
 - 端口 8080 被占用 
[查看端口cmd指令: netstat -anb, 使用的非常多]。如果其它服务程序占用了 8080 端口,可以关闭该服务,或者修改 Tomcat 服务的默认配置文件中的端口 8080(通过 Tomcat 目录下的server.xml文件进行修改); 
目录结构

补充:
- conf 目录下的 
server.xml文件主要用于配置 Tomcat 的基本设置; 
Tomcat 的运行与停止
这里仅仅只介绍不依靠其他 IDE 的情况下的最原始的运行方法:
- 运行。在 bin 目录下启动控制台,执行命令 
catalina run; - 停止。有两种方案: 
- 直接点击运行后出现的黑色窗口的叉号;
 - 双击 bin 目录下的 
shutdown.bat; 
 
Web 应用概述
web 应用介绍
- WEB 应用是多个 web 资源的集合。简单的说,可以把 web 应用理解为硬盘上的一个目录,这个目录用于管理多个web资源。
 - Web 应用通常也称之为 web 应用程序,或 web 工程,通俗的说就是网站。
 - 在 Tomcat 中,若没有额外的 web 应用,并且请求的地址没有工程名的话,会默认调用 webapps 下的 ROOT 应用,也就是我们在安装成功后显示的页面;
 
web 应用组成
一个 WEB 应用由多个 WEB 资源或其它文件组成,包括 html 文件、css 文件、js 文件、动态 web 页面、java 程序、支持 jar 包、配置文件等。
 开发人员在开发 web 应用时,按照规定目录结构存放这些文件。否则,在把 web 应用交给 web 服务器管理时,不仅可能会使 web 应用无法访问,还会导致 web 服务器启动报错。
web 应用/程序/工程目录结构
基本结构

解读:
- 图中的 webapps 下的目录指的是工程目录,一般以工程名字来命名。例如家居项目可以命名为 jiaju;
 
Web 应用的部署
原生的部署
- 将满足 web 应用目录结构的 war 包或者文件夹放入 webapps 文件夹中。对于 war 包 Tomcat 在运行的时候会自动解压成文件夹形式的项目文件;
 - 启动 Tomcat;
 - 在浏览器输入 
http://ip[域名]:port/项目名/子目录../文件名即可访问相关资源; 
通过配置文件部署
通过配置 server.xml 文件来部署:
 在 <Host>...</Host> 标签中配置如下信息:
<context path="/jiaju" docBase="D:\target" />;-  
- 这个配置的意义在于当以/jiaju 的形式请求资源的时候,Tomcat 会默认先访问 
"D:\target"下的 web 应用。也就是说我们的 web 应用可以不用放在 webapps 目录下,为我们自由存放 web 资源提供了支持; 
 - 这个配置的意义在于当以/jiaju 的形式请求资源的时候,Tomcat 会默认先访问 
 
通过自建 xml 文件部署:
-  
进入 Tomcat 安装目录下的
\conf\Catalina\localhost,创建一个与项目名称一样的文件——项目名.xml。例如,假如我有一个 web 项目名为“jiaju”:

 -  
在
jiaju.xml文件中做如下配置: 
<context path="/jiaju" docBase="D:\target" />。
总结
- 第一种方法比较普通,但是我们需要将编译好的项目重新 copy 到 webapps 目录下,多出了两步操作;
 - 第二种方法直接在 server.xml 文件中配置,但是从 tomcat5.0 版本开始后,server.xml 文件作为 tomcat 启动的主要配置文件,一旦 tomcat 启动后,便不会再读取这个文件,因此无法再 tomcat 服务启动后发布 web 项目;
 - 第三种方法是最好的,每个项目分开配置,tomcat 将以 
\conf\Catalina\localhost目录下的 xml 文件的文件名作为 web 应用的上下文路径,而不再理会<Context>中配置的 path 路径,因此在配置的时候,可以不写 path。通常我们使用第三种方法; 
IDEA 部署 JavaWeb 应用
这里以 IDEA2020.2 为示例。
新建 JavaWeb 工程
-  
先创建一个 java 项目:

 -  
在新建好的项目上点击右键,点 Add Framework Support:

 -  
点击导入 Web Application,点击 ok 即可:

 
配置 TomCat 并启动项目
-  
点击右上角的编辑配置;

 -  
点击+号,找到 Tomcat Server:

 -  
选择一个本地下载好的 Tomcat:
 
- Name : 在命名时,建议写与项目名字相关的名字,比如 news_tomcat8 或者 crm_tomcat8;
 - 这样,当有多个 web 项目时,就可以明确应当启动哪个 web 项目,不乱;

 
- 在右边的部署栏 Deployment 中点击+号,添加构建:
 
- +: 将要部署的 web 工程,加入到 Tomcat 运行实例中;
 -  
- : 从 Tomcat 实例中,删除不需要的 web 模块

 
 - : 从 Tomcat 实例中,删除不需要的 web 模块
 
- 修改工程路径,建议改成当前 Web 工程名 (项目名),比如 /news ,/crm 等, 更好区分:
 
- 可以选择只保留“/”;

 
- 选择热加载,点击 ok 完成运行环境部署:
 
- HTTP port 可以指定运行 Tomcat 端口, 不会修改 server.xml, 只是针对当前配置;
 - 在 Open browser After launch 可以下拉,选择默认运行的浏览器;

 
-  
运行 Tomcat,访问项目:这里注意要直接选择 Tomcat, 点击运行按钮,而不是在 jsp 页面上右键点击运行,这样会访问不到页面(JSP 不是静态资源):

 -  
可以看到 tomcat 启动成功后,会自动跳转到浏览器打开页面:

 
相关文章:
web项目的初始化
Tomcat 安装配置 Tomcat 官方站点:Apache Tomcat - Welcome! 。 安装 得到下载的安装包(一般是 zip 文件),并解压到你指定的目录(建议不要解压在 c 盘);(这里以 windows10 系统为例…...
29- 迁移学习 (TensorFlow系列) (深度学习)
知识要点 迁移学习: 使用别人预训练模型参数时,要注意别人的预处理方式。 常见的迁移学习方式: 载入权重后训练所有参数.载入权重后只训练最后几层参数.载入权重后在原网络基础上再添加一层全连接层,仅训练最后一个全连接层.训练数据是 10_m…...
工具篇(五)炫酷排版,尽在LaTeX:让你的文档飞升吧!
作者的话 作为一个文本排版工具,latex一直以来都备受科研工作者、学生和出版社的青睐。但是对于初学者来说,latex的学习曲线可能会有些陡峭。因此,我写这篇博客旨在为初学者提供一个简单易懂的latex教程,让大家能够快速入门并掌握…...
【蓝桥杯PythonB组备赛】【Acwing周赛】第93场 4867. 整除数 4868. 数字替换 python解
目录 A AcWing 4867. 整除数 1.题目描述 2.思路分析 3.代码实现 B AcWing 4868. 数字替换 1.题目描述 2.思路分析 3.代码实现 A AcWing 4867. 整除数 1.题目描述 2.思路分析 为什么不能直接暴力? 数据:1 ≤ n, k ≤ 10 ** 9 1s内最多…...
KNN学习报告
原理 KNN算法就是在其表征空间中,求K个最邻近的点。根据已知的这几个点对其进行分类。如果其特征参数只有一个,那么就是一维空间。如果其特征参数只有两个,那么就是二维空间。如果其特征参数只有三个,那么就是三维空间。如果其特征…...
Java奠基】方法的讲解与使用
目录 方法概述 方法的定义与调用 方法的重载 方法的值传递 方法概述 方法是程序中最小的执行单元,在实际开发中会将重复的具有独立功能的代码抽取到方法中,这样可以提高代码的复用性和可维护性。 方法的定义与调用 在Java中定义方法的格式都是相同…...
字符串hash
K - 子串翻转回文串2020ccpc河南省赛字符串哈希:将字符串变成x进制数对公式的理解:举个十进制数的例子:123456h[1]1;h[2]1*10212;h[3]12*103123;h[4]123*1041234;.........h[i]h[i-1]*xa[i];h[i]代表的恰巧是整个数的前缀用p[i]表…...
试题 算法训练 转圈游戏
问题描述 n个小伙伴(编号从0到n-1)围坐一圈玩游戏。按照顺时针方向给n个位置编号,从0到n-1。 最初,第0号小伙伴在第0号位置,第1号小伙伴在第 1 号位置,……,依此类推。 游戏规则如下&am…...
【uni-app教程】九、运行环境判断与跨端兼容
(1)开发环境和生产环境 uni-app 可通过 process.env.NODE_ENV 判断当前环境是开发环境还是生产环境,一般用于连接测试服务器或生产服务器的动态切换。 在HBuilderX 中,点击「运行」编译出来的代码是开发环境,点击「发行…...
扩展WSL2虚拟硬盘的大小
扩展WSL2虚拟硬盘的大小 1、在 Windows PowerShell 中终止所有 WSL 实例 wsl --shutdown2、查看 WSL 实例运行状态,确认关闭,并记住发行版的名称 wsl -l -v如果没有更改移动过发行版安装包位置,那么可以通过以下方法查找到发行版的安装包位…...
Win系统蓝牙设备频繁卡顿/断连 - 解决方案
Win系统蓝牙设备频繁卡顿/断连 - 解决方案前言常见网卡Intel无线网卡(推荐)Realtek无线网卡总结查看本机网卡解决方案更新驱动更换网卡(推荐)前言 无线网卡有2个模块,一个是WiFi,一个是蓝牙,因…...
Git学习入门(2)- 基本命令操作总结
个人博客:我的个人博客,各位大佬来玩1 创建 git仓库1.1 从现有工作目录中初始化新仓库需要到你需要用git管理的项目中输入以下命令:git init便会创建一个空的git项目,并且当前目录下会出现一个名为 .git 的目录, Git 需…...
SPringCloud:Nacos快速入门及相关属性配置
目录 一、Nacos快速入门 1、在父工程中添加spring-cloud-alilbaba的管理依赖 2、如果有使用eureka依赖,将其注释 3、添加nacos的客户端依赖 4、修改yml文件,注释eureka配置 5、启动测试 二、Nacos相关属性配置 1、Nacos服务分级存储 2、根据集群…...
医疗器械之模糊算法(嵌入式部分)
模糊控制 所谓模糊控制,就是对难以用已有规律描述的复杂系统,采用自然语言(如大,中,小)加以描述,借助定性的,不精确的以及模糊的条件语句来表达,模糊控制是一种基于语言的…...
网上销售笔记本系统
技术:Java、JSP等摘要:本文讲述了基于B/S模式的笔记本电脑在线销售系统的设计与实现。所谓的笔记本电脑在线销售系统是通过网站推广互联企业的笔记本电脑和技术服务,并使客户随时可以了解企业和企业的产品,为客户提供在线服务和订…...
MySQL基础查询操作
文章目录🚏 Select语句🚀 一、SQL底层执行原理🚬 (一)、查询的结构🚬 (二)、SQL语句的执行过程🚭 1、WHERE 为什么不包含聚合函数的过滤条件?(面试…...
English Learning - L2 语音作业打卡 小元音 [ʌ] [ɒ] Day9 2023.3.1 周三
English Learning - L2 语音作业打卡 小元音 [ʌ] [ɒ] Day9 2023.3.1 周三💌发音小贴士:💌当日目标音发音规则/技巧:🍭 Part 1【热身练习】🍭 Part2【练习内容】🍭【练习感受】🍓元音 [ʌ]&…...
Condition 源码解读
一、Condition 在并发情况下进行线程间的协调,如果是使用的 synchronized 锁,我们可以使用 wait/notify 进行唤醒,如果是使用的 Lock 锁的方式,则可以使用 Condition 进行针对性的阻塞和唤醒,相较于 wait/notify 使用…...
看完这篇入门性能测试
大家好,我是洋子。最近组内在进行服务端高并发接口的性能压测工作,起因是2023年2月2日,针对胡某宇事件进行新闻发布会直播,几十万人同时进入某媒体直播间,造成流量激增 从监控上可以看出,QPS到达某峰值后&…...
推导部分和——带权并查集
题解: 带权并查集 引言: 带权并查集是一种进阶的并查集,通常,结点i的权值等于结点i到根节点的距离,对于带权并查集,有两种操作需要掌握——Merge与Find,涉及到路径压缩与维护权值等技巧。 带…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
