当前位置: 首页 > news >正文

Web开发-基础知识扫盲

目录

  • Web 服务器
    • Web 服务器例子
  • MVC架构
  • Web 项目运行过程
  • 负载均衡和反向代理
  • 持久化Java对象
    • JPA

Web 服务器

  • Web 服务器是一种计算机程序,它通过 HTTP 协议接收和响应客户端发送的请求。Web 服务器将 HTML、CSS、JavaScript 和其他资源文件发送给客户端,以便在浏览器中显示网站的内容。
  • 它允许用户通过 Web 浏览器访问 Web 页面和其他 Web 资源。Web 服务器可以根据 HTTP 协议(HyperText Transfer Protocol)接收和处理来自 Web 浏览器的请求,并将响应返回给浏览器。
  • 浏览器是客户端,web 服务器是服务器端。浏览器通过 HTTP 协议向 web 服务器发送请求,web 服务器接收请求并返回响应,通常是一个 HTML 页面。浏览器解析 HTML 页面并显示给用户。

Web 服务器例子

  1. Apache: Apache是一款功能强大的 Web 服务器,可以运行在多种操作系统上,支持多种协议(如 HTTP、HTTPS 等)。Apache 可以通过模块扩展功能,例如支持 PHP、Perl 等语言。

  2. Tomcat: Tomcat是一个 Java Web 服务器,它是 Apache Software Foundation 的一个项目。Tomcat 主要用于部署 Java Servlet 和 JavaServer Pages(JSP)技术,支持 Java EE 规范。Tomcat 与 Apache 可以集成使用,共同提供 Web 服务。

  3. Nginx: Nginx是一款高性能的 Web 服务器和反向代理服务器,它主要用于在服务器前端处理静态文件和 SSL 加密。Nginx 可以与 Tomcat 等后端服务器配合使用,提高 Web 应用的性能。

总结:Apache、Tomcat 和 Nginx 都是 Web 服务器,它们可以相互配合使用,根据需求部署在不同的位置。Apache 和 Tomcat 集成可以提供完整的 Java Web 服务;Nginx 作为反向代理服务器,可以提高 Web 应用的性能。

MVC架构

MVC 架构是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种架构模式有助于分离关注点,提高代码的可重用性和灵活性。

  1. 模型(Model):负责处理应用程序中的数据和业务逻辑。它可以是数据表、对象或其他表示数据的方式。
  2. 视图(View):负责向用户显示模型中的数据。视图可以是 HTML 页面、文本文件或其他形式的可视化表示。
  3. 控制器(Controller):负责处理用户输入并与模型和视图进行交互。它可以根据用户的请求更新模型中的数据,并通知视图进行相应的更新。

MVC 架构的优点包括:

  • 分离关注点:将应用程序的不同方面划分为独立的组件,有助于各个组件专注于自己的任务。
  • 可重用性:每个组件都可以在其他应用程序中重复使用,提高了代码的复用率。
  • 灵活性:MVC 架构可以根据需求进行调整和扩展,以满足不同的功能需求。

总之,MVC 架构是一种结构清晰、模块化程度高的软件设计模式,广泛应用于各种类型的应用程序。

Web 项目运行过程

  1. 客户端发起请求:当用户访问一个网页或点击一个链接时,客户端(如浏览器)会向 Web 服务器发起一个 HTTP 请求。

  2. Web 服务器接收请求:Web 服务器接收到客户端的请求后,会根据请求的 URL 找到对应的网站目录和文件,然后将请求转发给对应的处理程序(如 Servlet、PHP 脚本等)。

  3. 处理请求:处理程序接收到请求后,会根据请求类型(如 GET、POST 等)执行相应的操作,如查询数据库、处理表单提交等,然后生成 HTML 页面或其他格式的响应。

  4. 生成响应:处理程序生成响应后,会将响应内容返回给 Web 服务器。Web 服务器会对响应进行封装,并生成一个 HTTP 响应报文,然后将其发送回客户端。

  5. 客户端接收响应:客户端接收到 HTTP 响应报文后,会对其进行解析,并根据响应内容呈现相应的页面或更新页面状态。

  6. 结束请求:客户端和服务器之间的 HTTP 请求和响应完成后,会关闭连接。

