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

Web服务端技术原理及应用

前言 

黄色的是考点,蓝色的是重点。

HTML/CSS/JS

本章会有一个7分的程序设计题,用到前端知识

form表单元素,常用表单元素

html:HTML快速上手

基础语法、css常用选择器(ID、类)、盒子模型

css:网页美化指南

JS

常用数据类型(流程控制语句if-else)

概念:运行浏览器端上的脚本语言。可实现网页内容更新,数据动态变化,动画特效等。

作用:操作html页面元素、事件、属性,使其动起来

功能:数据校验、页面内容的动态处理、页面动画、控制浏览器行为

组成部分:

引入方式:注意:1.可多次引用 2.每次均使用script标签 3.不能混用

  • 嵌入式:代码复用低、维护性、阅读性差
  • 链接式 :复用高、易维护  

基本语法

var a = 10,  b = 'yy', c = 2;  
一行只有一个语句时;可省略var num = 24;
console.log(typeof num) 获取数据类型

js数据类型特点:

  • js是弱类型脚本语言,所有变量均可使用var声明
  • 变量赋值时确定类型
  • 变量赋值为null时,类型为object
  • 只声明不赋值,数据和数据类型均为undefined
  • js标识符命名规则和java一致,避免使用$和jquery冲突

基本对象 

数组、字符串、math

var num = Math.floor((Math.random()*100)) + 1 利用随机数[0,1)得到[0,100]的整数

 JQuery

选择器:ID选择器标识一个元素怎么写

概念:兼容多浏览器的js脚本库,简化html文档的遍历、事件处理、动画和ajax交互 

优点:强大的功能函数、丰富ui(用户界面)和插件、解决浏览器兼容问题、纠正错误脚本知识

选择器 

核心:$代表对Jquery对象的引用 

事件 

入口函数和事件绑定:多为静态绑定

 1.

  • 将DOM原生对象转换为jQuery对象:可以使用$()函数,例如 $('#myElement') 将选择器返回的原生DOM对象转换为jQuery对象。
  • 将jQuery对象转换为DOM原生对象:可以通过调用jQuery对象的.get(index)方法,或者使用[]索引访问器来获取原生DOM对象,例如 $('#myElement').get(0) 或 $('#myElement')[0]

2.使用.next()方法可以获取id为myDiv的div元素的下一个兄弟元素,例如 $('#myDiv').next() 

3.

  • .attr():用于获取或设置元素的属性。
  • .prop():用于获取或设置元素的属性或属性值(对于布尔值属性特别有用)。
  • .addClass():添加一个或多个类到元素。
  • .removeClass():移除一个或多个类从元素。
  • .toggleClass():切换元素的一个或多个类。

 4.

  • .each():对集合中的每个元素执行一个函数。
  • .map():创建一个新数组,其包含集合中每个元素调用函数后的返回值。
  • .filter():选择匹配特定选择器表达式的元素。
  • .find():获取元素的后代元素,这些元素匹配选择器。
  • .not():选择除了参数指定的元素之外的所有元素。
  • .has():选择包含特定子元素的元素。
  • .is():检查元素是否匹配特定的选择器或元素。

BootStrap

概念:由前端三件套开发的前端框架,由动态CSS语言Less编写

优点:开源、移动设备优先、浏览器支持、容易上手、快速开发、响应式设计

使用流程:下载bootstrap、将css、js文件放入项目、jquary放入js文件、页面引入

  •  container:固定容器的响应式布局规则,在窗口变化大小时,指定宽度范围使用固定的宽度
  • container-fluid:流容器的响应式布局规则,随窗口大小变化时一同变化,横向全部占满

栅格系统:12列

HTTP协议与Web服务端

http协议

1.http请求方式有哪些?get post delete 

2.http响应状态码有哪些?含义是?1xx、2xx、3xx

本节考选择和简答

即超文本传输协议,规定浏览器和服务器间数据传输的规定

HTTP协议特点

  • 基于TCP协议:面向连接、安全
  • 1.基于请求响应模型:一次请求对应一次响应
  • 2.无状态协议:对事务处理无记忆能力,每次请求响应都是独立的
  • 优点:速度快
  • 缺:多次请求间不能共享数据(java中使用会话技术cookie、session解决)

C/S结构:客户端-服务器端

用户通过客户端软件向服务器发起请求,服务端进行业务处理,并将处理结果响应给客户端

B/S结构 :浏览器-服务器端

无需开发客户端界面,使用统一标准的浏览器作为通用客户端,用户通过浏览器作为代理向web服务端发送请求,web服务端进行业务处理,将结果返回浏览器

每个网络分层模型有哪些协议?

请求 

浏览器和服务器就可看作是不断地请求和响应。

给出url链接知道什么是请求行

浏览器的用哪个浏览器或者说是客户端的一些操作系统信息用哪个请求头

请求包含三部分:

  • 请求行:请求方式/请求资源/http协议版本
  • 请求头:第二行开始,为键值对
  • 请求体:post请求的最后一部分,存放请求参数

响应

响应行的组成部分

包含三部分:响应行、响应头、响应体

常见的状态码,请求转发(重定向)它的响应状态码是3xx

  • 301:请求资源永久移位 302请求资源临时移位

