【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南
文章目录
- 🌍一. WEB 开发
- ❄️1. 介绍
- ❄️2. BS 与 CS 开发介绍
- ❄️3. JavaWeb 服务软件
- 🌍二. Tomcat
- ❄️1. Tomcat 下载和安装
- ❄️2. Tomcat 启动
- ❄️3. Tomcat 启动故障排除
- ❄️4. Tomcat 服务中部署 WEB 应用
- ❄️5. 浏览器访问 Web 服务过程详解
- 🌍 三. IDEA中创建JavaWeb工程
- ❄️1. 流程
- ❄️2. 注意事项和细节
🙋♂️ 作者:@whisperrr.🙋♂️
👀 专栏:JavaWeb👀
💥 标题:【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南💥
❣️ 寄语:比较是偷走幸福的小偷❣️
🌍一. WEB 开发
❄️1. 介绍
1.WEB,在英语中 web 表示网/网络资源(页面,图片,css,js)意思,它用于表示 WEB 服务器(主机)供浏览器访问的资源
2. WEB 服务器(主机)上供外界访问的 Web 资源分为:
- 静态 web 资源(如 html 页面):指 web 页面中供人们浏览的数据始终是不变。
- 动态 web 资源,比如 Servlet(java)、PHP 等。
3.静态 web 资源开发技术
- Html、CSS,js 等
4.常用动态 web 资源开发技术:Servlet、SpringBoot、SpringMVC、PHP、ASP.NET
❄️2. BS 与 CS 开发介绍
1 BS 开发
B: browser(浏览器, 种类太多 ff, chrome, ie, edge,)
S: Server(服务端, 考虑很多)
笔者对 BS 的解读
(1) 兼容性 , 因为浏览器的种类很多,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常
(2) 安全性, 通常情况下,BS 安全性不如 CS 好控制
(3) 易用性, BS 好于 CS, 浏览器电脑有
(4) 扩展性, BS 相对统一,只需要写 Server
❄️3. JavaWeb 服务软件
1 JavaWeb 服务器软件介绍
学习 JavaWeb 开发,需要先安装 JavaWeb 服务软件【我们把安装了 JavaWeb 服务软件主机称为 Web 服务器/JavaWeb 服务器】,然后在 web 服务器中开发相应的 web 资源。[Javaweb 服务器,Mysql 服务器]
2.学习 JavaWeb 开发,为什么必须要先装 WEB 服务软件?
答:需要安装, 理解 Tomcat 本质就是一个 Java 程序, 但是这个 Java 程序可以处理来自浏览器的 HTTP 请求, 和我们前面讲的 java 网络服务(多人聊天, Server)常用 JavaWeb 服务软件.
3.Tomcat:由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。
4.Jboss:是一个遵从 JavaEE 规范的、它支持所有的 JavaEE 规范(免费)。
5.GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款商业服务器,达到产品级质量(应用很少)。
6.Resin:是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持, 性能也比较优良(收费)。
7.WebLogic【很猛】:是 Oracle 公司的产品,支持 JavaEE 规范, 而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。
🌍二. Tomcat
❄️1. Tomcat 下载和安装
- Tomcat 官方站点:http://tomcat.apache.org/
- 获取 Tomcat 安装程序包
- tar.gz文件是Linux操作系统下的安装版本
- zip文件是Windows系统下的压缩版本
- 使用 zip 包安装 Tomcat
- 找到你需要用的 Tomcat 版本对应的 zip 压缩包,解压到需要安装的目录即可
- 笔者解压在 D:\program\apache-tomcat-8.0.50
- which version https://tomcat.apache.org/whichversion.html ,可以看到Tomcat仍然是支持jsp 和 el
Tomcat 最好的小伙伴是 JSP+EL
❄️2. Tomcat 启动
-
双击 bin 目录下的 startup.bat 文件
-
输入 http://localhost:8080/,显示如下界面代表安装成功, 默认在 8080 端口
-
注意,不要关闭黑窗口,关闭了,tomcat 服务就停止了.
-
小技巧:
(1) 在开发中,我们可以看一下哪些端口在监听
(2)netstat -anb
(使用管理员权限)
❄️3. Tomcat 启动故障排除
- 双击
startup.bat
文件,出现一个小黑窗口然后就没了,原因是因为没有配置好JAVA_HOME 环境变量Tomcat 本质是一个 Java 程序,所以要 jdk, 会去根据 JAVA_HOME 使用指定 jdk - JAVA_HOME 必须全大写
- JAVA_HOME 中间必须是下划线
- JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录
- 端口 8080 被占用 [查看端口 netstat -anb, 使用的非常多]
- 如果其它服务程序占用了 8080 端口,可以关闭该服务,或者修改 Tomcat 服务的默认
端口 8080 [后面讲] - 配置 JAV A_HOME 环境变量
一图知Tomcat目录结构
- server.xml 用于配置 tomcat 的基本设置(启动端口,关闭端口, 主机名, 修改 Tomcat 服务端口)=
- web.xml 用于指定 tomcat 运行时配置(比如 servlet 等…)
- webapps 目录是存放 web 应用,就是网站
❄️4. Tomcat 服务中部署 WEB 应用
1.什么是Web应用
WEB应用是多个web资源的集合。简单的说,可以把web应用理解为硬盘上的一个目录,
这个目录用于管理多个web资源。
2.Web应用通常也称之为web应用程序,或web工程,通俗的说 就是网站。
3.WEb应用组成
一个 WEB 应用由多个 WEB 资源或其它文件组成,包括 html 文件、css 文件、js 文件、动态 web 页面、java 程序、支持 jar 包、配置文件等。开发人员在开发 web 应用时,按照规定目录结构存放这些文件。否则,在把 web 应用交给 web 服务器管理时,不仅可能会使web 应用无法访问,还会导致 web 服务器启动报错。
4.JavaWeb程序/应用/工程目录结构
部署方式1: 将 web 工程的目录拷贝到 Tomcat 的 webapps 目录下
- news Web工程(目前都是静态资源 html, 图片)
- 将该news目录/文件夹 拷贝到 Tomcat 的webapps目录下
- 浏览器输入: http://ip[域名]:port/news/子目录…/文件名
部署方式2:通过配置文件来部署(只做介绍)
1.在Tomcat 下的 conf 目录\Catalina\localhost\ 下,配置文件,比如hsp.xml(提醒:知道Tomcat通过配置,可以把一个web应用,映射到指定的目录,可以解决磁盘空间分配的问题.)
2.访问web工程: http://ip[域名]:port/hsp/index.html 就表示访问 D:\album 目录下的index.html
ROOT 的工程的访问
- 在浏览器地址栏中输入访问地址如下:http://ip[域名]:port,没有Web工程/应用名时,默认访问的是 ROOT 工程
- 在浏览器地址栏中输入的访问地址如下: http://ip[域名]:port/工程名/ ,没有资源名,默认访问 index.jsp 页面
❄️5. 浏览器访问 Web 服务过程详解
下面,我们对浏览器访问 web 服务器资源(html,css,图片,js)做详解,通过一个时序图加强对这个重要过程的理解, 重要,核心
🌍 三. IDEA中创建JavaWeb工程
说明:IDEA2020.2.2 版本创建JavaWeb工程 和以前的版本变化较大.~
❄️1. 流程
一、新建javaweb工程
1.先创建一个java项目
2.在新建好的项目上点击右键,点Add Framework Support
3.点击导入Web Application,点击ok即可
二、配置TomCat&启动项目
1.点击右上角的编辑配置
2.点击+号,找到Tomcat Server
3.选择一个本地下载好的Tomcat
Name :
在命名时,建议写成JavaWeb 名,比如news_tomcat8 或者 crm_tomcat8
这样,当有多个web项目时,就可以明确应当启动哪个web项目,不乱
4.在右边的部署栏Deployment中点击+号,添加构建
+:
将要部署的web工程,加入到Tomcat运行实例中.
-:
从Tomcat实例中,删除不需要的web 模块
5.这里可以选择只保留“/”
Application Context 是工程路径
建议改成当前Web工程名(项目名),比如 /news , /crm 等, 更好区分.
6.选择热加载,点击ok完成运行环境部署
HTTP port 可以指定运行Tomcat端口, 不会修改server.xml, 只是针对当前配置在 Open browser After launch 可以下拉,选择默认运行的浏览器
7.运行Tomcat,访问项目:这里注意要直接选择Tomcat,点击运行按钮,而不是在jsp页面上右键点击运行,这样会访问不到页面
8.可以看到tomcat启动成功后,会自动跳转到浏览器打开页面
到这里,jsp页面的访问已经没问题了
❄️2. 注意事项和细节
1.热加载选项说明
(1) on update action : 表示当我们更新操作是, Tomcat 会自动更新类和资源 (当jsp/html文件修改时,可以生效, 但是如果你修改的 java 文件, 需要 Redepoly 才会生效)
(2) on frame deactivation : 表示 IDEA 失去焦点(比如最小化), 也会导致 jsp/html 发生更新 , 但是 java 修改了,还是需要 redeploy.
2.端口修改
这里修改的端口, 只会影响到当前的项目,而不是去修改
server.xml
3.out 目录是什么
当 tomcat 启动时,会生成 out 目录,该目录就是 原项目资源的映射,我们浏览器访问的资源是 out 目录
4.当我们从外部拷贝资源到项目(图片, 文件, js , css 等), 如果出现 404 不能访问错误, 解决方式 rebulid project -> 重启 Tomcat
5.一图了解web项目结构
相关文章:

