WEB技术

HTTP协议和B/S 结构

操作系统有进程子系统,使用多进程就可以充分利用硬件资源。进程中可以多个线程,每一个线程可以被CPU调度执行,这样就可以让程序并行的执行。这样一台主机就可以作为一个服务器为多个客户端提供计算服务。
客户端和服务端往往处在不同的物理主机上,它们分属不同的进程,这些进程间需要通信。跨主机的进程间通信需要使用网络编程。最常见的网络编程接口是Socket。
Socket称为套接字,本意是插座。也就是说网络通讯需要两端,如果一端被动的接收另一端请求并提供计算和数据的称为服务器端,另一端往往只是发起计算或数据请求,称为客户端
这种编程模式称为Client/Server编程模式,简称C/S编程。开发的程序也称为C/S程序。C/S编程往往使用传输层协议(TCP/UDP),较为底层,比如:QQ,迅雷, 云音乐, 云盘, foxmail,xshell等
1990年HTTP协议和浏览器诞生。在应用层使用文本跨网络在不同进程间传输数据,最后在浏览器中将服务器端返回的HTML渲染出来。由此,诞生了网页开发。
网页是存储在WEB服务器端的文本文件,浏览器发起HTTP请求后,到达WEB服务程序后,服务程序根据URL读取对应的HTML文件,并封装成HTTP响应报文返回给浏览器端。
起初网页开发主要指的是HTML、CSS等文件制作,目的就是显示文字或图片,通过超级链接跳转到另一个HTML并显示其内容。 后来,网景公司意识到让网页动起来很重要,傍着SUN的Java的名气发布了JavaScript语言,可以在浏览器中使用JS引擎执行的脚本语言,可以让网页元素动态变化,网页动起来了。为了让网页动起来,微软使用ActiveX技术、SUN的Applet都可以在浏览器中执行代码,但都有安全性问 题。能不能直接把内容直接在WEB服务器端组织成HTML,然后把HTML返回给浏览器渲染呢?
最早出现了CGI(Common Gateway Interface)通用网关接口,通过浏览器中输入URL直接映射到一个服务器端的脚本程序执行,这个脚本可以查询数据库并返回结果给浏览器端。这种将用户请求使用程序动态生成的技术,称为动态网页技术。先后出现了ASP、PHP、JSP等技术,这些技术的使用不同语言编写的程序都运行在服务器端,所以称为WEB后端编程。有一部分程序员还是要编写HTML、CSS、 JavaScript,这些代码运行在浏览器端,称为WEB前端编程。合起来称为Browser/Server编程,即B/S编程

前端三大核心技术

HTML

HTML(HyperText Markup Language)超文本标记语言,它不同于一般的编程语言。超文本即超出纯文本的范畴,例如:描述文本颜色、大小、字体等信息,或使用图片、音频、视频等非文本内容。 HTML由一个个的标签(标记)组成,这些标签各司其职,有的提供网页信息,有的负责文字,有的负 责图片,有的负责网页布局,所以一个HTML文件,是由格式标签和数据组成
超文本需要显示,就得有软件能够呈现超文本定义的排版格式,例如显示:图片、表格,显示字体的大小、颜色,这个软件就是浏览器。 超文本的诞生是为了解决纯文本不能格式显示的问题,是为了好看,但是只有通过网络才能分享超文本的内容,所以制定了HTTP协议

CSS(Cascading Style Sheets)层叠样式表

HTML本身为了格式化显示文本,但是当网页呈现大家面前的时候,需求HTML提供更多样式能力。这使得HTML变得越来越臃肿。这促使了CSS的诞生。 1994年,W3C成立,CSS设计小组所有成员加入W3C,并努力研发CSS的标准,微软最终加入。 1996年12月发布CSS 1.0。 1998年5月发布CSS 2.0。 CSS 3采用了模块化思想,每个模块都在CSS 2基础上分别增强功能。所以,这些模块是陆续发布的。 不同厂家的浏览器使用的引擎,对CSS的支持不一样,导致网页布局、样式在不同浏览器不一样。因 此,想要保证不同用户使用不同浏览器看到的网页效果一直非常困难。

