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 服务器例子
-
Apache: Apache是一款功能强大的 Web 服务器,可以运行在多种操作系统上,支持多种协议(如 HTTP、HTTPS 等)。Apache 可以通过模块扩展功能,例如支持 PHP、Perl 等语言。
-
Tomcat: Tomcat是一个 Java Web 服务器,它是 Apache Software Foundation 的一个项目。Tomcat 主要用于部署 Java Servlet 和 JavaServer Pages(JSP)技术,支持 Java EE 规范。Tomcat 与 Apache 可以集成使用,共同提供 Web 服务。
-
Nginx: Nginx是一款高性能的 Web 服务器和反向代理服务器,它主要用于在服务器前端处理静态文件和 SSL 加密。Nginx 可以与 Tomcat 等后端服务器配合使用,提高 Web 应用的性能。
总结:Apache、Tomcat 和 Nginx 都是 Web 服务器,它们可以相互配合使用,根据需求部署在不同的位置。Apache 和 Tomcat 集成可以提供完整的 Java Web 服务;Nginx 作为反向代理服务器,可以提高 Web 应用的性能。
MVC架构
MVC 架构是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种架构模式有助于分离关注点,提高代码的可重用性和灵活性。
- 模型(Model):负责处理应用程序中的数据和业务逻辑。它可以是数据表、对象或其他表示数据的方式。
- 视图(View):负责向用户显示模型中的数据。视图可以是 HTML 页面、文本文件或其他形式的可视化表示。
- 控制器(Controller):负责处理用户输入并与模型和视图进行交互。它可以根据用户的请求更新模型中的数据,并通知视图进行相应的更新。
MVC 架构的优点包括:
- 分离关注点:将应用程序的不同方面划分为独立的组件,有助于各个组件专注于自己的任务。
- 可重用性:每个组件都可以在其他应用程序中重复使用,提高了代码的复用率。
- 灵活性:MVC 架构可以根据需求进行调整和扩展,以满足不同的功能需求。
总之,MVC 架构是一种结构清晰、模块化程度高的软件设计模式,广泛应用于各种类型的应用程序。
Web 项目运行过程
-
客户端发起请求:当用户访问一个网页或点击一个链接时,客户端(如浏览器)会向 Web 服务器发起一个 HTTP 请求。
-
Web 服务器接收请求:Web 服务器接收到客户端的请求后,会根据请求的 URL 找到对应的网站目录和文件,然后将请求转发给对应的处理程序(如 Servlet、PHP 脚本等)。
-
处理请求:处理程序接收到请求后,会根据请求类型(如 GET、POST 等)执行相应的操作,如查询数据库、处理表单提交等,然后生成 HTML 页面或其他格式的响应。
-
生成响应:处理程序生成响应后,会将响应内容返回给 Web 服务器。Web 服务器会对响应进行封装,并生成一个 HTTP 响应报文,然后将其发送回客户端。
-
客户端接收响应:客户端接收到 HTTP 响应报文后,会对其进行解析,并根据响应内容呈现相应的页面或更新页面状态。
-
结束请求:客户端和服务器之间的 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)
实现动态业务规则的方法(Java) 企业信息化系统核心在于业务领域的概念模型及于此基础上复杂多变的业务规则,实现中通常抽象规则的接口方法,使用继承或策略等设计模式实现不同的业务规则的实现。领域的概念模型在特定领域是稳定的…...
leetcodeTOP100(26)两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …...
performance_schema
插桩名称的最左边部分表示插桩类型,其余部分从左到右依次表示到特定的子系统 mysql> select * from performance_schema.setup_instruments where documentation is not null limit 5,5\G; *************************** 1. row ***************************NAME:…...

全新UI基于Thinkphp的最新自助打印系统/云打印小程序源码/附教程
这是一款全新的基于Thinkphp的最新自助打印系统,最新UI界面设计的云打印小程序源码,带有简单的教程。 下载地址:https://bbs.csdn.net/topics/617324130...
Android 13.0 framework层系统手势增加上滑手势home事件功能(相当于Home键)
1.概述 在13.0的定制化开发系统手势功能的时候,客户需求要求在上滑手势的时候,在底部上滑时候进入系统桌面,也就是增加 home键功能,所以就需要分析相关的系统手势上滑事件,然后添加home事件这样 就可以实现这个功能了 2.framework层系统手势增加上滑手势home事件功能的核…...

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

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

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...