【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南
文章目录 🌍一. WEB 开发❄️1. 介绍 ❄️2. BS 与 CS 开发介绍 ❄️3. JavaWeb 服务软件 🌍二. Tomcat❄️1. Tomcat 下载和安装 ❄️2. Tomcat 启动 ❄️3. Tomcat 启动故障排除 ❄️4. Tomcat 服务中部署 WEB 应用 ❄️5. 浏览器访问 Web 服务过程详…...

安卓日常问题杂谈(一)
背景 关于安卓开发中,有很多奇奇怪怪的问题,有时候这个控件闪一下,有时候这个页面移动一下,这些对于快速开发中,去查询,都是很耗费时间的,因此,本系列文章,旨在记录安卓…...

Kitchen Racks 2
Kitchen Racks 2 吸盘置物架 Kitchen Racks-CSDN博客...

嵌入式学习笔记-杂七杂八
文章目录 连续波光纤耦合激光器工作原理主要特点应用领域设计考虑因素 数值孔径(Numerical Aperture,简称NA)数值孔径的定义数值孔径的意义数值孔径的计算示例数值孔径与光纤 四象限探测器检测目标方法四象限划分检测目标的步骤1. 数据采集2.…...

14-7C++STL的stack容器
(一)stack容器的入栈与出栈 (1)stack容器的简介 stack堆栈容器,“先进后出”的容器,且stack没有迭代器 (2)stack对象的默认构造 stack采用模板类实现,stack对象的默认…...