JavaScript

Javascript简称JS,是一种动态的弱类型脚本解释性语言,和HTML、CSS并称三大WEB核心技术,得到了几乎主流浏览器支持。 1994年,网景Netscape公司成立并发布了Netscape Navigator浏览器,占据了很大的市场份额,网景意识到WEB需要动态,需要一种技术来实现。
1995年9月网景浏览器2发布测试版本发布了LiveScript,随即在12月的测试版就更名为JavaScript。同时期,微软推出IE并支持JScript、VBScript,与之抗衡。 1997年,网景、微软、SUN、Borland公司和其他组织在ECMA(European Computer Manufacturers Association 欧洲计算机制造商协会)确定了ECMAScript的本程序设计语言的标准。JavaScript和JScript 都成为ECMAScript标准的实现。 2008年后随着chrome浏览器的V8引擎发布。 V8 JS引擎不是解释执行,而是本地编译,在V8引擎做了很多优化,JS程序在其上运行堪比本地二进制程 序。V8引擎使用C++开发,可以嵌入到任何C++程序中。基于V8引擎,2009年基于服务器javascript的运行环境Node.js诞生,创建了第一版npm (Node.js包管理器和开源库生态系统), 提供了大量的库供程序员使用。从此,便可以在服务器端真正大规模使用JavaScript编程了。也就是说 JavaScript 也可以真正称为服务器端编程语言了,成为目前唯一的前,后端通用的语言。

同步

交互式网页,用户提交了请求,就是想看到查询的结果。服务器响应到来后是一个全新的页面内容,哪 怕URL不变,整个网页都需要重新渲染。例如,用户填写注册信息,只是2次密码不一致,提交后,整个 注册页面重新刷新,所有填写项目重新填写(当然有办法让用户减少重填)。这种交互非常不友好。从代价 的角度看,就是为了注册的一点点信息,结果返回了整个网页内容,不但浪费了网络带宽,还需要浏览 器重新渲染网页,太浪费资源了,影响了用户体验和感受。上面这些请求的过程,就是同步过程,用户 发起请求,页面整个刷新,直到服务器端响应的数据到来并重新渲染。

异步

1996年微软实现了iframe标签,可以在一个网页使用iframe标签局部异步加载内容。1999年微软推出异步数据传输的ActiveX插件技术,太笨重了,但是也火了很多年。有一个组件XMLHttpRequest被大多数浏览器支持。 传统的网页如果需要更新内容,必需重载整个网页面。Ajax的出现,改变这一切,同时极大的促进了 Javascript的发展。Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,最早起源于1998年微软的Outlook Web Access开发团队。Ajax 通过在后台与服务器进行少量数据交换, 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。Javascript 通过调用浏览器内置的WEB API中的 XMLHttpRequest 对象实现Ajax 技术。早期Ajax结合数据格式XML,目前更多的使用JSON。利用AJAX 可实现前后端开发的彻底分离,改变了传统的开发模式。 AJAX是一种技术的组合,技术的重新发现,而不是发明,但是它深远的影响了整个WEB开发。 参考资料: https://www.w3school.com.cn/ajax/index.asp

java 基础

WEB架构

Web资源和访问

在这里插入图片描述

PC 端或移动端浏览器访问
从静态服务器请求HTML、CSS、JS等文件发送到浏览器端,浏览器端接收后渲染在浏览器上,从图片服务器请求图片资源显示,从业务服务器访问动态内容,动态内容是请求后有后台服务访问数据库后得到的,最终返回到浏览器端。
手机 App 访问
内置了HTML和JS文件,不需要从静态WEB服务器下载 JS 或 HTML。为的就是减少文件的发送,现代前端开发使用的JS文件太多或太大了,有必要就从图片服务器请求图片,从业务服务器请求动态数据,客户需求多样,更多的内容还是需要由业务服务器提供,业务服务器往往都是由一组服务器组成。

