系统架构与Tomcat的安装和配置
2023.10.16
今天是学习javaweb的第一天,主要学习了系统架构的相关知识和原理,下载了web服务器软件:Tomcat,并对其进行了配置。
系统架构
包括:C/S架构 和 B/S架构。
C/S架构:
Client / Server(客户端 / 服务器),特点:需要安装特定的客户端软件。
优点:
- 速度快(软件中的数据大部分都是集成到客户端软件当中的,很少量的数据从服务器端传送过来,所以C/S结构的系统速度快)
- 界面酷炫(有专门的语言实现界面,更加灵活)
- 体验好(速度又快,界面又酷炫,当然体验好了)
- 服务器压力小(因为大量的数据都是集成在客户端软件当中,所以服务器只需要传送很少的数据量)
- 安全(大量的数据是集成在客户端软件当中的,并且客户端有很多个,服务器虽然只有一个,服务器如果出现不可抗力因素,问题也不大,因为大量的数据在多个客户端上有缓存,有存储,所以从这个方面来说,C/S结构的系统比较安全)
缺点:
- 升级维护比较差劲(升级维护比较麻烦。成本比较高。每一个客户端软件都需要升级。有一些软件不是那么容易安装的)
B/S架构:
B/S(Browser / Server,浏览器 / 服务器),实际上B/S结构的系统还是一个C/S,只不过这个C比较特殊,这个Client是一个固定不变的浏览器软件。
优点:
- 升级维护方便,成本比较低。(只需要升级服务器端即可。)
- 不需要安装特定的客户端软件,用户操作极其方便。只需要打开浏览器,输入网址即可。
缺点:
- 速度较慢(因为所有的数据都是在服务器上,用户发送的每一个请求都是需要服务器响应数据,所以B/S结构的系统在网络中传送的数据量比较大。)
- 体验差(界面不是那么酷炫,因为浏览器只支持三个语言HTML CSS JavaScript,再加上速度慢。)
- 不安全(所有的数据都在服务器上,如果服务器发生不可抗力因素,最终数据全部丢失)
B/S结构的系统通信原理
WEB系统的通信原理:
- 用户输入网址(URL)
- 域名解析器进行域名解析,如:http://110.242.68.3:80/index.html
- 浏览器软件在网络中搜索110.242.68.3这一台主机,直到找到这台主机。
- 定位110.242.68.3这台主机上的服务器软件,即定位到80端口对应的服务器软件。
- 80端口对应的服务器软件得知浏览器想要的资源名是:index.html
- 服务器软件找到index.html文件,并且将index.html文件中的内容直接输出响应到浏览器上。
- 浏览器接收到来自服务器的代码(HTML CSS JS),并进行渲染,展示效果。
web服务器软件的下载与配置
关于WEB服务器软件:
WEB服务器软件有:
-
Tomcat(WEB服务器)
-
jetty(WEB服务器)
-
JBOSS(应用服务器)
-
WebLogic(应用服务器)
-
WebSphere(应用服务器)
应用服务器和WEB服务器的关系:
-
应用服务器实现了JavaEE的所有规范。(JavaEE有13个不同的规范。)
-
WEB服务器只实现了JavaEE中的Servlet + JSP两个核心的规范。
-
应用服务器是包含WEB服务器的。
Tomcat安装与配置:
直接去官网下载Tomcat即可,我这里下载的是10.0.12版本。由于Tomcat是用java语言写的,想运行起来必须有java的运行环境。这里的配置步骤为:
- 配置JAVA_HOME(JDK的根目录):我这里为:C:\Program Files\Java\jdk-21
- 配置CATALINA_HOME:我这里为:E:\tomcat\apache-tomcat-10.0.12
- 最后在path中添加以上两个目录的bin目录,如下图:
![]()
最后在cmd控制台输入命令:startup,即可启动Tomcat服务器。然后在浏览器中输入网址:http://localhost:8080/ ,如果出现了以下页面,则说明服务器启动成功了。