Vue 3 中的响应式系统:ref 与 reactive 的对比与应用
Vue 3 的响应式系统是其核心特性之一,它允许开发者以声明式的方式构建用户界面。Vue 3 引入了两种主要的响应式 API:ref 和 reactive。本文将详细介绍这两种 API 的用法、区别以及在修改对象属性和修改整个对象时的不同表现,并提供完整的代码…...

物业巡更系统助推社区管理智能化与服务模式创新的研究与应用
内容概要 在现代社区管理中,物业巡更系统扮演着至关重要的角色。首先,我们先来了解一下这个系统的概念与发展背景。物业巡更系统,顾名思义,是一个用来提升物业管理效率与服务质量的智能化工具。随着科技的发展,传统的…...

windows蓝牙驱动开发-生成和发送蓝牙请求块 (BRB)
以下过程概述了配置文件驱动程序生成和发送蓝牙请求块 (BRB) 应遵循的一般流程。 BRB 是描述要执行的蓝牙操作的数据块。 生成和发送 BRB 分配 IRP。 分配BRB,请调用蓝牙驱动程序堆栈导出以供配置文件驱动程序使用的 BthAllocateBrb 函数。;初始化 BRB…...

Linux网络之序列化和反序列化
目录 序列化和反序列化 上期我们学习了基于TCP的socket套接字编程接口,并实现了一个TCP网络小程序,本期我们将在此基础上进一步延伸学习,实现一个网络版简单计算器。 序列化和反序列化 在生活中肯定有这样一个情景。 上图大家肯定不陌生&a…...