后台应用架构

在这里插入图片描述

单体架构

传统架构(单机系统),一个项目一个工程:比如商品、订单、支付、库存、登录、注册等等,统一部署,一个进程 all in one的架构方式,把所有的功能单元放在一个应用里。然后把整个应用部署到一台服务器上。如果负载能力不行,将整个应用进行水平复制,进行扩展,然后通过负载均衡实现访问。Java实现:JSP、Servlet,打包成一个jar、war文件部署,易于开发和测试;也十分方便部署;当需要扩展时,只需要将war复制多份,然后放到多个服务器上,再做个负载均衡就可以了。如果某个功能模块出问题,有可能全站不可访问,修改Bug后、某模块功能修改或升级后,需要停掉整个服务,重新整体重新打包、部署这个应用war包,功能模块相互之间耦合度高,相互影响,不适合当今互联网业务功能的快速迭代。 特别是对于一个大型应用,我们不可能吧所有内容都放在一个应用里面,我们如何维护、如何分工 合作都是问题。如果项目庞大,管理难度大。 web应用服务器:开源的tomcat、jetty、glassfish。商用的有weblogic、websphere、Jboss

微服务

https://www.martinfowler.com/microservices/
In short, the microservice architectural style is an approach to developing a
single application as a suite of small services, each running in its own process
and communicating with lightweight mechanisms, often an HTTP resource API. These
services are built around business capabilities and independently deployable by
fully automated deployment machinery. There is a bare minimum of centralized
management of these services, which may be written in different programming
languages and use different data storage technologies.
简而言之,微服务架构风格是一种将单个应用程序开发为一组小服务的方法,每个小服务都在自己的进程中运
行,并与轻量级机制(通常是 HTTP 资源 API)进行通信。 这些服务是围绕业务能力构建的,并且可以通过
完全自动化的部署机制独立部署。 这些服务的集中管理极少,可以用不同的编程语言编写并使用不同的数据存
储技术。-- James Lewis and Martin Fowler (2014)

属于SOA(Service Oriented Architecture)的子集,SOA可以认为面向服务的1.0版本,微服务可以认为是面向服务的2.0版本,SOA的服务之间通过ESB(Enterprise Service Bus)进行通信,则ESB的单点依赖和商业ESB的费用问题反而成为了所有服务的瓶颈。
微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底去掉耦合,每一个微服务提供单个业务功能,一个服务只做一件事。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。从技术角度讲就是一种小而独立的处理过程,类似与进程的概念,能够自行单独启动或销毁。微服务架构(分布式系统),各个模块/服务,各自独立出来,“让专业的人干专业的事”,独立部署。分布式系统中,不同的服务可以使用各自独立的数据库。 服务之间采用轻量级的通信机制(通常是基于HTTP的RESTful API)。 微服务设计的思想改变了原有的企业研发团队组织架构。传统的研发组织架构是水平架构,前端、 后端、DBA、测试分别有自己对应的团队,属于水平团队组织架构。而微服务的设计思想对团队的划分有着一定的影响,使得团队组织架构的划分更倾向于垂直架构,比如用户业务是一个团队来负责,支付业务是一个团队来负责。但实际上在企业中并不会把团队组织架构拆分得这么绝对,垂直架构只是一种理想的架构。微服务的实现框架有多种,不同的应用架构,部署方式也有不同

java