整个过程可以概括为:客户端发起请求 -> Web 服务器接收请求 -> 处理请求 -> 生成响应 -> 客户端接收响应 -> 结束请求。

负载均衡和反向代理

  • 负载均衡(Load balancing)是一种将网络流量分配到多个计算资源上的技术,以实现更高的性能、可靠性、容错能力和安全性。负载均衡通常用于服务器集群、数据库集群和网络设备集群等场景,以提高系统的可用性和可扩展性。
  • 反向代理(Reverse proxy)是一种网络代理服务,它位于客户端和目标服务器之间,充当客户端与目标服务器之间的中转站。反向代理的主要作用是接收客户端的请求,将其转发给目标服务器,然后将服务器返回的结果返回给客户端。反向代理可以提高服务器的安全性、性能和可扩展性,同时也可以隐藏服务器的真实 IP 地址和实现负载均衡等功能。常见的反向代理服务器有 Nginx、Apache 等。

持久化Java对象

  • 持久化 Java 对象是指将 Java 对象的状态转换为一种可以保存到磁盘或数据库中的形式,以便在需要时可以重新读取和恢复。这样做可以避免在程序运行过程中丢失对象的状态信息。

JPA

  • JPA(Javaa Persistence API)一种用于持久化 Java 对象到关系型数据库的标准API。它提供了一种规范,用于定义应该如何将 Java 对象映射到数据库表,以及如何在 Java 应用程序中保存和检索这些对象。JPA的实现可以是开源的,也可以是商业的,例如 Hibernate【一个开源的对象关系映射(ORM)框架,用于将 Java 对象与数据库表中的记录相关联。它提供了持久化、查询和事务管理等功能,使 Java 程序员可以更轻松地使用对象编程思维来操作数据库。】、EclipseLink 等。

相关文章:

Web开发-基础知识扫盲

目录 Web 服务器Web 服务器例子 MVC架构Web 项目运行过程负载均衡和反向代理持久化Java对象JPA Web 服务器 Web 服务器是一种计算机程序,它通过 HTTP 协议接收和响应客户端发送的请求。Web 服务器将 HTML、CSS、JavaScript 和其他资源文件发送给客户端,…...

SpringMVC 学习(四)RestFul 风格

5. RestFul 风格 5.1 简介 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 功能 资源:互联网所有的事物都可以被抽象为…...

消息中间件相关知识

1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka…...

JackJson多态

JsonTypeInfo 处理多态、序列化对象类型_赵丙双的博客-CSDN博客 JsonTypeInfo实现jackson的多态解析_MonkeyKing_sunyuhua的博客-CSDN博客 Java Jackson JsonTypeInfo 多态类型处理 - 简书 JsonTypeInfo 逻辑名称 JsonSubTypes、JsonTypeName_赵丙双的博客-CSDN博客...

孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署

原创 | 文 BFT机器人 1、华为孟晚舟新发声,华为发布“全面智能化”战略 上周三(9月30号)上午,华为全联接大会2023正式在上海举行,作为华为副董事长、轮值董事长、CFO的孟晚舟代表华为再次发声!在演讲上&am…...

open62541开发:添加sqlite3 历史数据库

历史数据库在OPCUA 应用中十分重要,例如OPCUA 网关和OPCUA 汇聚服务器中都需要历史数据库功能。但是open62541 协议栈中仅包含了基于内存的历史数据库,在实际应用中是不够的。本博文讨论open62541 中添加sqlite3 为基础的历史数据库若干问题。 借鉴 Gi…...

美国零售电商平台Target,值得入驻吗?如何入驻?