Tomcat 

1.Tomcat乱码原因

Tomact控制台默认编码为UTF-8,windows控制台默认编码为ASCI,需调整日志输出编码

2.linux下解决端口号冲突的流程和命令

  • 查看指定端口号占用 netstat -ano|findstr 8080
  • 查看指定PID进程信息 tasklist|findstr 6980
  • 终止程序taskkill/PID 6980 /F

tomcat每个目录的作用、常见问题怎么解决如闪退、启动乱码、端口占用

Servlet 

servlet生命周期函数、体系结构、配置方法

问题3. Servlet 、GenericServlet、ServletRequest、ServletResponse接口

1.本质:Java类(程序)。web服务器或应用服务器上的Java类。

2.执行流程

接收请求、处理请求、发送响应

  • 浏览器通过http请求访问web服务器,服务器接受请求根据URL查找servlrt,加载创建servlet实例处理请求,生成响应,清理资源销毁servlet,浏览器接收响应

3.特点:

  • 平台独立性、多线程支持、优异性能

4.体系结构(2个类/3个接口如servletconfig)

5.创建servlet步骤

  • 创建类,继承Httpservlet
  • 重写doGet、doPost方法
  • 配置servlet访问路径

配置:XML配置

注解配置(常用的参数)

urlpattern和servlet参数含义:都是servlet的访问URL,二者二选一

loadOnStartup=-1和1的区别

  • 负数:延迟加载,即第一次请求时加载
  • 非负数: 容器启动时加载,具有较高优先级,比其他正数值更先加载

映射路径

servlet程序若想被外界访问,需把servlet程序映射到一个URL路径上

  • web.xml通过<url-pattern>配置
  • 注解通过value和Urlpatterns配置
  • Urlpatterns时要么以/开头,要么以*开头,"myweb"为非法路径,且下面映射规则不能混用如"/path/*.do"非法

映射规则:优先级依次降低