在这里插入图片描述
Java原指的是印度尼西亚的爪哇岛,人口众多,盛产咖啡、橡胶等。 Java语言最早是在SUN公司1991年开始设计的,最初叫Oak项目,它初衷是跑在不同机顶盒设备中的。 1993年网景公司成立。Oak项目组很快他们发现了浏览器和动态网页技术这个巨大的市场,转向WEB方向。并首先发布了可以让网页动起来的Applet技术(浏览器中嵌入运行Java字节码的技术)。在1995年,一杯爪哇岛咖啡成就了Java这个名字。 Sun公司第一个Java公开版本1.0发布于1996年。口号是"一次编写,到处运行"(Write once,Run anywhere),跨平台运行。1999年,SUN公司发布了第二代Java平台(Java2)。 2009年4月20日,Oracle甲骨文公司宣布将以每股9.50美元,总计74亿美金收购SUN(计算机系统)公司。2010年1月成功收购。 2010年,Java创始人之一的 James Gosling 离开了Oracle,去了Google

java 组成

Java 包含下面部分: 语言、语法规范。关键字,如: if、for、class等 源代码 source code 依赖库,标准库(基础)、第三方库(针对某些应用)。底层代码太难使用且开发效率低,封装成现成的库 JVM虚拟机。将源代码编译为中间码即字节码后,再运行在JVM之上
在这里插入图片描述

由于各种操作系统ABI不一样,采用编译方式,需要为不同操作系统编译成相应格式的二进制程序才能运行。1995年,Java发布Applet技术,Java程序在后台编译成字节码,发送到浏览器端,在浏览器中运行一个 Applet程序,这段程序是运行在另外一个JVM进程中的。但是这种在客户端运行Java代码的技术,会有很大的安全问题。1997年CGI技术发展起来,动态网页技术开始向后端开发转移,在后端将动态内容组织好,拼成HTML发回到浏览器端

Java动态网页技术

servlet

本质就是一段 java 程序

public class HelloWorld extends HttpServlet {private String message;public void init() throws ServletException{message = "Hello World";}public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{response.setContentType("text/html"); //响应报文内容类型PrintWriter out = response.getWriter();  //构建响应报文内容out.println("<h1>" + message + "</h1>");out.println("<p><a href=http://www.caoge.org>曹哥</a>欢迎你</p>");}public void destroy(){}
}

在Servlet中最大的问题是,HTML输出和Java代码混在一起,如果网页布局要调整,Java源代码就需要随之进行调整,对于开发人员来说就是个噩梦。

jsp(Java Server Pages)

JSP本质是提供一个HTML模板,也就是在网页中预留以后填充的空,后续将Java程序运行生成的数据对HTML进行填空就可以了。如果网页布局需要调整,JAVA源代码不需要很大的调整

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>jsp例子</title>
</head>
<body>
本行后面的内容是服务器端动态生成字符串,最后拼接在一起
<%
out.println("你的 IP 地址 " + request.getRemoteAddr());
%>
</body>
</html>

JSP是基于Servlet实现,JSP将表现和逻辑分离,这样页面开发人员更好的注重页面表现力更好服务客户。 不过最终 JSP 还需要先转换为 Servlet的源代码.java文件(Tomcat中使用Jasper转换),只不过这个转换过程无需人工完成,是通过工具自动实现的,然后再编译成.class文件,最后才可以在JVM中运行。比如: 浏览器第一次请求test.jsp时, Tomcat服务器会自动将test.jsp转化成test.jsp.java这么一个类,并将该文件编译成class文件。编译完毕后再运行class文件来响应浏览器的请求。如果以后访问test.jsp就不再重新编译。jsp文件了,直接调用class文件来响应浏览器。后续如果Tomcat检测到JSP页面改动了的话, 会重新编译 JSP类似于PHP和ASP,前端代码和后端JAVA代码混写在一起,需要前端和后端工程师在一起协作才能完成, 无法做到真正的前后端分离开发,在web早期的开发中,通常采用的分为两层,视图层和模型层。
在这里插入图片描述

优点:架构简单,比较适合小型项目开发
缺点:JSP职责不单一,职责过重,不便于维护

mvc

如果过度使用jsp技术,jsp中既写有大量的java代码,也有html,甚至还有javascript等,造成难以维护,难以实现前后端分工协作,后来java 的web开发借鉴了MVC(Model View Controller )开发模式, MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、 数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。 MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。 Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或 JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao)和服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。 View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。可通过 JSP实现 Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。最终表现为Servlet。最典型的MVC就是JSP + servlet + javabean的模式
在这里插入图片描述

