web期末复习 2023.02.11

news2024/9/30 9:26:27

文章目录

      • Web 的概念
      • Web 组成
      • 用户通过浏览器请求资源的过程:
      • HTML 超文本标记语言
      • CSS
      • 插入样式表的方法有三种:
      • 对象,类,实例
      • 一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:
      • JavaScript 用法
      • 什么是 Java Server Pages?
      • JSP 注释
      • JSP 的 Java 代码块
      • JSP 的声明语句块
      • JSP 的表达式块
      • JSP 内置对象
      • JSP 指令(directive)
      • JSP 动作(Action)
      • 1、<jsp:include>动作
      • forward 动作
      • EL 表达式
      • JavaBean 规范
      • JavaBean 作用
      • EL 内置对象
      • URI 和 URL 之间的区别
        • URI
        • URL
        • URI 和 URL 之间的区别。
      • JSTL
      • JSP Standard Tag Library,
      • Servlet 生命周期是指,
      • Servlet 生命周期方法的执行流程:
      • 当 Servlet 实例被创建好后被放在了哪里?web.xml 中 URI 与 Servlet 的映射关系反映到 内存中是以什么形式存在呢?
      • 什么是 ServletConfig?
      • 什么是 ServletContext?
      • 2.1 GenericServlet
      • 2.1.2 版本 2-获取 ServletConfig

Web 的概念

Web 是 Internet 上的一种服务,使用超文本技术(Hyper text)将 Internet 上 的资源(文字、图片、声音、视频)以页面的形式表示出来。 Web 是一种分布式的应用框架,基于 Web 的应用典型的是 B/S 架构。

Web 组成

服务器:物理方面指的是存放用户访问的信息资源的远程计算机;软件方面指的是能根据用 户的请求将信息资源传递给用户的应用程序。

客户端:物理设备方面指的是客户所使用的本地计算机;软件方面是指能接收并显示服务器 上传递过来信息资源的应用程序。

用户通过浏览器请求资源的过程:

(1)用户打开 IE 浏览器(FireFox、Chrome、IE、Edge 等浏览器),输入需要请求的 Web 服 务器的 URL 地址。
(2)浏览器会根据 URL 地址找到指定的 Web 服务器,并向其发出请求(request)。
(3)Web 服务器接收到请求,就会做出相应的处理,并生成处理结果。 (4)Web 服务器会把处理后生成的响应结果返回给发出请求的浏览器。 (5)浏览器接收到响应结果后,就会对其结果进行解释,最终将结果以网页的形式展示给 用户。

HTML 超文本标记语言

在这里插入图片描述

CSS

CSS(Cascading Style Sheets)称做样式表,或称做层叠样式表。它是一种用来表现 HTML(标准 通用标记语言的一个应用)或 XML(标准通用标记语言的一个子集)等文件样式的计算机语言。 在 HTML 页面中采用 CSS 技术,可以对全站页面有共同属性的布局、字体、颜色、背景和其 他属性实现更加精确的控制。
CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明:
在这里插入图片描述
选择器通常是需要改变样式的 HTML 元素。

每条声明由一个属性和一个值组成。

**属性(property)**是设置的样式属性(style attribute)。

每个属性有一个值。属性和值被冒号分开。

插入样式表的方法有三种:

外部样式表(External style sheet)
内部样式表(Internal style sheet)
内联样式(Inline style)

对象,类,实例

对象:编程语言中的对象是一个泛指,万物皆对象(我们所要研究学习以及使用的都是对象)
类:对象的具体细分(按照属性或者特性细分为一些类别)
实例:某一类中具体的事物

一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

核心(ECMAScript):描述了 JS 的语法和基本对象;
文档对象模型(DOM):处理网页内容的方法和接口;
浏览器对象模型(BOM):与浏览器交互的方法和接口;

JavaScript 用法

HTML 中的脚本必须位于

什么是 Java Server Pages?