访问静态资源和静态页面是否需要经过Servlet处理,取决于Web服务器和应用服务器的配置以及所使用的框架 。如使用/*

即某个Servlet配置urlPatterns="/*"的话,访问任何界面都只会是该Servlet生成的响应 

生命周期方法

servlet的生命周期由tomcat控制

四个方法:构造方法、init方法、service方法、destroy方法

  • init方法:只调用一次,创建完servlet对象进行初始化,源码中有两个init方法:带参不带参

  • service为servlet核心方法,每次请求都会调用,处理客户端的请求和响应,根据请求类型通过多态技术调用doGet、doPost方法
  • destroy只调用一次,释放资源,停止服务器或重新部署web对象时销毁servlet对象

单例对象(存在并发问题、解决方式)

servlet是一个单例对象,服务器只会创建一个实例对象,驻留在内存中,为后续其他请求服务,直至应用卸载才会销毁。

当多个请求访问实例时就存在并发问题。解决:局部变量、同步代码块

1.声明servlet启动的顺序

2.精确、目录、扩展名、任意匹配

3.可看作四个方法,加载和实例化构造方法,初始化init,服务service,销毁destroy

 JDBC

组件:

  • DriveManager:驱动管理对象:注册驱动,获取数据库连接
  • Connection:数据库连接对象
  • Statement/PreparedStatement:执行sql对象
  • ResultSet:结果集对象,封装查询结果
  • SQLException:处理发生在数据库中的错误

工作原理(注册驱动...)

  • 加载数据库注册驱动
  • 连接数据库
  • 执行SQL语句
  • 处理结果
  • 关闭连接

SQL注入问题(PreparedStatement)

含义:web应用没有判断用户输入是否合理,导致前端传入后端的参数是攻击者可控的,可根据参数带入到数据库查询,构造不同SQL语句对数据库作任意查询。

即用户在表单中输入包含SQL关键字的数据使数据库执行非常规代码的过程

数据库连接池技术

作用:避免频繁创建数据库连接

职责:分配、管理、释放数据库连接,允许应用重复使用现有数据库连接而非创建新的

技术原理:为数据库建立一个缓冲池,里面放入一定数量的连接,当有需要时从中取出,用完放回

专业描述:初始化时创建一定数量的数据库连接放在连接池中,当有需要时,不是直接创建Connection,而是向连接池申请,有空闲则返回,无空闲创建新的,用完回收。

JDBCUtils工具类

常用对象 

servlet在接收http请求时会针对请求分别创建HttpServletRequest、HttpServletResponse对象。注意:每个请求都会包括三部分:请求行、请求头、请求体

HTTPServletRequest

请求行方法

请求行:内容包括:请求方式/请求资源/http协议版本

请求头方法

第二行开始,为键值对

请求体方法

请求参数方法

获取参数的方法有哪些?

请求转发

一种在服务器内部的资源跳转方式

如何获取cookies?

HttpServletRequest对象来获取客户端发送的cookies,使用getCookies()方法,返回一个Cookie数组:

Cookie[] cookies = request.getCookies(); // 获取所有cookies

转发方法 

请求转发通过RequestDispatcher对象来实现,该对象可以通过HttpServletRequest对象的getRequestDispatcher()方法获得。:

// 获取请求转发器对象:RequestDispatcher
RequestDispatcher dispatcher = request.getRequestDispatcher("/targetServlet"); // 或者是"/target.jsp"
// 使用对象进行转发
dispatcher.forward(request, response);

HTTPServletResponse

概念:Tomcat接收请求就会创建HTTPServletResponse对象供servlet使用,其中不仅包括响应数据,何有方法去操纵数据,如设置响应头、发送错误状态码、写入响应内容

设置响应行

response对象可以改变响应信息
改变响应行:
response.setStatus(404)设置状态码

设置响应头

设置响应头
response.setHeader("server","JBoss")

重定向

概念:将用户从一个URL引导到另一个URL。一般会有两次请求,第一次是用户请求,第二次是浏览器自动发送。

请求转发和重定向的区别是?几个维度来说

  • 请求转发是服务器端行为,客户端不知道、重定向是客户端行为
  • 请求转发是一次请求,重定向是两次请求。
  • 请求转发可以共享原始请求的数据(request对象进行数据保存传递),重定向则不能(除非通过其他方式传递)。
  • 请求转发地址栏不变,重定向地址栏会改变。
  • 请求转发只能是当前web应用资源,重定向可其他web应用甚至是外部域名网站

ServletConfig

概念:用于加载servlet初始化参数,代表当前servlet的配置信息

ServletConfig 和 ServletContext 并不是一一对应的关系

核心api

ServletContext

servlet的上下文对象,代表了当前应用程序的上下文。一个web程序中只有一个servletcontext。

三种获取对象的方法。所有servlet都共享这个对象,故叫做全局应用程序共享对象

核心api

得到当前web应用路径
String contextPath = context.getContextPath();
response.sendRedirect(contextPath + "/index.html");得到web应用的初始化参数:getInitParameter();

域对象

概念:用于web应用中用于存储数据的

常用三大域对象:

servlet中三个:HttpServletRequest、HttpSession、ServletContext

JSP中有四个:多一个PageContext

每个域对象的作用范围和创建时机:

HttpServletRequest

  • 作用范围:请求域,一次HTTP请求。当一个客户端发送一个请求到服务器时,这个请求对象就会被创建,并且在整个请求被处理的过程中都是可用的。
  • 创建时机:在每个请求被服务器接收时创建。当请求结束时,这个对象就会被销毁。

HttpSession

  • 会话域,作用域是一次会话。会话可以跨越多个请求,只要客户端不关闭浏览器,会话就会一直存在。
  • 当用户第一次访问一个应用时,如果没有为该用户创建会话,就会创建一个新的HttpSession对象。

ServletContext

  • 应用域,作用域是整个Web应用。这个对象在整个应用的生命周期内都是可用的,通常用于存储全局信息。
  • 当Web应用启动时,就会被创建。这个对象会一直存在,直到Web应用被卸载。

使用域对象共享数据操作:

  • 保存数据:void setAttribute(String name,Object object)
  • 获取数据:Object getAttribute(String name)
  • 删除数据:void removeAttribute(String name)

不同点、共同点

JSP

运行原理和域对象

概念:java服务器端页面,用于实现javaweb中客户端页面,servlet更高级别的扩展。文件由html和java语句 默认编码UTF-8

基本语法

可以看到html文件结构相似,区别在于多了page指令

本质:就是一个servlet,可以使用servlet的所有功能,但jsp部分功能servlet不能使用

运行原理

<%%>中可写入常规java语句

jsp工作模式:请求/响应模式。jsp文件收到请求时,jsp容器(也是servlet)会把jsp文件转化成servlet

运行原理

  • 请求JSP页面:客户端发出请求,请求访问jsp文件
  • 编译JSP页面:jsp容器(就是servlet)会把jsp文件转化成java源文件(servlet),若有错误,中断转化,向服务端客户端发送错误信息
  • 转换成功jsp容器会将java源文件编译成同字节码文件*.class(就是个servlet)
  • 执行Servlet:servlet容器会加载转换的servlet,并实例化对象,执行getInit()完成初始化,生命周期内该方法只执行一次
  • jsp容器执行jspService()方法处理客户端请求,为每个请求创建一个线程,多请求多线程,一一对应
  • 生成HTML发送响应:请求完成,响应对象由JSP容器接收,将HTML格式响应信息发送回客户端

脚本元素的三种类型

  • JSP Scriptlets
  • 声明标识
  • JSP表达式

熟悉指令page include taglib 

9大内置对象

jsp默认创建的,可在页面直接使用。pageContext

域对象查找数据顺序:

页面缓冲机制

缓存机制

概念:JSP页面执行过程中,输出流被缓存起来,直到整个页面执行完成,再一次性发送给客户端的机制。主要目的是为了提高页面的响应速度和减少网络传输的数据量。

缓存区数据与外写触发条件4个

  • 缓冲池满
  • 刷新缓区
  • 关闭缓区
  • 执行完jsp页面

session原理

概念:session对象代表用户会话,用户访问网站时创建,会话过期或关闭浏览器后销毁。jsp页面中可通过session存储和获取会话数据,可跨多个页面和请求共享数据。每个session独立互不干扰。

原理 :

  • 服务器接收浏览器第一次请求(登录),创建一个Session,并生成一个唯一的JSESSIONID
  • 服务器将JSESSIONID存储在Cookie中,并随响应发送回浏览器。
  • 浏览器自动设置Cookie
  • 后续请求自动带上Cookie:

Ajax与JSON技术 

概念:异步的javascript和xml。

ajax可以实现页面的局部刷新,数据异步交互(在等待数据到达的同时继续执行其他任务,提高了效率和响应性。)

Ajax与传统请求方式的区别 

传统请求方式:

  • 每次请求都会请求一个新的页面
  • 刷新页面也会请求重新加载页面

优势

  • 请求数据量少:只对所需必要数据做请求
  • 请求分散:按需请求,异步形式,请求不会集中爆发,减小了服务器压力
  • 用户体验优化

Ajax基础操作

JavaScript方式

XMLHttpRequest对象:可扩展超文本传输请求,缩写为XHR。这是Ajax基础该对象可在不向服务器提供整个页面时,实现局部更新网页。也可用于客户端和服务器的局部通信。

XHR使用:

1.创建

var xhr = new XMLHttpRequest(); // 创建一个新的XMLHttpRequest对象

2.open()send()方法发送请求

xhr.open('GET', 'http://example.com/api/data', true);// 设置请求头部(如果需要)
// xhr.setRequestHeader('Content-Type', 'application/json');// 发送请求
xhr.send();

3.接受并处理响应结果

// 定义响应到达时的处理函数
xhr.onload = function () {if (xhr.status >= 200 && xhr.status < 300) {// 请求成功,可以处理响应数据console.log(xhr.response); // 打印响应内容

JQuery方式

$.ajax方法可实现所有Ajax操作

 

JQuery中的GET请求POST请求

GET/POST:向服务器发送get/post请求

  • url:要请求的资源的 URL。
  • data:(可选)发送到服务器的数据。可以是 key=value 形式的字符串或一个对象。
  • funtion(data,status,xhr):(可选)当请求成功时执行的data表从服务器返回的、status为当前请求状态码、xhr为当前请求的xhr对象
  • dataType:(可选)期望的数据类型(例如:"json"、"xml"、"html"、"text")。
$.get(url, [data], [callback], [type])$.get('http://example.com/api/data', function(data) {console.log(data); // 处理返回的数据
});

ajax中常用数据格式为json,键值对形式,且值若为string,必须用“”括住,其他数据类型不必。

过滤器

应用场景:字符编码过滤、统一缓存控制、用户登录与权限控制、资源保护

生命周期、执行顺序、配置过滤资源的方式

servlet有三个高级特性:Filter、Listener和文件上传下载

Filter概念:对servlet容器调用servlet的过程进行拦截,位于客户端和处理程序之间,能够对请求响应进行检查和修改

过滤器执行流程:客户端请求,触发过滤器,拦截请求访问的资源,放行,返回

接口

Filter接口:分三个方法

  • init(FilterConfig filterConfig):初始化,创建Filter实例后即调用init方法
  • doFilter:三个参数。Servlet容器调用该方法完成实际的过滤操作。其中,参数request和response为Web服务器或Filter链中的上一个Filter传递过来的请求和响应对象,参数chain代表当前Filter链的对象。
  • destory:释放Filter打开的资源,如关闭数据库和IO流。在web服务器释放Filter对象之前被调用

FilterConfig接口

封装Filter配置信息,在初始化阶段服务器将接口对象传递给初始化方法init

FilterChain接口

FilterChain接口的doFilter()方法用于调用过滤器链中的下一个过滤器, 如果这个过滤器是链上的最后一个过滤器,则将请求提交给处理程序或 将响应发给客户端。

生命周期

三阶段:创建执行销毁

创建:web启动时创建Filter实例对象,调用init方法,完成对象初始化。且一个完整请求Filter只会创建一次,init方法也只执行一次。

执行:客户端请求目标资源时,服务端筛选处符合条件的filter,按照类名先后顺序执行doFilter方法,如Filter01优先于Filter02,且一次完整请求可执行多次doFilter方法

销毁:服务器关闭时,调用destroy方法销毁Filter对象

过滤器开发步骤

定义类,实现Filter接口:两种方式:

  • 手动:编写java类实现Filter接口并实现doFilter方法。
  • 自动:IDE直接创建Filter

重写接口规范:即Filter接口中那三个方法

配置Filter资源

两个方法:

web.xml:通过<filter><filter-mapping>元素对编写类进行注册,设置所能拦截的资源

注解配置:

 

过滤器链:编写多个Filter组合在一起称为Filter链,根据注册方式不同,执行filter流程也不同

监听器

分类: 

会话技术 

概念:管理浏览器和客户端在和服务器端会话时产生的会话数据。

为保存这些数据提供两个对象:cookie、session

Cookie客户端会话技术

初次访问,服务器会给客户端发送信息,保存在cookie中,二次访问时,会将cookie信息加在请求头上发送服务器

特点:会话数据保存在浏览器客户端

原理过程分6步:

  • 服务器端创建cookie对象,保存会话数据
  • 服务器发送cookie信息到浏览器
  • 浏览器得到cookie保存在浏览器端
  • 浏览器下次访问服务器带着cookie信息
  • 服务器接收cookie信息

常见方法:构造方法、有效访问路径、有效时间

Cookie cookie = new Cookie("name","value")
cookie.setPath("/Web01")
cookie.setMaxAge(20)  int

 浏览器在有效路径下访问服务器才会带cookie信息

cookie局限:

  • 只能存字符串类型,不能保存对象
  • 只能存非中文 
  • 一个cookie容量不超过4KB

Session服务器端会话技术

会话管理为什么创建session域对象:通过session,服务器可以识别不同的用户,并存储每个用户的特定信息。

session创建的时机是:初次访问服务器,如果没有找到对应的session,服务器会自动创建一个新的

session核心方法

特点:通过域对象将会话数据保存在服务器。session技术只能采用会话域

三大域对象:HttpServletRequest请求域、HttpSession会话域、ServletContext应用域

Session接口常用方法

技术核心就是HttpSession嘛,所以session指得就是HttpSession接口,常用方法:

创建:HttpSession session = request.getSession()

保存获取删除和域对象中一致:保存setAttribute、获取getAttribute、删除removeAttribute

原理

在浏览器初次请求访问服务器时,服务器通过get.Session()方法船舰session对象,分配唯一ID:JSESSIONID,作为cookie值发送给浏览器,浏览器在二次访问时就会携带ID,服务器通过getSession方法在服务器内存中搜索对应session,找到则返回,找不到重新创建。

cookie和session区别

文件的上传下载

上传

两方面:JSP页面如何提交 Servlet对数据接收和保存

设置表单的3要点

提交表单数据

表单提交时表单项都以表单数据的方式进行编码,因此不能通过常规的getParameter来获取非文件数据,需要获取相应part对象后,单独获取该对象的输入流获得内容

下载

设置响应头

Content-Disposition这个响应头可以告诉浏览器文件应该被如何处理。

步骤

相关文章:

Web服务端技术原理及应用

前言 黄色的是考点&#xff0c;蓝色的是重点。 HTML/CSS/JS 本章会有一个7分的程序设计题&#xff0c;用到前端知识 form表单元素&#xff0c;常用表单元素 html:HTML快速上手 基础语法、css常用选择器&#xff08;ID、类&#xff09;、盒子模型 css:网页美化指南 JS …...

数据库的使用09:使用SSMS工具将SQLsever数据导出到Excel

第一步&#xff0c;新建一个空白的.csv文件 第二步&#xff0c;按步骤点击导出 第三步&#xff0c;选择数据源&#xff08;Db数据库&#xff09; 第四步&#xff0c;选择目标源&#xff08;CSV平面文件目标&#xff09; 第五步&#xff0c;指定表或SQL 一直点下一步即可&am…...

Python中__getitem__ 魔法方法

在Python中&#xff0c;__getitem__ 是一个特殊的方法&#xff0c;通常称为“魔法方法”或“双下方法”&#xff08;因为它们的名字前后都有两个下划线&#xff09;。__getitem__ 方法允许一个对象实现像序列&#xff08;如列表、元组、字符串&#xff09;一样的行为&#xff0…...

自动驾驶三维重建

大概八成估计是未来的科研方向了 Neural Radiance Field in Autonomous Driving: A Survey...

小程序中引入echarts(保姆级教程)

hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生…...

INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN这四个怎么在gorm中使用

在 GORM 中&#xff0c;JOIN 操作是通过 Joins 方法实现的&#xff0c;而不同类型的 JOIN&#xff08;如 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN&#xff09;可以通过特定的 SQL 语法来表示。GORM 本身并没有直接的 INNER, LEFT, RIGHT 等专用方法&#xff0c;但可以…...

分布式版本管理工具——Git关联远程仓库(github+gitee)

Git远程仓库&#xff08;Github&#xff09;的基本使用 一、前言二、Git远程仓库介绍三、演示1. 关联github远程仓库2. 关联gitee&#xff08;码云&#xff09;远程仓库3. 重命名远程仓库名4. 移除远程仓库 四、结束语 一、前言 古之立大事者&#xff0c;不惟有超世之才&#x…...

复习打卡大数据篇——HIVE 01

目录 1. 数据仓库初识 1.1 数据仓库概念 1.2 数据仓库特点 1.3 OLTP、OLAP区别 1.4 数仓分层架构 2. HIVE初识 2.1 什么是hive&#xff1f; 2.2 hive架构 3. HIVE初体验 3.1 beeline客户端使用 1. 数据仓库初识 1.1 数据仓库概念 数据仓库&#xff0c;Data WareHou…...

第430场周赛:使每一列严格递增的最少操作次数、从盒子中找出字典序最大的字符串 Ⅰ、统计特殊子序列的数目、统计恰好有 K 个相邻元素的数组数目

Q1、使每一列严格递增的最少操作次数 1、题目描述 给你一个由 非负 整数组成的 m x n 矩阵 grid。 在一次操作中&#xff0c;你可以将任意元素 grid[i][j] 的值增加 1。 返回使 grid 的所有列 严格递增 所需的 最少 操作次数。 2、解题思路 逐列处理&#xff1a;我们需要逐…...

前端处理跨域的几种方式

什么是跨域 指一个域下文档或者脚本去请求另一个域下的资源&#xff0c;这里的跨域是广义的&#xff1b; 广义的跨域&#xff1a; 资源提跳转&#xff1a;A链接、重定向、表单提交资源潜入&#xff1a;link、script、img、frame等dom标签&#xff0c;还有样式中background:url(…...

《计算机网络A》单选题-复习题库

1. 计算机网络最突出的优点是&#xff08;D&#xff09; A、存储容量大B、将计算机技术与通信技术相结合C、集中计算D、资源共享 2. RIP 路由协议的最大跳数是&#xff08;C&#xff09; A、13B、14C、15D、16 3. 下面哪一个网络层次不属于 TCP/IP 体系模型&#xff08;D&a…...

网络安全威胁2024年中报告

下载地址&#xff1a; 网络安全威胁2024年中报告-奇安信...

Quartz - JDBC-Based JobStore事务管理及锁机制

​ 由于JDBC-Based JobStore在进行job注册、trigger注册、任务调度及执行过程中需要操作数据库&#xff0c;而且会涉及到多张表&#xff0c;比如trigger注册的时候会根据不同情况写入triggers、simple_triggers或cron_triggers表&#xff0c;在执行任务的时候会读取和更新trigg…...

机器学习作业 | 泰坦尼克号生存的预测任务

泰坦尼克号生存的预测任务 学校作业&#xff0c;我来水一水 环境&#xff1a;pycharmanaconda虚拟环境 文章目录 泰坦尼克号生存的预测任务0.环境搭建参考&#xff1a;1 目的与要求2 任务背景3 任务简介4 模型介绍1.决策树&#xff08;Decision Tree&#xff09;2.朴素贝叶斯…...

Tonghttpserver6.0.1.3 使用整理(by lqw)

文章目录 1.声明2.关于单机版控制台和集中管理控制台3.单机版控制台3.1安装&#xff0c;启动和查看授权信息3.2一些常见的使用问题&#xff08;单机控制台&#xff09;3.3之前使用的是nginx&#xff0c;现在要配nginx.conf上的配置&#xff0c;在THS上如何配置3.4如何配置密码过…...

图像坐标导数的表达式 Expression for Image Coordinate Derivate

Title: 图像坐标导数的表达式 Expression for Image Coordinate Derivate 文章目录 I. 图像坐标 Image CoordinatesII. 关于 x \mathbf{x} x 的导数 Derivative wrt x \mathbf{x} x1. 第一部分2. 第二部分3. 两部分合并 III. 关于 H H H 的导数 Derivative wrt H H H1. 第一…...

Jenkins 中自动化部署 Spring Boot 项目

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的全栈工程师 欢迎分享 / 收藏 / 赞 / 在看…...

Live555、FFmpeg、GStreamer介绍

Live555、FFmpeg 和 GStreamer 都是处理流媒体和视频数据的强大开源框架和工具&#xff0c;它们广泛应用于实时视频流的推送、接收、处理和播放。每个框架有不同的设计理念、功能特性以及适用场景。下面将详细分析这三个框架的作用、解决的问题、适用场景、优缺点&#xff0c;并…...

西门子DBX DBD DBB DBW的关系

DB10.DBD0 DB10.DBW0DB10.DBW2 DB10.DBB0DB10.DBB1DB10.DBB2DB10.DBB3 DB10.DBX0.00.7DB10.DBX1.01.7DB10.DBX2.02.7DB10.DBX3.03.7 使用之前需要在DB10中先定义&#xff0c;如果你仅在DB10中定义了一个DBD0&#xff0c;那么原则上你是可以使用上述所有地址的&#xff0c;但…...

语言模型在时间序列预测中的作用

语言模型在时间序列预测中的作用 从目前相关的研究情况来看,大语言模型在时间序列预测中的作用存在争议。 质疑其有用性的方面 消融研究结果:在对一些流行的基于语言模型(LLM)的时间序列预测方法进行消融研究时发现,去除LLM组件或将其替换为基本注意力层,在大多数情况下…...

【centos8 镜像修改】centos8 镜像修改阿里云

要将 CentOS 8 的镜像源修改为阿里云镜像&#xff0c;你需要编辑 /etc/yum.repos.d/ 目录下的 .repo 文件。以下是具体的步骤&#xff1a; 备份原始的 .repo 文件&#xff1a; 在编辑之前&#xff0c;建议备份原始的 .repo 文件&#xff0c;以便在出现问题时可以恢复。 sudo cp…...

2024年12月个人工作生活总结

本文为 2024年12月工作生活总结。 研发编码 Golang语言byte数组赋值 假定有如下变量&#xff1a; var strCode string var bCode [9]byte现需将string类型转换成byte类型&#xff0c;如下&#xff1a; bCode []byte(strCode)无法转换&#xff0c;提示&#xff1a; cannot…...

[cg] android studio 无法调试cpp问题

折腾了好久&#xff0c;native cpp库无法调试问题&#xff0c;原因 下面的Deploy 需要选Apk from app bundle!! 另外就是指定Debug type为Dual&#xff0c;并在Symbol Directories 指定native cpp的so路径 UE项目调试&#xff1a; 使用Android Studio调试虚幻引擎Android项目…...

vulnhub靶场【warzone】之2

前言 靶机&#xff1a;warzone-1&#xff0c;IP地址192.168.1.71 攻击&#xff1a;kali&#xff0c;IP地址192.168.1.16 都采用虚拟机&#xff0c;网卡为桥接模式 主机发现 因为都是同一局域网下&#xff0c;相当于内网环境&#xff0c;所以使用下面的工具&#xff0c;若想…...

MySQL什么情况下会加间隙锁?

目录 一、使用范围条件查询 二、唯一索引的范围查询 三、普通索引的查询 四、间隙锁的锁定规则 五、间隙锁的影响 间隙锁(Gap Lock)是MySQL中的一种锁机制,主要用于防止幻读现象。在MySQL的InnoDB存储引擎中,当事务隔离级别设置为可重复读(Repeatable Read)时,间隙…...

REDIS2.0

string list hash set 无序集合 声明一个key&#xff0c;键里面的值是元素&#xff0c;元素的类型是string 元素的值是唯一的&#xff0c;不能重复 多个集合类型之间可以进行并集&#xff0c;交集&#xff0c;集查的运算 sadd test1 a b c c d &#xff1a;添加5个元素&am…...

Java方法使用详解:从基本概念到进阶技巧

1. 方法介绍 方法是执行特定功能的代码块&#xff0c;可以被多次调用。方法由方法头和方法体组成&#xff0c;方法头包括方法名、参数列表和返回类型。方法体包含实际执行的代码。 2. 无参无返回值方法使用 这种方法没有参数&#xff0c;也不返回任何值。常用于执行一些不需…...

RT-Thread中堆和栈怎么跟单片机内存相联系

现在RT-ThreadMCU的应用方式越来越普遍&#xff0c;RT-Thread需要配置MCU中的RAM到的系统中&#xff0c;进入系统内存管理&#xff0c;才能提供给基于实时系统的应用程序使用&#xff0c;比如给应用程序提供malloc、free等函数调用功能。在嵌入式软件开发中&#xff0c;我们经常…...

对jenkins的rpm进行处理

下载Jenkins RPM包 首先&#xff0c;你需要从Jenkins官方网站&#xff08;https://pkg.jenkins.io/redhat - stable/&#xff09;下载合适的RPM包。通常&#xff0c;对于CentOS等基于RPM的系统&#xff0c;可以选择jenkins - <version>.noarch.rpm这种格式的包&#xff0…...

从Huggingface中下载数据集、模型

报错&#xff1a; 可能原因&#xff1a; 1. 服务器网络连接 这样就显示没有问题 2.访问权限问题 3.连接超时 4.使用镜像 使用镜像的方法在autodl上是可以成功的&#xff0c;但是在一些服务器却不能成功&#xff0c;那么就需要我们下载到本地&#xff0c;然后再把本地的打包…...

设计模式的分类

根据概念性动机分3类设计模式 创建型模式&#xff1a;管理对象的创建。 常用的有单例模式&#xff0c;简单工厂模式&#xff0c;工厂方法模式&#xff0c;另外还有原型模式&#xff0c;抽象工厂模式&#xff0c;建造者模式 结构型模式&#xff1a;将已有对象加入到设计中时…...

【图像去噪】论文精读:DualDn: Dual-domain Denoising via Differentiable ISP

请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 文章目录 前言Abstract1 Introduction2 Related W…...

张量与数据类型

Pytorch最基本的操作对象——张量&#xff08;tensor&#xff09;&#xff0c;张量是Pytorch中重要的数据结构&#xff0c;可认为是一个高维数组。一般的&#xff0c;标量&#xff08;scalar&#xff09;是只有大小没有方向的量&#xff0c;如1、2、3等&#xff1b;向量&#x…...

JavaScript概述

Web网页的三要素&#xff1a;HTML结构、CSS表现、JavaScript行为。 一、JavaScript语言的组成 JS的全称叫JavaScript&#xff0c;它一门面向对象的解释型弱类型语言。 JavaScript也是由3个部分来组成的&#xff1a;ECMAScript、DOM、BOM。 ECMAScript——它是JS的核心部分&a…...

tarjan算法——割边

今天也是小小的学了一个tarjan算法中的割边的一个应用 他和割点很像&#xff0c;都是用来处理无向图的&#xff0c;只不过是不能走反向边罢了 我们首先来说一个割边的定义 割边 当我们在无向图中删除一个边&#xff0c;无向图被分成不联通的两部分&#xff0c;那么这条边就…...

ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础

文章目录 简介为什么需要I2S&#xff1f;关于音频信号采样率分辨率音频声道 怎样使用I2S传输音频&#xff1f;位时钟BCLK字时钟WS串行数据SD I2S传输模型I2S通信格式I2S格式左对齐格式右对齐格式 i2s基本配置i2s 底层API加载I2S驱动设置I2S使用的引脚I2S读取数据I2S发送数据卸载…...

Mybatisplus-IService

IService 是 MyBatis-Plus 提供的一个通用 Service 层接口&#xff0c;它封装了常见的 CRUD 操作&#xff0c;包括插入、删除、查询和分页等。通过继承 IService 接口&#xff0c;可以快速实现对数据库的基本操作&#xff0c;同时保持代码的简洁性和可维护性。 IService 接口中…...

深入浅出 Beam Search:自然语言处理中的高效搜索利器

Beam Search 技术详解 1. 引言 Beam Search 是一种广泛应用于自然语言处理&#xff08;NLP&#xff09;、机器翻译、语音识别等序列生成任务中的启发式搜索方法。本文将详细探讨 Beam Search 的原理、实现步骤、应用场景及其优缺点&#xff0c;并通过具体例子帮助读者更好地理…...

MySQL 可重复读隔离级别,完全解决幻读了吗?

什么是事务隔离级别&#xff1f; 事务隔离级别是数据库用来控制多个并发事务之间如何交互的机制。不同的隔离级别提供了不同程度的保护&#xff0c;以防止并发事务之间的相互干扰。MySQL 支持四种隔离级别&#xff1a; 读未提交&#xff08;Read Uncommitted&#xff09;&…...

Nginx知识详解(理论+实战更易懂)

目录 一、Nginx架构和安装 1.1 Nginx 概述 1.1.1 nginx介绍 1.1.2?Nginx 功能介绍 1.1.3?基础特性 1.1.4?Web 服务相关的功能 1.2?Nginx 架构和进程 1.2.1?Nginx 进程结构 1.2.2?Nginx 进程间通信 1.2.3?Nginx 启动和 HTTP 连接建立 1.2.4?HTTP 处理过程 1…...

VScode怎么重启

原文链接&#xff1a;【vscode】vscode重新启动 键盘按下 Ctrl Shift p 打开命令行&#xff0c;如下图&#xff1a; 输入Reload Window&#xff0c;如下图&#xff1a;...

华夏ERP系统部署

JDK安装及环境变量配置 数据库安装 Redis安装部署 Nginx安装部署 后端程序前端程序部署...

实际部署Dify可能遇到的问题:忘记密码、开启HTTPS、知识库文档上传的大小限制和数量限制

背景 前面我们以 docker compose 容器化的方式本地部署了 Dify 社区版&#xff0c;并快速体验了其聊天助手、工作量编排以及智能体&#xff08;Agent&#xff09;功能。不过后续实际生产环境使用时遇到了忘记密码、如何开启SSL以支持HTTPS、如何突破知识库文档上传的大小限制和…...

【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[4]--free

C语言中的free函数用于释放之前通过malloc、calloc或realloc动态分配的内存。然而,在使用free函数时,开发者可能会遇到一些陷阱和缺陷。 一、功能与用法 free 函数是 C 语言中用于释放动态分配内存的关键函数。在程序使用 malloc、calloc 或 realloc 等函数在堆上分配了内存…...

【TypeScript篇】TypeScript命令行编译和自动化编译

目录 1. 命令行编译 步骤一&#xff1a;创建一个demo.ts文件 步骤二&#xff1a;全局安装TypeScript 步骤三&#xff1a;使用命令编译.ts文件 2. 自动化编译 步骤一&#xff1a;生成编译控制文件 步骤二&#xff1a;开启监视 3. 自动化编译的一些其它问题 1. 命令行编译…...

电子应用设计方案78:智能窗户系统设计

智能窗户系统设计 一、引言 智能窗户系统旨在为用户提供更便捷、舒适和节能的窗户控制体验&#xff0c;同时增强家居的安全性和智能化程度。 二、系统概述 1. 系统目标 - 实现窗户的自动开关控制&#xff0c;根据环境条件和用户设定进行操作。 - 具备风雨感应功能&#xff0c…...

数据挖掘笔记 | 插值 | 拉格朗日插值 | 龙格现象 | 埃尔米特插值 | 分段三次埃尔米特插值

Interpolation插值 ​ 对于缺失值的处理&#xff0c;比较常见的是数值分析中的插值和拟合这两种方法。插值指的是在离散数据的基础上补插连续函数&#xff0c;使得这条连续曲线通过全部给定的离散数据点&#xff1b;拟合则是找到一条“最优”的曲线&#xff0c;尽可能地贴近平…...

Ubuntu网络配置(桥接模式, nat模式, host主机模式)

windows上安装了vmware虚拟机&#xff0c; vmware虚拟机上运行着ubuntu系统。windows与虚拟机可以通过三种方式进行通信。分别是桥接模式&#xff1b;nat模式&#xff1b;host模式 一、桥接模式 所谓桥接模式&#xff0c;也就是虚拟机与宿主机处于同一个网段&#xff0c; 宿主机…...

【Linux网络编程】第十七弹---深入理解以太网与ARP协议:从帧格式到数据报解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、认识以太网 1.1、以太网帧格式 1.2、认识 MAC 地址 1.3、对比理解 MAC 地址和 IP 地址 1.4、认识 MT…...

AVL 树

1.AVL树的概念 AVL树是最先发明的自平衡二叉查找树&#xff0c;AVL树可以是一棵空树&#xff0c;或者具有以下性质的树&#xff1a;左右子树都是AVL树。且左右子树的高度差的绝对值不超过1。 AVL树是一颗高度平衡搜索二叉树&#xff0c;通过控制高度去控制平衡。 AVL树的发明…...