最后输入命令:shutdown.bat 退出服务器。
关于Tomcat服务器的目录

-
bin : 这个目录是Tomcat服务器的命令文件存放的目录,比如:启动Tomcat,关闭Tomcat等。
-
conf: 这个目录是Tomcat服务器的配置文件存放目录。(server.xml文件中可以配置端口号,默认Tomcat端口是8080)
-
lib :这个目录是Tomcat服务器的核心程序目录,因为Tomcat服务器是Java语言编写的,这里的jar包里面都是class文件。
-
logs: Tomcat服务器的日志目录,Tomcat服务器启动等信息都会在这个目录下生成日志文件。
-
temp:Tomcat服务器的临时目录。存储临时文件。
-
webapps:这个目录当中就是用来存放大量的webapp(web application:web应用)
-
work:这个目录是用来存放JSP文件翻译之后的java文件以及编译之后的class文件。
实现一个最基本的web应用
接下来使用Tomcat服务器实现一个简单的web应用。
-
第一步:找到CATALINA_HOME\webapps目录
-
因为所有的webapp要放到webapps目录下。(这是Tomcat服务器的要求。如果不放到这里,Tomcat服务器找不到你的应用。)
-
-
第二步:在CATALINA_HOME\webapps目录下新建一个子目录,起名:oa
-
这个目录名oa就是你这个webapp的名字。
-
-
第三步:在oa目录下新建资源文件,例如:index.html
-
随便编写一点index.html文件的内容,如:
-
<!DOCTYPE html>
<html><head><title>index page</title></head><body><h1>I'm Michael Jay!</main></h1></body>
</html>
-
第四步:启动Tomcat服务器
-
第五步:打开浏览器,在浏览器地址栏上输入URL:http://localhost:8080/oa/index.html ,如果出现以下页面,则表示成功了。