JSP 全称 Java Server Pages,是一种动态网页开发技术。它使用 JSP 标签在 HTML 网页中插入 Java 代码。标签通常以<%开头以%>结束。

JSP 是一种 Java servlet,主要用于实现 Java web 应用程序的用户界面部分。网页开发者们通 过结合 HTML 代码、XHTML 代码、XML 元素以及嵌入 JSP 操作和命令来编写 JSP。

JSP 通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

JSP 标签有多种功能,比如访问数据库、记录用户选择信息、访问 JavaBeans 组件等,还可 以在不同的网页中传递控制信息和共享信息。

JSP 注释

在 JSP 页面中使用注释,可以将要注释的内容使用<%-- --%>括起来。 当然,在 JSP 页面中也可以使用 HTML 的注释<!-- -->。 但它们的使用效果是不同的。
(1)HTML 注释会被 JSP 翻译引擎翻译到 Servlet 的 out.write()中;而 JSP 注释则会被 JSP 翻译引擎忽略,在 Servlet 中是看不到的。
(2)在客户端浏览器查看源码时,HTML 注释是可以查看到的;但 JSP 注释在客户端是查 看不到的。

JSP 的 Java 代码块

也称为 JSP 小脚本,是以<% %>括起来的部分,其中可以编写 Java 代码。 编写在 Java 代码块中的代码,会被 JSP 翻译引擎将其置入到 Servlet 的_jspService()方法中 作为方法中的 Java 语句出现。所以,其中存放的必须是以分号结尾的 Java 语句。 需要注意的是,JSP 代码块可以放置在 JSP 页面的任意位置,可以放置任意数量。

JSP 的声明语句块

在 JSP 页面中使用<%! %>括起来的部分,称为声明语句块。声明语句块中的内容,将被 JSP 引擎翻译到 Servlet 的类体中,没有包含到哪个方法体中。
在 JSP 的声明语句块中就可声明实例变量、实例方法、静态方法、静态代码块等内容。 并且,这些内容均可被 JSP 的 Java 代码块中代码访问。因为它们原本就是一个 Servlet 类 中的代码。

需要注意的是,在 JSP 的声明语句块中,是不能编写普通的 Java 语句的。否则的话,这些 语句将会直接出现在 Servlet 的类体中。

声明语句块也可以定义在 JSP 页面的任意位置,且可以定义任意多个。
在这里插入图片描述

JSP 的表达式块

在 JSP 页面中使用<%= %>括起来的部分,称为表达式块。其可在 JSP 页面 中输出变量、常量,及它们组成的各种表达式的值。 注意,是表达式,而不是语句,是没有分号的。
在这里插入图片描述

JSP 内置对象

在这里插入图片描述
这九个对象在 JSP 的 Java 代码块、表达式块中可以直接使用,它们的用法与 Servlet 的 用法相同。只不过是直接使用在了 JSP 页面中了。

JSP 指令(directive)

1、page 指令 page 指令用于设置当前 JSP 页面的相关信息。一个 JSP 文件中可以包含多个 page 指令。 常用的 page 指令的属性意义及用法如下:
(1) pageEncoding 属性
pageEncoding 属性用于设置当前 JSP 页面所使用的字符编码格式。即,用户在浏览器中通 过右击查看编码所看到的编码格式。
在这里插入图片描述
(2) contentType 属性
contentType 属性用于设置当前 JSP 页面呈现于用户浏览器中的内容类型,通常 为”text/html”类型,即 html 格式的文本。若在 JSP 页面中设置如下:
在这里插入图片描述
(3)import 属性
import 属性,用于完成在 JSP 页面中导入指定的类。其被 JSP 引擎翻译为 Servlet 中的 import 语句。例如,
在这里插入图片描述
(4)errorPage 属性
errorPage 属性用于指定,当前页面运行过程中发生异常时所要跳转到的页面。
在这里插入图片描述
(5)isErrorPage 属性
若一个页面中指定了发生异常后所要跳转的页面,将会出现一个问题:异常信息被隐藏了。 在控制台看不到异常信息,在所跳转的页面中也看不到异常信息。此时,一般是希望当异常 发生后,在所要跳转的页面中能够给出相应的异常信息。而异常信息是封装在异常对象 exception 中的。也就是说,我们需要在所要跳转的页面中能够获取到异常对象。此时,就 需要将这个所要跳转的页面指定为“错误处理页面”。
当一个页面的 page 指令中设置 isErrorPage 的值为 true 时,表明当前页面为一个“错误 处理页面”。默认 isErrorPage 的值为 false。
在这里插入图片描述
(6)session 属性 session 属性用于指定当前页面中是否可以直接使用内置对象 session。默认为 true,可以 使用。查看 JSP 翻译为的 Servlet,可以看到 session 的创建,使用的是无参方法 getSession()。
<%@ page session="false"%>