Target 是美国最大的零售商之一,在品牌出海为大势所趋的背景下,它在北美电商中的地位节节攀升。Target 商店在众多垂直领域提供各种价格实惠的自有品牌,吸引越来越多的跨境商家入驻,如美妆、家居、鞋服、日用百货等,随…...

docker freeswitch mysql驱动相关

1. docker环境 的freeswitch要连mysql数据库 2. centos版本:7.9 3. mysql版本:mysql8.0 4. odbc版本:适用以下命令查询 rpm -qa | grep -E "unixODBC|mysql-connector-odbc" mysql-connector-odbc-5.2.5-8.el7.x86_64 unixODB…...

Chrome iframe 跨域失败

原因: Chrome 稳定版禁用 document.domain setter 解决方案(4种): 1 使用低版本Chrome 缺点:无法保证用户浏览器版本。 2 浏览器设置: 浏览器地址栏输入 chrome://flags/#origin-agent-cluster-default然…...

【Vue】vue-cli一站式搭建SPA项目

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Vue快速入门》。🎯🎯 &…...

CPP代码检查工具

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言CPP代码检查工具工具一:GCC编译器工具二:Cppcheck工具三:gbd调试器工具四:SonarCube嵌入式平台工具内存泄漏检查工具linux的cpu占用情况前言 认…...

在SpringBoot中利用Redis实现互斥锁

在SpringBoot中利用Redis实现互斥锁 基本知识 前提条件,有一个能够在Springboot中使用Redis的项目,或者能够直接开也行 为什么要实现互斥锁:当我们利用Redis存储热点数据时,突然就过期失效或者被删除了,导致大量请求同…...

vue3+eleement plus日历选择季度

<template><div class"el-quarter-wrap"><el-popover width"280" v-model"visible"><template #reference><el-input v-model"quarterDate" placeholder"请选择季度" clearable :prefix-icon&qu…...

实现动态业务规则的方法(Java)

实现动态业务规则的方法&#xff08;Java&#xff09; 企业信息化系统核心在于业务领域的概念模型及于此基础上复杂多变的业务规则&#xff0c;实现中通常抽象规则的接口方法&#xff0c;使用继承或策略等设计模式实现不同的业务规则的实现。领域的概念模型在特定领域是稳定的…...

leetcodeTOP100(26)两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …...

performance_schema

插桩名称的最左边部分表示插桩类型&#xff0c;其余部分从左到右依次表示到特定的子系统 mysql> select * from performance_schema.setup_instruments where documentation is not null limit 5,5\G; *************************** 1. row ***************************NAME:…...

全新UI基于Thinkphp的最新自助打印系统/云打印小程序源码/附教程

这是一款全新的基于Thinkphp的最新自助打印系统&#xff0c;最新UI界面设计的云打印小程序源码&#xff0c;带有简单的教程。 下载地址&#xff1a;https://bbs.csdn.net/topics/617324130...

Android 13.0 framework层系统手势增加上滑手势home事件功能(相当于Home键)

1.概述 在13.0的定制化开发系统手势功能的时候,客户需求要求在上滑手势的时候,在底部上滑时候进入系统桌面,也就是增加 home键功能,所以就需要分析相关的系统手势上滑事件,然后添加home事件这样 就可以实现这个功能了 2.framework层系统手势增加上滑手势home事件功能的核…...

webp格式及其转成

"WebP" 是一种现代的图像压缩格式&#xff0c;由谷歌公司开发。它旨在提供高质量的图像压缩&#xff0c;同时减小图像文件的大小&#xff0c;从而加快网络加载速度。WebP 格式通常使用 ".webp" 扩展名来标识。 WebP 图像格式主要有以下几个特点和优点&…...

echo cat find grep命令

目录 cat echo grep find cat cat命令可以理解为英文单词concatenate的缩写&#xff0c;其功能是连接多个文件并且打印到屏幕输出&#xff0c;或者重定向到指定文件中。此命令常用于显示单个文件内容&#xff0c;或者将几个文件内容连接起来一起显示&#xff0c;还可以从标…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...