linux设置mysql远程连接
首先保证服务器开放了mysql的端口 然后输入 mysql -u root -p 输入密码后即可进入mysql 然后再 use mysql; select user,host from user; update user set host"%" where user"root"; flush privileges; 再执行 select user,host from user; 即可看到变…...

react-native网络调试工具Reactotron保姆级教程
在React Native开发过程中,调试和性能优化是至关重要的环节。今天,就来给大家分享一个非常强大的工具——Reactotron,它就像是一个贴心的助手,能帮助我们更轻松地追踪问题、优化性能。下面就是一份保姆级教程哦! 一、…...

erase() 【删数函数】的使用
**2025 - 01 - 25 - 第 48 篇 【函数的使用】 作者(Author) 文章目录 earse() - 删除函数一. vector中的 erase1 移除单个元素2 移除一段元素 二. map 中的erase1 通过键移除元素2 通过迭代器移除元素 earse() - 删除函数 一. vector中的 erase vector 是一个动态数组&#x…...

性能测试丨内存火焰图 Flame Graphs
内存火焰图的基本原理 内存火焰图是通过分析堆栈跟踪数据生成的一种图形化表现,能够展示应用程序在运行时各个函数的内存占用情况。火焰图的宽度代表了函数占用的内存量,而火焰的高度则显示了函数在调用栈中的层级关系。通过这种可视化方式,…...

AIGC的企业级解决方案架构及成本效益分析
AIGC的企业级解决方案架构及成本效益分析 一,企业级解决方案架构 AIGC(人工智能生成内容)的企业级解决方案架构是一个多层次、多维度的复杂系统,旨在帮助企业实现智能化转型和业务创新。以下是总结的企业级AIGC解决方案架构的主要组成部分: 1. 技术架构 企业级AIGC解决方…...