该方法的功能是,若当前具有 session,则使用当前的 session;

若当前没有 session,则会新建一个 session。即 session 对象肯定不为 null。
在这里插入图片描述
2、include 指令,即包含指令,用于将指定的文件包含到当前的 JSP 文件中。该指令只有 一个属性 file,用于指定要包含的文件。 用法: 被 include 指定包含的文件,可以是 JSP 动态页面文件,也可以是 HTML 静态页面文件。
在这里插入图片描述

JSP 动作(Action)

JSP 动作是指使用系统定义好的标签来完成本应由 Java 代码来完成的功能。 JSP 动作的语法格式为:
在这里插入图片描述
JSP 动作很多,一共有十三个动作:
<jsp:include><jsp:forward><jsp:plugin><jsp:param>
<jsp:useBean><jsp:getProperty><jsp:setProperty>
<jsp:output><jsp:attribute><jsp:element><jsp:body>
<jsp:params><jsp:fallback>

其中<jsp:include><jsp:forward>用的比较的多。

<jsp:useBean><jsp:getProperty><jsp:setProperty>JavaBean 相互结合。

常用的就两个:转发动作与包含动作。

这两个动作的完成,底层使用的是 RequestDispatcher 的 forward()include()方法实现的。

这两种请求转发方式的本质区别是,标准输出流的开启时间不同。
1、forward()方式的标准输出流是在目标资源中开启的标准输出流
2、include()方式的标准输出流是在当前发出包含运作的页面中开启的。
3、forward()动作的发起页面中是无法向标准输出流中写入数据的;
4、include()动作的发起页面及目标页面中均可向标准输出流中写入数据。 这两个动作都具有一个 page 属性,用于指定要转向的页面。

1、<jsp:include>动作

<jsp: include>动作和 include 指令非常的像,他们的作用都是引入文件到目标页面。

<jsp: include>语法格式如下:
<jsp: include page="relative URL" flush="true" />

其中 page 属性是<jsp: include>动作的一个必须属性,他指明了需要包含文件的路径,该 路径可以是相对的,也可以是绝对的。

flush 属性用于指定输出缓存是否转入被导入文件中。

如果指定为 true,则包含在被导入文件中,如果为 false,则包含在原文件中。

注意:
<jsp: include>动作与 include 指令还是有些不同的。

首先,<jsp:include>动作是在页面访问时被导入,而 include 指令是在 JSP 引擎编译时导入 的;其次,include 指令中,被包含的文件会和主页面一块被编译成为一个 Servlet 类页面; <jsp:include>动作包含的文件是相对独立的文件,在编译时会被编译两个 Servlet 文件,因此,<jsp:include>在效率上会慢些。

include 动作对包含的动态文件和静态文件的处理方式是不同的。

如果包含的是一个静态文件,被包含文件的内容将直接嵌入 JSP 文件中存放 <jsp:include>动作的位置,而且当静态文件改变时,必须将 JSP 文件重新保存(重新转译),然后才能访 问变化了的文件。

如果包含的是一个动态文件,则由 Web 服务器负责执行,把执行后的结果传回包含它的 JSP 页面中,若动态文件被修改,则重新运行 JSP 文件时就会同步发生变化。