相关文章:
系统架构与Tomcat的安装和配置
2023.10.16 今天是学习javaweb的第一天,主要学习了系统架构的相关知识和原理,下载了web服务器软件:Tomcat,并对其进行了配置。 系统架构 包括:C/S架构 和 B/S架构。 C/S架构: Client / Server࿰…...
【Shell脚本】根据起止日期获取Alert日志内容
【Shell脚本】根据起止日期获取Alert日志内容 根据输入的起止日期字符串,检索Oracle告警日志,打印中间的日志行内容。 #!/bin/bash # $1 START_TIME_STR, e.g. "Oct 17 07:" # $2 END_TIME_STR, e.g. "Oct 17 08:" source /home/o…...
Library projects cannot set applicationId. applicationId is set to
Library projects cannot set applicationId. applicationId is set to com.xxx.library_cache in default config. 删掉即可...
【兔子王赠书第2期】《案例学Python(基础篇)》
文章目录 前言推荐图书本书特色本书目录本书样章本书读者对象粉丝福利丨评论免费赠书尾声 前言 随着人工智能和大数据的蓬勃发展,Python将会得到越来越多开发者的喜爱和应用。身边有很多朋友都开始使用Python语言进行开发。正是因为Python是一门如此受欢迎的编程语…...
用户行为数据案例
一、环境要求 HadoopHiveSparkHBase 开发环境。 二、数据描述 本数据集包含了2017-09-11至2017-12-03之间有行为的约5458位随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类…...
selenium教程 —— css定位
说明:本篇博客基于selenium 4.1.0 selenium-css定位 element_css driver.find_element(By.CSS_SELECTOR, css表达式) 复制代码 css定位说明 selenium中的css定位,实际是通过css选择器来定位到具体元素,css选择器来自于css语法 css定位优点…...
Leetcode 1834. Single-Threaded CPU (堆好题)
Single-Threaded CPU Medium You are given n tasks labeled from 0 to n - 1 represented by a 2D integer array tasks, where tasks[i] [enqueueTimei, processingTimei] means that the ith task will be available to process at enque…...
21-数据结构-内部排序-交换排序
简介:主要根据两个数据进行比较从而交换彼此位置,以此类推,交换完全部。主要有冒泡和快速排序两种。 目录 一、冒泡排序 1.1简介: 1.2代码: 二、快速排序 1.1简介: 1.2代码: 一、冒泡排序…...
5-k8s-探针介绍
文章目录 一、探针介绍二、探针类型三、探针定义方式四、探针实例五、启动探针测试六、存活探针测试七、就绪探针测试 一、探针介绍 概念 在 Kubernetes 中 Pod 是最小的计算单元,而一个 Pod 又由多个容器组成,相当于每个容器就是一个应用,应…...
【网络安全 --- MySQL数据库】网络安全MySQL数据库应该掌握的知识,还不收藏开始学习。
四,MySQL 4.1 mysql安装 #centos7默认安装的是MariaDB-5.5.68或者65, #查看版本的指令:[rootweb01 bbs]# rpm -qa| grep mariadb #安装mariadb的最新版,只是更新了软件版本,不会删除之前原有的数据。 #修改yum源的配…...
【MyBatis系列】- 什么是MyBatis
【MyBatis系列】- 什么是MyBatis 文章目录 【MyBatis系列】- 什么是MyBatis一、学习MyBatis知识必备1.1 学习环境准备1.2 学习前掌握知识二、什么是MyBatis三、持久层是什么3.1 为什么需要持久化服务3.2 持久层四、Mybatis的作用五、MyBatis的优点六、参考文档一、学习MyBatis知…...
【Linux】Ubuntu美化bash【教程】
【Linux】Ubuntu美化bash【教程】 文章目录 【Linux】Ubuntu美化bash【教程】1. 查看当前环境中是否有bash2. 安装Synth-Shell3. 配置Synth-Shell4. 取消greeterReference 1. 查看当前环境中是否有bash 查看当前使用的bash echo $SHELL如下所示 sjhsjhR9000X:~$ echo $SHELL…...
微信小程序仿苹果负一屏由弱到强的高斯模糊
进入下面小程序可以体验效果,然后进入更多。查看模糊效果 一、创建小程序组件 二、代码 wxml: <view class"topBar-15"></view> <view class"topBar-14"></view> <view class"topBar-13"></view&…...
js中的new方法
new方法的作用:创建一个实例对象,并继承原对象的属性和方法; new对象内部操作: 1,创建一个新对象,将新对象的proto属性指向原对象的prototype属性; 2,构造函数执行环境中的this指向…...
机器学习-无监督算法之降维
降维:将训练数据中的样本从高维空间转换到低维空间,降维是对原始数据线性变换实现的。为什么要降维?高维计算难,泛化能力差,防止维数灾难优点:减少冗余特征,方便数据可视化,减少内存…...
ubuntu20.04下Kafka安装部署及基础使用
Ubuntu安装kafka基础使用 kafka 安装环境基础安装下载kafka解压文件修改配置文件启动kafka创建主题查看主题发送消息接收消息 工具测试kafka Assistant 工具连接测试基础连接连接成功查看topic查看消息查看分区查看消费组 Idea 工具测试基础信息配置信息当前消费组发送消息消费…...
汉得欧洲x甄知科技 | 携手共拓全球化布局,助力出海中企数智化发展
HAND Europe 荣幸获得华为云颁发的 GrowCloud 合作伙伴奖项,进一步巩固了其在企业数字化领域的重要地位。于 2023 年 10 月 5 日,HAND Europe 参加了华为云荷比卢峰会,并因其在全球拓展方面的杰出贡献而荣获 GrowCloud 合作伙伴奖项的认可。 …...
【Javascript保姆级教程】显示类型转换和隐式类型转换
文章目录 前言一、显式类型转换1.1 字符串转换1.2 数字转换1.3 布尔值转换 二、隐式类型转换2.1 数字与字符串相加2.2 布尔值与数字相乘 总结 前言 JavaScript是一种灵活的动态类型语言,这意味着变量的数据类型可以在运行时自动转换,或者通过显式类型转…...
C++算法前缀和的应用:分割数组的最大值的原理、源码及测试用例
分割数组的最大值 相关知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例:付视频课程 二分 过些天整理基础知识 题目 给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法…...
gitlab自编译 源码下载
网上都是怎么用 gitlab,但是实际开发中有需要针对 gitlab 进行二次编译自定义实现功能的想法。 搜索了网上的资料以及在官网的查找,查到了如下 gitlab 使用 ruby 开发。 gitlab 下载包 gitlab/gitlab-ce - Packages packages.gitlab.com gitlab/gitl…...
Agentic Search能替代GraphRAG吗,结论清晰了
2024 年 GraphRAG 爆火以来,「要不要建图」成了 RAG 系统设计中最常被讨论的决策。建图能显著提升多跳推理性能,但代价高昂——实体抽取、图谱构建、索引维护,每一步都是真金白银。 与此同时,agentic search 系统快速崛起——Sear…...
开源 AI Agent Harness Engineering 模型与闭源模型的对比
开源 AI Agent Harness Engineering 模型与闭源模型的对比 摘要 如果把AI Agent比作自动驾驶汽车,那么AI Agent Harness就是这辆车的操作系统:它负责管控任务规划、工具调用、记忆管理、容错重试等所有核心逻辑,是Agent落地工程化的核心支撑…...
Onekey终极指南:3分钟掌握Steam清单下载完整教程
Onekey终极指南:3分钟掌握Steam清单下载完整教程 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey Onekey是一款专业的Steam Depot Manifest下载工具,能够帮助游戏玩家和开…...
乒乓球教程
【课程教程资料】乒乓球入门必看,全方位发球技巧教学 文件大小: 3.9GB内容特色: 3.9GB高清发球拆解,握拍站位旋转全囊括适用人群: 零基础球友、校园社团、陪练家长核心价值: 20课时速成稳定发球,直接提升实战得分率下载链接: https://pan.qu…...
零经验应届生简历怎么写?3分钟AI生成直接拿面试
毕业季到了,你是不是也跟我一样,简历投了几十份,结果石沉大海,连个面试机会都没有?尤其看到那些社招大佬,简历上项目经验、数据成果写得一套一套的,再看看自己的,除了实习经历就是课…...
ESXi 7.0升8.0后VM启动失败?硬件版本降级就搞定
很多运维人员将ESXi 7.0成功升级到8.0后,会遇到一个棘手问题:原有虚拟机(VM)无法启动,弹出错误提示“incompatible hardware version”(不兼容的硬件版本)。其实故障核心原因很明确:…...
ImageGlass完整指南:高效轻量的Windows图片查看神器
ImageGlass完整指南:高效轻量的Windows图片查看神器 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在为Windows系统自带的图片查看器功能单一而烦恼…...
擎天租与京东集团达成战略合作,机器人服务加速进入全域场景
5月21日,擎天租宣布与京东集团达成全面战略合作,双方将围绕产品解决方案共建、渠道供应链赋能及规模化采购等方面展开深度合作。此次战略联手,不仅是两家标杆企业在各自优势领域的双向赋能,也将推动RaaS(Robot as a Se…...
极域电子教室破解终极指南:如何重获电脑控制权而不被老师发现
极域电子教室破解终极指南:如何重获电脑控制权而不被老师发现 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在学校机房上课时,面对老师全屏广播…...
告别Rviz!用Webviz+Docker打造可远程访问的ROS数据监控面板(附TurtleBot3实战配置)
告别Rviz!用WebvizDocker打造可远程访问的ROS数据监控面板(附TurtleBot3实战配置) 机器人开发团队常面临一个痛点:如何在会议室大屏、异地成员的平板电脑或开发者的笔记本上,实时共享SLAM建图、传感器数据或导航状态&…...