Linux 入门 常用指令 详细版
欢迎来到指令小仓库!! 宝剑锋从磨砺出,梅花香自苦寒来 什么是指令? 指令和可执行程序都是可以被执行的-->指令就是可执行程序。 指令一定是在系统的每一个位置存在的。 1.ls指令 语法: ls [选项][目…...

【R语言】流程控制
R语言中,常用的流程控制函数有:repeat、while、for、if…else、switch。 1、repeat循环 repeat函数经常与 break 语句或 next 语句一起使用。 repeat ({x <- sample(c(1:7),1)message("x ", x, ",你好吗?")if (x …...

猿人学第一题 js混淆源码乱码
首先检查刷新网络可知,m参数被加密,这是一个ajax请求 那么我们直接去定位该路径 定位成功 观察堆栈之后可以分析出来这应该是一个混淆,我们放到解码平台去还原一下 window["url"] "/api/match/1";request function…...

计算机组成原理(2)王道学习笔记
数据的表示和运算 提问:1.数据如何在计算机中表示? 2.运算器如何实现数据的算术、逻辑运算? 十进制计数法 古印度人发明了阿拉伯数字:0,1,2,3,4,5,6&#…...

【AI日记】25.01.26
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales 读书 书名:自由宪章 律己 AI:6 小时作息:00:30-8:30短视频:大于 1 小时读书和写作&a…...

三. Redis 基本指令(Redis 快速入门-03)
三. Redis 基本指令(Redis 快速入门-03) 文章目录 三. Redis 基本指令(Redis 快速入门-03)1. Redis 基础操作:2. 对 key(键)操作:3. 对 DB(数据库)操作4. 最后: Reids 指定大全(指令文档): https://www.redis.net.cn/order/ Redis…...

设计模式的艺术-代理模式
结构性模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解代理模式 代理模式(Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式是一种对象结构型模式。 代理模式类型较多…...

C#新语法
目录 顶级语句(C#9.0) using 全局using指令(C#10.0) using资源管理问题 using声明(C#8.0) using声明陷阱 错误写法 正确写法 文件范围的命名空间声明(C#10.0) 可空引用类型…...

微信小程序压缩图片
由于wx.compressImage(Object object) iOS 仅支持压缩 JPG 格式图片。所以我们需要做一下特殊的处理: 1.获取文件,判断文件是否大于设定的大小 2.如果大于则使用canvas进行绘制,并生成新的图片路径 3.上传图片 async chooseImage() {let …...

通义灵码插件保姆级教学-IDEA(安装及使用)
一、JetBrains IDEA 中安装指南 官方下载指南:通义灵码安装教程-阿里云 步骤 1:准备工作 操作系统:Windows 7 及以上、macOS、Linux; 下载并安装兼容的 JetBrains IDEs 2020.3 及以上版本,通义灵码与以下 IDE 兼容&…...

windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】
注意版本依赖【本实验版本如下】 Hadoop 3.1.1 spark 2.3.2 scala 2.11 1.依赖环境 1.1 java 安装java并配置环境变量【如果未安装搜索其他教程】 环境验证如下: C:\Users\wangning>java -version java version "1.8.0_261" Java(TM) SE Runti…...

倍频增量式编码器--角度插值法输出A,B(Aangular Interpolation)
问题是: 最大速度,周期刻度,最小细分刻度,可以计算得到: 结论: 按照最高速度采样;数字A,B输出间隔时间:按照计算角度 插入细分角度运算算时间(最快速度)&a…...

LSM对于特殊数据的优化手段
好的,我现在需要帮助用户理解如何针对不同的特殊工作负载优化LSM树结构。用户提到了四种情况:时态数据、小数据、半排序数据和追加为主的数据。我需要分别解释每种情况下的优化方法,并参考用户提供的LHAM的例子,可能还有其他例子。…...

83,【7】BUUCTF WEB [MRCTF2020]你传你[特殊字符]呢
进入靶场 图片上这个人和另一道题上的人长得好像 54,【4】BUUCTF WEB GYCTF2020Ezsqli-CSDN博客 让我们上传文件 桌面有啥传啥 /var/www/html/upload/344434f245b7ac3a4fae0a6342d1f94a/123.php.jpg 成功后我就去用蚁剑连了,连不上 看了别的wp知需要…...

Go语言入门指南(二): 数据类型
文章创作不易,麻烦大家点赞关注转发一键三连。 在上一篇文章,我们已经完成了开发环境的搭建,成功创建了第一个“Hello, World”程序,并且对变量的声明和初始化有了初步的认识。在这篇文章中,我们将主要介绍Go语言的数据…...

2025.1.26机器学习笔记:C-RNN-GAN文献阅读
2025.1.26周报 文献阅读题目信息摘要Abstract创新点网络架构实验结论缺点以及后续展望 总结 文献阅读 题目信息 题目: C-RNN-GAN: Continuous recurrent neural networks with adversarial training会议期刊: NIPS作者: Olof Mogren发表时间…...