职责分析:
Controller:控制器
取得表单数据
调用业务逻辑
转向指定的页面
Model:模型
业务逻辑
保存数据的状态
View:视图
显示页面
处理流程:1. 用户发请求 2. Servlet接收请求数据,并调用对应的业务逻辑方法 3. 业务处理完毕,返回更新后的数据给servlet 4. servlet转向到JSP,由JSP来渲染页面 5. 响应给前端更新后的页面

在这里插入图片描述
MVC模式也有以下不足: 每次请求必须经过"控制器->模型->视图"这个流程,用户才能看到最终的展现界面,这个过程似乎有些复杂,实际上视图是依赖于模型的,换句话说,如果没有模型,视图也无法呈现出最终的效果,渲染视图过程是在服务端来完成的,最终呈现给浏览器的是带有模型的视图页面,性能无法得到很好的优化

REST

为了使数据展现过程更加直接,并且提供更好的用户体验,对MVC模式进行改进。首先从浏览器发送 AJAX( Asynchronous JavaScript and XML 异步的 JavaScript 和 XML)请求,然后服务端接受该请求并返回JSON数据返回给浏览器,最后在浏览器中进行界面渲染。改进后的MVC模式如下图所示
在这里插入图片描述

也就是说,我们输入的是AJAX请求,输出的是JSON数据,REST技术实现这样的功能。 REST(Representational State Transfer表述性状态转移,全称是 Resource Representational State Transfer 即资源在网络中以某种表现形式进行状态转移。 分解开来:Resource:资源,即数据 Representational:某种表现形式,比如用JSON,XML,JPEG等 State Transfer:状态变化。通过HTTP动词实现,它是Roy Fielding博士在2000年写的一篇关于软件架构风格的论文,后来国内外许多知名互联网公司纷纷开始采用这种轻量级的Web服务,大家习惯将其称为RESTful Web Services,或简称REST服务。 如果将浏览器这一端视为前端,而服务器那一端视为后端的话,可以将以上改进后的MVC模式简化为以下前后端分离模式,如下图所示:
在这里插入图片描述
可见,采用REST风格的架构可以使得前端关注界面展现,后端关注业务逻辑,分工明确,职责清晰。在设计web接口的时候,REST主要是用于定义接口名,接口名一般是用名次写,不用动词,那怎么表达“获取”或者“删除”或者“更新”这样的操作呢——用请求类型来区分。比如,我们有一个friends接口,对于“朋友”我们有增删改查四种操作,怎么定义REST接口?
增加一个朋友,uri: generalcode.cn/v1/friends 接口类型:POST
删除一个朋友,uri: generalcode.cn/va/friends 接口类型:DELETE
修改一个朋友,uri: generalcode.cn/va/friends 接口类型:PUT
查找朋友,uri: generalcode.cn/va/friends 接口类型:GET
上面我们定义的四个接口就是符合REST协议的,请注意,这几个接口都没有动词,只有名词friends,都是通过Http请求的接口类型来判断是什么业务操作。 REST就是一种设计API的模式。最常用的数据格式是JSON。由于JSON能直接被JavaScript读取,所以, 以JSON格式编写的REST风格的API具有简单、易读、易用的特点。 编写API有什么好处呢?由于API就是把Web App的功能全部封装了,所以,通过API操作数据,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代码编写更简单。前端拿到数据只负责展示和渲染,不对数据做任何处理。后端处理数据并以JSON格式传输出去,定义这样一套统一的接口,在web,ios,android三端都可以用相同的接口,通过客户端访问API,就可以完成通过浏览器页面提供的功能,而后端代码基本无需改动

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92759.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92759.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/92759.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win11中Qt5.14.0+msvc2019+opencv4.9配置

本文主要研究由msvc编译的opencv在QT中的配置&#xff0c;opencv可以是官网直接下载的版本&#xff0c;也可以是msvc(例如vs2019)通过cmake编译 contrib功能的opencv版本&#xff0c;这2种版本对qt版本没有严格要求&#xff0c;但是若在cmake中选择了with_qt功能&#xff0c;那…

【listlist模拟】

list&list模拟1.list使用2、list模拟附录1.list使用 list常见接口不做介绍&#xff0c;跟前面vector有相似之处&#xff0c;跟数据结构list基本一样。  因为list使用带头的双向循环链表实现的&#xff0c;不能用小标访问&#xff0c;只能用迭代器或范围for访问 list有成…

在CentOS 7上将PostgreSQL数据库从默认路径迁移到自定义目录

在CentOS 7上将PostgreSQL数据库从默认路径迁移到自定义目录&#xff0c;需遵循以下步骤。假设原数据目录为“/var/lib/pgsql/12/data”&#xff0c;目标目录为“/new/path/pgdata”。 1、步骤概览 停止PostgreSQL服务创建新目录并设置权限复制数据文件&#xff08;保留权限&am…

C语言基础06——结构体(struct)

一、结构体的概念结构体&#xff08;struct&#xff09;是 C 语言中一种自定义数据类型&#xff0c;它允许你将不同类型的数据项组合在一起&#xff0c;形成一个新的复合数据类型。想象一下&#xff1a;如果要表示一个 "学生"&#xff0c;需要包含姓名&#xff08;字…

小白入门指南:Edge SCDN 轻松上手

在互联网飞速发展的当下&#xff0c;网站性能与安全至关重要。对于小白而言&#xff0c;Edge SCDN 可能是个陌生概念&#xff0c;但它却能极大助力网站运营。本文将用简单易懂的语言&#xff0c;带大家了解 Edge SCDN&#xff0c;探讨其运用方法。​一、Edge SCDN 是什么&#…

探秘酵母单杂交技术:解锁基因调控的密码

在生命科学研究领域&#xff0c;基因的表达调控机制一直是科学家们关注的焦点。为了深入探究这一复杂过程&#xff0c;众多先进技术应运而生&#xff0c;酵母单杂交技术便是其中极具价值的一项&#xff0c;它为研究 DNA 与蛋白质之间的相互作用提供了独特视角与有效手段。酵母单…

大模型备案要点一次过【附材料清单详解】

最近&#xff0c;广东省公布了最新一批的大模型备案&#xff08;登记&#xff09;名单&#xff0c;很多准备要做大模型备案的企业都在纷纷咨询&#xff1a;“大模型备案的周期是多久&#xff1f;”“做大模型备案有什么要求&#xff1f;”“做大模型备案一共需要准备多少材料&a…

启保停-----------单相照明灯的接法

一.单相照明灯-K21使用的器材,单相电能表,空开,插座,开关,灯泡二.启 保 停1.需要用到的器材1.空开2.三相电机3.接触器4.熔断器5.按钮2.电路的作用按按钮 运转 在按按钮 停止运转3.电动4.加上辅助触点 控制电路5.在加上按钮 停止电路

TF-IDF:信息检索与文本挖掘的统计权重基石

本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我&#xff0c;一起撕掉过度包装&#xff0c;学习真实的AI技术&#xff01; 1. 背景与定义 TF-IDF 是一种统计加权方法&#xff0c;用于衡量词语在…

[论文阅读] (41)JISA24 物联网环境下基于少样本学习的攻击流量分类

《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座&#xff0c;并分享给大家&#xff0c;希望您喜欢。由于作者的英文水平和学术能力不高&#xff0c;需要不断提升&#xff0c;所以还请大家批评指正&#xff0c;非常欢迎大家给我留言评论&#xff0c;学术路上期…

react中父子数据流动和事件互相调用(和vue做比较)

前言&#xff1a;react中父子数据流动和事件互相调用&#xff0c;父组件给子组件数据&#xff0c;父组件调用子组件的事件&#xff0c;同理&#xff0c;子也可以调用父的数据和传值。react是单向数据流&#xff0c;具体使用跟vue是不同的。1、父组件的数据传给子组件&#xff0…

杰理手表-增加提示音-提示音音量调整--使用提示音

本章节非常详细的介绍这个提示音的增加-调整-使用&#xff0c;其余耳机包之类的也是差不多的&#xff01;&#xff01; 目录 1.添加自己需要用的提示音 2.根据添加的提示音-代码中配置 1.在tone_player.h中枚举里添加本次提示音的名称 2.把定义好的提示音放到tone_player.…

数据库的基本操作(视图,存储,触发器)

1、视图&#xff08;1&#xff09;什么是视图视图是虚拟表&#xff0c;是基于查询结果的可视化表&#xff0c;视图的作用有&#xff1a;①简化复杂查询 ②限制数据访问 ③提供数据独立性 ④汇总数据&#xff08;2&#xff09;怎么创建视图创建视图 CREATE OR REPLACE VIEW 视图…

Pytest项目_day13(usefixture方法、params、ids)

usefixture 我们还可以使用mark.usefixtures来调用fixture 这样相比在传入参数处调用fixture&#xff0c;会更加直接 但是如果我们在一个测试用例中使用了多个usefixtures&#xff0c;那么测试用例会先调用离他最近的那个fixtureparams fixture中还可以带参数 当我们用request.…

Rust 异步生态实战:Tokio 调度、Pin/Unpin 与零拷贝 I/O

&#x1f31f; Hello&#xff0c;我是蒋星熠Jaxonic&#xff01; &#x1f308; 在浩瀚无垠的技术宇宙中&#xff0c;我是一名执着的星际旅人&#xff0c;用代码绘制探索的轨迹。 &#x1f680; 每一个算法都是我点燃的推进器&#xff0c;每一行代码都是我航行的星图。 &#x…

通用 maven 私服 settings.xml 多源配置文件(多个仓库优先级配置)

<?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/SETTINGS/1.0.…

AT F-Intervals 题解

简化题意&#xff1a; 有 nnn 个区间&#xff0c;保证所有区间同时覆盖一个点&#xff0c;每次将区间平移一个单位&#xff0c;问使得区间两两不交的最小操作数&#xff08;端点处可重叠&#xff09;。n≤5000。l,r≤231−1n\leq 5000。l,r\leq 2^{31}-1n≤5000。l,r≤231−1。…

《飞算Java AI:从安装到需求转实战项目详细教学》

前引&#xff1a;在当今快速发展的技术环境中&#xff0c;人工智能&#xff08;AI&#xff09;与编程语言的结合为开发者提供了前所未有的便利。飞算Java AI作为一款智能化编程工具&#xff0c;能够显著提升Java开发效率&#xff0c;减少重复性工作&#xff0c;并帮助开发者更专…

6深度学习Pytorch-神经网络--过拟合欠拟合问题解决(Dropout、正则化、早停法、数据增强)、批量标准化

过拟合、欠拟合 在机器学习和深度学习中&#xff0c;过拟合&#xff08;Overfitting&#xff09;和欠拟合&#xff08;Underfitting&#xff09;是模型训练过程中常见的两种问题&#xff0c;直接影响模型的泛化能力&#xff08;即对未见过的数据的预测能力&#xff09;。 1. 欠…

新手向:Python编写简易翻译工具

Python 编写简易翻译工具&#xff1a;从零开始入门指南对于刚接触编程的新手来说&#xff0c;编写一个实用的工具是快速入门的好方法。本文将详细介绍如何用 Python 编写一个简易的翻译工具&#xff0c;帮助理解基础编程概念和实际应用。无需任何编程基础&#xff0c;只需按照步…