在这里插入图片描述

forward 动作

1、jsp:forward
转发,必须配合 jsp:param 动作指令使用
<jsp:forward page="/b.jsp">
<jsp:param name="username" value="admin"/>
</jsp:forward>
2、jsp:param
用 于 传 递 参 数 , 必 须 与 其 他 支 持 参 数 的 标 签 一 起 使 用 到 达 跳 转 页 面 可 以 通 过request.getParameter(“参数名”)方式取出参数值,在另一页面来获取增加的请求参数值 。

EL 表达式

EL,Expression Language,表达式语言,是一种在 JSP 页面中获取数据的简单方式。EL 表达 式是从 JSP2.0 版本开始才引入的概念。

EL 表达式的基本语法形式很简单:在 JSP 页面的任何静态部分均可通过${expression}的形 式获取到指定表达式的值。

(1) 从四大域中依次查找数据,获取数据
EL 只能从 pageConext、request、session、ServletContext(application) 四大域属性空间中获 取数据。以下方式是无法获取到指定数据的。因为这个数据没有存放在四大域属性空间中。

(2) 从指定域中获取数据 从 pageContext 依次查找到 application 域空间,会降低执行效率。若某属性确定存放在某 个域属性空间,则可指定直接从该空间中查找。此时需要借助 EL 的四个域属性空间相关的 内置对象。

(3) 访问 Bean 的属性
EL 可以通过${key.属性}的方式获取到指定对象的指定属性值。其底层实际调用的 是该对象的相应属性的 get 方法。

当然,也可以使用${key[‘属性’]${key[“属性”]的方式获取。该方式不常用。

JavaBean 规范

1.JavaBean 类必须是一个公共类,并将其访问属性(方法)设置为 public。

2.JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,此构造器 也应该通过调用各个特性的设置方法来设置特性的缺省值。

3.一个 JavaBean 类不应有公共实例变量,类变量都为 private。

4.持有值应该通过一组存取方法(getXxx 和 setXxx)来访问:对于每个特性,应该有一个带 匹配公用 getter 和 setter 方法的专用实例变量。若是布尔值,可以用 isXxx 来代替 getXxx。

5.成员变量的第二个字母最好不要大写, 像 rCategory, hFilename 之类,生成 getter 和 setter 会有问题。

JavaBean 作用

在 jsp 页面中,包含 html 代码、css 代码、java 代码、以及业务逻辑处理代码等。javabean 的作用就是将 html 代码与 java 代码分离,javabean 将 java 代码单独封装成一个处理某种业 务逻辑的类,然后在 jsp 中调用该类,实现降低耦合多和简化页面的作用。

javabean 是特殊的 java 类,具有以下特征
(1)提供一个默认的无参构造函数。
(2)需要被序列化并且实现了 Serializable 接口。
(3)可能有一系列的 getter 或 setter 方法,决定了读、写属性。
(4)用途:实现一些业务逻辑或封装一些业务对象。例如:字符串处理、数据库操作等。

EL 内置对象

就像 JSP 的 Java 代码块及表达式块中可以使用九个内置对象一样,EL 表达式中,同样也 存在有内置对象,并且存在 11 个内置对象。常用的内置对象,除了前面使用过的四个域属 性空间相关的内置对象外,还有如下几个。

(1) pageContext
该 pageContext 与 JSP 内置对象中的 pageContext 是同一个对象。通过该对象,可以 获取到 request、response、session、servletContext、servletConfig 等对象。

注意,这些对象在 EL 中不是内置对象。这些对象只能通过 pageContext 获取。

在 EL 中直接${pageContext.request}即可获取 request 对象。当然,其底层实际调用的是pageContext.getRequest()方法。同理,也可以通过类似方式获取到其它对象。

在这些获取的对象中,有一个是实际工程中最常用的: ${pageContext.request.contextPath},用于获取当前项目的发布到服务器的名称。一般会用 在 JSP 页面的路径前。
在 EL 的 11 个内置对象中,除了 pageContext 外,其它 10 个内置对象,其类型均为 java.util.Map 类型。

(2) param
在 EL 中通过 ${param.参数名}可获取到请求中指定参数名的值。

(3) paramValues
若提交的请求中同一参数具有多个值,则可通过 ${paramValues.参数名[索引]} 获取到指定 索引号的该参数值。

(4) initParam
在 EL 中通过使用 ${initParam.初始化参数名}可以获取到指定的初始化参数的值。

URI 和 URL 之间的区别

URI

1.什么是 URI
URI:统一资源标识符,表示 Web 上每一种可用的资源,如 HTML 文档,图像,视频片段,程 序等都是由一个 URI 进行标识的。

2.URI 的组成
通常由三部分组成:
(1) 资源的命名机制;
(2)存放资源的主机名;
(3)资源自身的名称。
注:以上三点是对实例的解释,并不是 URI 的必要条件,URI 只是一种概念,怎样实现无所 谓,只要它唯一标识一个资源就可以了。

URL

1.什么是 URL
URL 是 URI 的一个子集,统一资源定位符,URL 可以用一种统一的格式来描述各种信息资源, 包括文件、服务器的地址和目录等。URL 是 URI 概念的一种实现方式。

2.URL 的组成
(1)协议(或称为服务方式)
(2)存有该资源的主机的 IP 地址
(3)主机资源的具体地址,比如目录和文件名等。
第一部分和第二部分用"/“符号隔开,
第二部分和第三部分用”/"符号隔开,
第一部分和第二部分是不可缺少的,第三部分可以省略。

URI 和 URL 之间的区别。

URI 和 URL 都定义了资源是什么,但 URL 还定义了该如何访问资源。URL 是一种具体的 URI, 它是 URI 的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种 语义上的抽象概念,可以是绝对的,也可以是相对的,而 URL 则必须提供足够的信息来定 位,是绝对的。

通俗理解
URI:身份证号
URL:身份证住址+姓名
只要能唯一表示资源的就是 URI,在 URI 的基础上给出其资源的访问方式的就是 URL。

JSTL

Apache 已经定义好了一套标准的标签库规范,称为 JSTL,JSP Standard Tag Library,即 JSP 标准标签库。该规范已通过 JCP 审核认定。
在 JSTL 中,已经定义好了一套对于字符串进行处理的函数标签库,这个函数标签库中定义 了 16 个对于字符串进行处理的函数。

JSP Standard Tag Library,

即 JSP 标准标签库。JSTL 中定义了五个标签库:
核心标签库:主要用于完成基本的逻辑运算。

格式化标签库:主要用于完成日期、数字的格式化显示。

EL 函数标签库:定义了若干 EL 函数。

SQL 操作标签库:完成 SQL 操作。不使用了。对于 SQL 操作,已经完全由 Java 代码 完成。

XML 操作标签库:完成 XML 操作。不使用了。对于 XML 操作,已经完全由 Java 代 码完成

JSTL SQL 标签库提供了与关系型数据库(Oracle,MySQL,SQL Server 等等)进行交互的标签。

引用 SQL 标签库的语法如下:<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

在这里插入图片描述
Servlet 是连接 Web 服务器与服务端 Java 程序的协议,是一种通信规范。这个规范是以一 套接口的形式体现的。

Servlet 是 Servlet 接口实现类的一个实例对象,是运行在服务器上的一段 Java 小程序, 即 Server Applet,也就是 Servlet 这个单词的来历。

Servlet 的主要功能是根据客户端提交的请求,调用服务器端相关 Java 代码,完成对请 求的处理与运算。

Servlet 生命周期是指,

Servlet 对象的创建、Servlet 对象的初始化、Servlet 对象服务的执 行,及最终 Servlet 对象被销毁的整个过程。

Servlet 的整个生命周期过程的执行,均由 Web 服务器负责管理。即 Servlet 从创建到服务 到销毁的整个过程中方法的调用,都是由 Web 服务器负责调用执行,程序员无法控制其执行流程。

Servlet 生命周期方法的执行流程:

(1)当请求发送到 Web 容器后,Web 容器会解析请求 URL,并从中分离出 Servlet 对应 的 URI。
(2)根据分离出的 URI,通过 web.xml 中配置的 URI 与 Servlet 的映射关系,找到要执 行的 Servlet,即找到用于处理该请求的 Servlet。
(3)若该 Servlet 不存在,则调用该 Servlet 的无参构造器、init()方法,实例化该 Servlet, 然后执行 service()方法。
(4)若该 Servlet 已经被创建,则直接调用 service()方法。
(5)当 Web 容器被关闭,或该应用被关闭,则调用执行 destroy()方法,销毁 Servlet 实 例。

当 Servlet 实例被创建好后被放在了哪里?web.xml 中 URI 与 Servlet 的映射关系反映到 内存中是以什么形式存在呢?

当 Servlet 实例被创建好后,会将该 Servlet 实例的引用存放到一个 Map 集合中。该Map 集合的 key 为 URI,而 value 则为 Servlet 实例的引用,即 Map<String, Servlet>。当 Web 容器从用户请求中分离出 URI 后,会首先到这个 Map 中查找是否存在其所对应的 value。

什么是 ServletConfig?

在 Servlet 接口的 init()方法中具有唯一的一个参数 ServletConfig。ServletConfig 是个 接口,顾名思义,就是 Servlet 配置,即在 web.xml 中对当前 Servlet 类的配置信息。Servlet 规范将 Servlet 的配置信息全部封装到了 ServletConfig 接口对象中。

在 Web 容器调用 init()方法时,Web 容器首先会将 web.xml 中当前 Servlet 类的配置 信息封装为一个对象。这个对象的类型实现了 ServletConfig 接口,Web 容器会将这个对象 传递给 init()方法中的 ServletConfig 参数。

什么是 ServletContext?

ServletContext,即 Servlet 上下文,是个接口,是 Web 应用中所有 Servlet 在 Web 容 器中的运行时环境。这个运行时环境随着 Web 应用的启动而创建,随着 Web 应用的关闭 而销毁。也就是说,一个 Web 应用,就一个 Servlet 运行时环境,即一个 Servlet 上下文, 即一个 ServletContext 对象。

这个 Servlet 运行环境中都包含哪些具体的“环境”呢?即 ServletContext 对象中都包 含哪些具体的信息呢?

不仅包含了 web.xml 文件中的配置信息,还包含了当前应用中所有 Servlet 可以共享的 数据。可以这么说,ServeltContext 可以代表整个应用。所以 ServletConetxt 有另外一个名称: application。

2.1 GenericServlet

在通过实现 Servlet 接口来定义 Servlet 时存在一个很不方便的问题:有太多不需要的 方法必须要实现。通常我们只关心 service()方法,在 service()方法中完成业务逻辑,但由于 Servlet 接口中还存在另外四个方法,所以也要必须实现。

2.1.1 版本 1-方法空实现
由于 Servlet 中通常只使用 service()方法,其它四个方法基本不用,但也需要实现,于 是,能否定义一个通用的抽象类,让其实现 Service 接口,并以简单方式对 service()以外的 其它方法进行实现,即要么是空方法体,要么返回 null,而将 service()方法声明为抽象方法。 这样,以后再定义 Servlet 时就只需要继承自这个通用的抽象类即可,无需再实现了 Service 接口了。

2.1.2 版本 2-获取 ServletConfig

上面的 GenericServlet 定义存在一个问题:将来子类实现 GenericServlet 的 service()方法 后,无法获取到 ServletConfig 对象,当然,也就无法获取到 Servlet 的初始化参数,无法 获取到 ServletContext 对象,及上下文参数了。所以,需要修改这个类的定义。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Linux运维实战:Centos7.6使用haproxy部署rabbitmq3.9.16高可用镜像模式集群》

一、集群架构 说明&#xff1a;对于消息的生产和消费者可以通过HAProxy的软负载将请求分发至RabbitMQ集群中的Node1&#xff5e;Node7节点&#xff0c;其中Node8&#xff5e;Node10的三个节点作为磁盘节点保存集群元数据和配置信息。 二、环境信息 环境信息如下&#xff1a; …

剑指 Offer 52. 两个链表的第一个公共节点

摘要 剑指 Offer 52. 两个链表的第一个公共节点 一、两个链表的第一个公共节点解析 使用双指针的方法&#xff0c;可以将空间复杂度降至 O(1)。只有当链表 headA headB都不为空时&#xff0c;两个链表才可能相交。因此首先判断链表 headA和 headB是否为空&#xff0c;如果其…

[watevrCTF 2019]Timeout 题解

事不一而理有定在&#xff0c;犹百川万折&#xff0c;必归于海。 ——《容斋随笔》 1.查壳 是一个64位像是ELF的文件 无壳子 2.拖入64位IDA IDA分析失败 是一个.com文件 COM格式文件是一种简单的可执行文件。在迪吉多公司于20世纪70年代推出的操作系统中&#xff0c;.COM被用…

c/c++开发,无可避免的函数指针使用案例

一、函数指针简介 函数指针是指指向函数而非指向对象的指针。像其他指针一样&#xff0c;函数指针也指向某个特定的类型。函数类型由其返回类型以及形参表确定&#xff0c;而与函数名无关。例如&#xff1a; char* (*pf1)(char * p1,char *p2); 这是一个函数指针&#xff0c;其…

javassm超市在线配送管理系统

为了解决用户便捷地在网上购物&#xff0c;本文设计和开发了一个超市管理系统。本系统是基于web架构设计&#xff0c;SSM框架 &#xff0c;使用Mysql数据库管理&#xff0c;综合采用JSP模式来完成系统的相关功能。主要实现了管理员与用户的注册与登陆&#xff0c;个人中心、用户…

[标准库]STM32F103R8T6 高级定时器--PWM输出和带死区互补PWM输出

前言 STM32F103系列的MCU&#xff0c;相比普通的51单片机&#xff0c;在输出硬件PWM这个功能上要强不少&#xff0c;两者实现的方式都类似&#xff0c;都是通过一个定时器来启用硬件PWM输出&#xff0c;不过在输出PWM通道的数量上&#xff0c;32F103要强上不少。仅通过一个高级…

5.Redis 实现点赞 优化登陆(验证码 token..)

Redis&#xff08;1&#xff09;简介Redis 是一个高性能的 key-value 数据库原子 – Redis的所有操作都是原子性的。多个操作也支持事务&#xff0c;即原子性&#xff0c;通过MULTI和EXEC指令包起来。非关系形数据库数据全部存在内存中&#xff0c;性能高。&#xff08;2&#…

Docker中安装MySQL 8

前言 上一期在Windows中安装好了Docker环境&#xff0c;这一期在Docker中完成MySQL 8安装和配置。 启动Docker Desktop后在cmd窗口中输入docker -v即可查看到安装的docker版本 Docker启动容器的原理流程 Docker启动一个容器(应用)时&#xff0c;大致原理流程如下图&#x…

安全技术与防火墙工具iptables

目录 安全技术 安全技术 补充防水墙 防火墙的分类 按保护范围划分 按实现方式划分 按网络协议划分 iptables iptables的五表五链 三种报文流向 iptables基本语法 数据包常见的控制类型 iptables的基本选项 显示扩展模块 保存规则 持久保存规则 加载规则 开机自…

上岸!轻轻松松打工!Python数据分析证

俗话说的好&#xff0c;活到老学到&#x1f914;这个大内卷的时代掌握一项技能还是很重要&#x1f648;的&#xff0c;这不趁着下班时间的功夫&#xff0c;偷偷去考了个证 就是一个不论含金量&#xff0c;还是对实习和求职都非常有益的一个双协会认证的高含金量证书~BDA数据分析…

电影订票网站的设计与开发

技术&#xff1a;Java、JSP等摘要&#xff1a;随着科技的发展&#xff0c;时代的进步&#xff0c;互联网已经成为了人们生活中不可缺少的一部分&#xff0c;网上购物已然是一种时代的象征。纵观市场&#xff0c;电影行业的发展尤为迅速&#xff0c;电影种类和数量的增多导致客流…

Portraiture全新4.0最新版人像磨皮插件更新内容

Portraiture是一款智能磨皮插件&#xff0c;为Photoshop和Lightroom添加一键磨皮美化功能&#xff0c;快速对照片中皮肤、头发、眉毛等部位进行美化&#xff0c;无需手动调整&#xff0c;大大提高P图效率。全新4版本&#xff0c;升级AI算法&#xff0c;并独家支持多人及全身模式…

ROS小车研究笔记2/11/2023:使用ssh远程登录小车

1 SSH简介&#xff1a; SSH全称Secure Shell&#xff0c;是一种建立在应用层的安全网络协议。其安全性又非对称加密(RSA)实现 对称加密&#xff1a;使用同一密钥对信息进行加密和解密&#xff0c;但是一旦该密钥被窃取就会威胁通信安全 非对称加密&#xff1a;使用公钥和私钥。…

【Java基础】018 -- 面向对象阶段项目下(拼图小游戏扩展)

文章目录切换游戏图片的业务分析:1&#xff0c;所需要的技术点2&#xff0c;分析业务逻辑项目实现步骤&#xff1a;添加组件绑定事件&#xff1a;代码实现登录界面的业务分析&#xff1a;1&#xff0c;所需要的技术点2&#xff0c;分析业务逻辑项目实现步骤&#xff1a;主界面设…

Day885.NextKeyLock加锁规则 -MySQL实战

NextKeyLock加锁规则 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于NextKeyLock加锁规则的内容。 加锁规则前提说明&#xff1a; MySQL 后面的版本可能会改变加锁策略&#xff0c;所以这个规则只限于截止到现在的最新版本&#xff0c;即 5.x 系列 <5.7.24&#…

搭建流媒体推流/拉流服务(RTMP/RTSP/HLS/HTTP-FLV)

一、什么是流媒体流媒体&#xff08;streaming media&#xff09;是指将一连串的媒体数据压缩后&#xff0c;经过网上分段发送数据&#xff0c;在网上即时传输影音以供观赏的一种技术与过程&#xff0c;此技术使得数据包得以像流水一样发送&#xff1b;如果不使用此技术&#x…

ffmpeg转码转封装小工具开发

如下图所示&#xff0c;是本人开发的一个转码转封装小工具 其中目标文件视频编码格式支持&#xff1a;H264&#xff0c;H265&#xff0c;VP8&#xff0c;VP9。 目标文件封装格式支持&#xff1a;mp4,mkv,avi,mov,flv。 目标文件音频编码格式支持两个&#xff0c;COPY和AAC&am…

安全寒假作业nginx反向代理+负载均衡上传webshell重难点+apache漏洞

1.应用场景 负载均衡作为现今解决web应用承载大流量访问问题的一种方案&#xff0c;在真实环境中得到广泛的部署。实现负载均衡的方式有很多种&#xff0c;比如 DNS 方式、HTTP 重定向方式、IP 负载均衡方式、反向代理方式等等。 比如基于dns的负载均衡&#xff1a; 当然还有…

LTD212次升级 | 官网社区支持PC端展示 • 官网新增证件查询应用,支持条形码扫码查询

1、新增证件查询应用&#xff0c;支持条形码扫码查询&#xff1b; 2、新增用户社区PC端功能&#xff1b; 01证件查询应用 1、新增证件查询应用功能 支持证件信息录入、打印功能&#xff0c;支持条形码扫码识别。 后台管理操作路径&#xff1a;官微中心 - 应用 - 证件查询 …

这才是CSDN最系统完整的网络安全学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…