JSP入门基础

JSP入门基础

软件开发环境这门课程的复习资料

Web开发技术概述

URL的组成部分

协议、主机DNS名或IP地址和文件名

Tomcat服务器

Tomcat服务器的默认端口号是8080

概念

软件开发环境是围绕着软件开发的一定目标而组织在一起的一组相关软件工具的有机集合

JSP和HTML的区别

  • HTML页面是静态页面,也就是事先由用户写好放在服务器上,固定内容,不会变,由web服务器向客户端发送,平时上网看的网页都是大部分都是基于html语言的。
  • JSP页面是有JSP容器执行该页面的Java代码部分然后实时生成动态页面,可动态更新页面上的内容。

HTML部分

当前版本的HTML不区分大小写

标题标记
<title>标题</title>

标记之间的内容将显示到浏览器的标题上

<.meta>辅助性标记

下面的语句的功能是设置HTML文档的编码格式

<meta charset="utf-8">
超链接标记
<a href="URL">链接文本或图像</a>

在新窗口打开超链接

<a href="url" target="_blank">
<.input>输入标记

正确产生复选框:

<input type="checkbox">

把表单数据发送到服务器

<input type="submit">
常用属性

name:控制标识

<.img>图像标记

src:必选项,指定图像文件的url。

标题标记

下面语句的功能是以二级标题显示“图书信息列表”

<h2>图书馆信息列表</h2>
表格标记

下面语句的功能是创建表格,边框等于一个像素

<table border="1">

1.<.table>标记用于建立表格

2.<.table>与<./table>之间为表格标题、表头及单元格的内容

border属性:表格边框宽度,以像素为单位

3.<.caption>与<./caption>:定义表格标题

4.<.tr>与<./tr>:定义表格中的一行

5.<.td>与<./td>:定义单元格内容

表单标记

格式

<form method="post/get" action="URL" enctype="application/x-www-form-urlencoded"></form>

其常用属性如下。

action:完成表单信息处理任务程序的完整URL

method:表单中输入数据的传输方法,默认值为get

enctype:指定表单中输入数据的编码方法

列表框

1.<.select>标记

定义下拉式列表框和滚动式列表框,其常用属性如下。

name:列表框名字

size:列表框大小

multiple:允许用户进行多项选择

2.<.option>标记

<.select>标记所定义的列表框中的各个选项,其常用属性如下

selectd:表示该项预先选定

value:指定控件的初始值

页面修饰标签
<p>

分段标记:表示新一段开始,段落间有一空行。

<br>

换行标记:另起一行,中间不插入空行。

<hr>

水平线标记:在页面上画出一条水平线

<pre>....</pre>

预格式标记:使HTML文档中的空格、Tab符、回车、换行符起作用

<font>...</font>

字体标签:标记中默认的中文字体是宋体

<B>字体</B>

粗体

<l>字体</l>

斜体

考试题程序
<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><h2>图书信息列表</h2><table border="1"><tr><td>书名</td><td>出版时间</td><td>作者</td></tr><tr><td>软件开发环境</td><td>2022-12-08</td><td>小王</td></tr><tr><td>Java程序设计</td><td>2021-08-06</td><td>小李</td></tr></table></body>
</html>

在这里插入图片描述

动态网页和静态网页的区别

静态网页服务器端返回的HTMl文件是事先存储好的,且静态网页文件里只有HTML标记,没有程序代码

动态网页服务器端返回的HTML文件是程序生成的

CSS部分

定义样式
body{color:black}
1)内联式样式表
2)嵌入式样式表
3)外部样式表

在HTML文档的文件头中加入语句,可建立与外部样式文件的链接。即放置在。

Internet主要技术

DNS域名解析系统

DNS(域名解析系统)在因特网上作为域名IP地址相互映射的一个分布式数据库。

应用层协议

在字符串“http://www.sample.com:8080/login.html”中使用的访问协议是http

Web工作原理描述

1.HTTP协议用于在服务器和浏览器之间传送网页数据。

2.浏览器负责网页数据的请求和显示。

3.服务器负责浏览器的请求

软件开发模式

浏览器/服务器(B/S)模式

优点

1.用户可以在任何地点使用系统,方便、快捷、高效

2.用户可以跨平台以相同的浏览器界面访问系统

3.客户端只需要安装浏览器,升级维护简单

缺点

1.应用服务器运行数据负荷高

2.出现服务器崩溃问题则后果严重

JSP简介

JSP运行必须需要的:操作系统,JavaJDK,支持JSP的Web服务器

JSP运行原理

当服务器上的一个JSP页面被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个Java文件,并编译这个Java文件生成字节码文件(class文件),然后字节码文件响应客户的请求。

多个用户请求一个JSP页面

当多个用户请求一个JSP页面时,Tomcat服务器为每个客户启动一个线程,该线程负责执行常驻内存的字节码文件来响应相应客户的请求。

概念

安装Tomcat服务器,首先要安装JDK,并需要设置JAVA_HOME环境变量

JSP基本语法

JSP注释

1.HTML注释格式:

<!-- 注释内容 -->

2.JSP注释格式:

<% --注释内容-- %>

JSP注释写在JSP程序中,但不发送给客户,即为隐藏型注释

3.Scriptlets的注释

由于Scriptlets包含的是Java代码,所以Java中的注释规则在Scriptlets中也适用,常用Java注释使用//表示单行注释,使用//表示多行注释

字节码文件

字节码文件的任务如下:

1.JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示

2.JSP标记、变量和方法声明、Java程序片段由Tomcat服务器负责执行,将需要显示的结果发送给客户的浏览器

3.Java表达式由Tomcat服务器负责计算,将结果转换为字符串,交给客户的浏览器。

执行字节码文件的结果是发送一个HTML页面到客户端

JSP的编译指令标记

JSP的编译指令标记通常是指page指令、include指令和taglib指令

声明

<%!预定义%>

“<%!”和“%>”之间声明的变量在整个JSP界面内都有效,与“<%!” “%>”标记在JSP页面中所在的书写位置无关。

一次可声明多个变量和方法,只要以“;”结尾就行

一个声明仅在一个页面有效

在预定义中声明的变量将在JSP页面初始化时初始化

page指令标记

<%@page%>作用于整个JSP页面

可以在一个页面中使用多个<%@page%>指令

page标记

page指令与书写的位置无关,习惯上把page指令写在JSP页面的最前面

可以用一个page指令指定多个属性值,也可以使用多个page指令分别为每一个属性指定值

Java程序片段

在“<%”和“%>”之间插入Java程序片段

Java表达式

在“<%=”和“%>”之间插入一个表达式,这个表示必须能求值。表达式的值由服务器负责计算,并将计算结果用字符串形式发送到客户端显示。

其中需要注意“<%=”是一个完整的符号,“<%”和“=”之间不要有空格

变量和方法的声明

在“<%!”和“%>”标记符之间声明变量,变量的类型可以是Java语言允许的任何数据结构类型,这些变量称为JSP页面的成员变量。

“<%!”和“%>”之间声明的变量在整个JSP页面内部都有效,与“<%!” “%>”标记符在JSP页面所在的书写位置无关。

当多个用户同时请求一个JSP页面时,JSP引擎为每个用户启动一个线程,这些线程由JSP引擎来管理。这些线程共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。

JSP的基本组成

JSP以HTML为基础,将处理动态页面的部分嵌入到HTML标记中间,嵌入的部分以“<%”开始,以“%>”结束。

JSP页面元素

普通HTML标记(客户端浏览器执行)、JSP标记、成员变量和方法声明、Java脚本程序、JSP表达式、Java表达式(JSP引擎处理并将)

JSP中可以包含注释,它们是为了对程序进行必要的说明。

synchronized关键字

synchronized关键字保证一次只有一个线程执行

指令标记

page指令标记
include指令标记

include指令的作用是在JSP页面出现该指令的位置处静态插入一个文件,实现代码的复用,必须保证插入后形成的文件是一个完整的JSP文件

动作标记

1.include动作标记

2.param动作标记

param标记不能独立使用,需作为jsp:include、jsp:forward、jsp:plugin标记的子标记来使用,并为它们提供参数

3.forward动作标记

4.useBean动作标记

5.setProperty动作标记

6.getProperty动作标记

JSP内置对象

内置对象作用域从小到大是:request、session、application

JSP内置对象是指不用声明就可以在JSP页面的脚本部分使用对象。

response

在某些情况下,当响应用户时,需要将用户重新引导至另一个页面,可以使用response的sendRedirect()的方法实现重定向。

HTTP头

在HTTP响应消息中,第一行为响应状态行,紧接着的是若干响应消息头,服务器端通过响应消息头向客户端传递附件信息

状态行代码为404表示用户资源不可用

一个典型的HTTP请求消息包括请求行、多个请求头和信息体

方法

1)取得请求参数的方法getParameter()

2)取得请求HTTP头的方法getCookies()getHeader()

3)存储和取得属性的方法getAttribute()setAttribute()

4)用于获得主机名、主机端口号等的其他方法

request

request对象可以得到请求中的参数

通过getParameter()方法获取radio(单选按钮)

通过getParameterValues()获取checkbox(复选框)的值

处理中文乱码
request.setCharacterEncodingg("UTF-8")
如果getParameter()的参数不存在将返回什么

用request.getParameter(“parameter_name“) 来取得参数时,如果不存在 parameter_name 这个参数,request.getParameter ()将返回 null

session

session对象驻留在服务器端,该对象调用某些方法保存用户在访问某个Web服务目录期间的有关数据

session对象可以保存用户信息

session对象提供了访问和放置页面中共享数据的方式

application

服务器启动后,新建一个对应Web服务目录的application对象,一直保持到服务器关闭。所以application的生命对象比session的生命周期长。

application对象可以被多个客户端共享(注意,不是应用,应用是服务器端)

out

JSP和JavaBean

使用getProperty或者setProperty动作标记之前,必须使用useBean动作标记获得相应的Bean

Bean是通过JSP动作标记——useBean加载成功,格式如下:

<jsp:useBean>

JavaBean的类必须是具体的、公开的,并且具有无参数构造器

JavaBean的属性要通过公共方法进行访问(即类中声明的方法的访问属性都必须是public的)

JavaBean属性和表单控件名称能很好地耦合,得到表单提交的数据

编写JavaBean

类中必须提供获取和修改方法用来获取或修改成员变量XXX的属性。

getXxx()用来获取属性xxx

setXxx()用来修改属性xxx,属性名首字母必须大写

Bean的生命周期

使用JSP动作标记useBean来加载使用Bean。useBean中的scope给出了Bean的生命周期,即scope取值决定了JSP引擎分配给用户的存活时间。

scope可以有四种取值,分别是page、request、session、application

获取和修改Bean的属性

getProperty动作标记

使用getProperty动作标记可以获得Bean的属性值,并将这个值用串的形式发送给用户的浏览器。使用getProperty动作标记之前,必须使用useBean动作标记获得相应的Bean。

getProperty动作标记的格式如下:

<jsp:getProperty name="Bean的名字"propertu="Bean的属性"/>
setProperty动作标记

通过HTTP表单的参数的值来设置Bean的响应属性的值

property=“*

<jsp:setProperty="Bean的名字"property="*"/>

Servlet

在JSP应用开发中,Servlet程序可以在web.xml文件中配置

用于保持会话的技术:

1.Cookie

2.HTTPsession

3.HTML隐藏表单域

Servlet获得初始化参数的对象是:Servlet Config

基本功能

1.获取客户端HTML的FORM表单提交的数据和URL后面的参数信息

2.创建和客户端响应消息内容

3.访问服务器端的文件系统

4.连接数据库并开发基于数据库的应用

5.调用其他Java类

工作原理

Servlet存在于Web服务器中,并且由Servlet引擎负责分配和管理,在Servlet的声明周期中,由init、service和destroy三个方法构成。整个生命周期中Servlet只被初始化一次,destroy一次,但service()方法可能被调用多次

Servlet引擎访问Servlet

第一次访问的时候,Servlet引擎首先创建Servlet实例,然后调用Servlet的init()函数初始化Servlet,再调用Servlet的service()函数响应用户请求。

之后的访问Servlet的时候Servlet引擎会自动检测Servlet是否已经存在,如果存在就直接调用service()函数响应用户请求,不用再实例化和初始化Servlet。

翻译

Tomcat在将JSP页面翻译成Servlet程序时,会忽略JSP注释的内容,不会将JSP注释发送到客户端

主要作用

Servlet文件在Java Web开发中的主要作用是作为控制器

创建Servlet对象的类

当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象

共享变量

当多个客户请求一个Servlet时,服务器为每个客户启动一个线程

Web.xml文件规则

匹配规则:同一个Servlet指定多个不同的URL,四种不同的URL形式匹配如下:

优先级URL形式关联类型
1/开始/字符串结束精确匹配关系
2/开始/**结束按纯目录形式关联
3*.jsp形式按具体文件类型关联
4单个/缺省Servlet

运行Servlet

在运行Servlet文件的过程可能会遇到中文乱码的问题,需要在运行Servlet文件之前在指定的Servlet类文件中设置编码格式。

针对response请求的中文乱码或者是浏览器显示内容的乱码可以按照下面的设置方式设置编码格式和请求头文件的编码格式。

response.setHeader("content-type","text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");

请求转发

通过请求转发来实现目标资源的访问是服务器内部的行为,对于客户端来说是一次请求的过程

请求转发和重定向对的方式

实现请求转发的方式如下:

1.得到RequestDispatcher对象:

RequestDispatcher dispatcher=request.getRequestDispatcher("a.jsp");

2.转发

dispatcher.forward(request,response);

实现重定向的方式如下:

response.sendRedirect("a.jsp");

RequestDispatcher.forwad()方法只能在同一个Web应用程序内的资源之间转发请求。

sendRedirect()方法还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对的URL重定向到其他站点的资源。

请求转发和重定向的不同

1.资源使用范围不同

请求转发:同一服务器中的资源

重定向:任意服务器资源

2.请求响应的次数不一样

请求转发:一次请求

重定向:两次请求

3.地址栏

请求转发:URL地址栏不变

重定向:URL地址栏变化

4.请求响应对象

请求转发:两个Servlet实例共用请求响应对象

重定向:需要创建两次请求与响应对象

MVC模式

模型 Model:用于存储数据的对象

视图 View:向控制器提交所需数据以及显示模型中的数据

控制器 Controller:进行具体的业务逻辑操作

MVC模式工作原理

1.用户发出请求

2.View视图接受用户请求

3.Controller控制器处理用户请求

4.Model模型存储处理好的数据

5.View视图显示模型的数据

6.用户获得响应

基于JSP的MVC模式

1)基于JSP的Web开发中,JSP、Servlet、JavaBean就是通过MVC有机结合到了一起

2)JSP作为视图(View),负责提供页面为用户展示数据

3)Servlet作为控制器(Controller),用来接受用户提交的请求,进行数据处理

4)JavaBean作为模型(Model),用来存储用户提交的数据以及数据处理的结果

在JSP中使用数据库

JSP使用JDBC提供的API和数据库进行交换信息。使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库

当查询ResultSet对象中的数据时,不可以关闭和数据库的连接。

使用PreparedStatement对象可以提高操作数据库的效率

数据库类型

1.关系型数据库

2.树型数据库

3.网状数据库

4.对象数据库

在JDBC语句访问数据库,正确导入SQL类库的语句是:

<%@page import="java.sql.*">

在对SQL进行预处理时可以使用通配符“?”来代替字段值

数据库管理系统

DBMS是(Data Base Management System)的缩写,是管理数据库软件的集合。

DBMS包含面向用户接口功能和面向系统维护功能。

1.面向用户接口功能是提供用户访问数据库的一些必要手段

2.面向系统维护功能是为数据库管理者提供数据库的维护工具

加载JDBC-数据库驱动程序

用Java语言编写的数据库驱动程序称为JDBC数据库驱动程序。

使用JDBC-数据库驱动方式和数据库建立连接需要经过两个步骤:

1.加载JDBC-数据库驱动程序

2.指定的数据库建立连接

驱动数据库

使用纯Java数据库驱动加载MySQL驱动程序代码如下:

Class.forName("com.mysql.jdbc.Driver");

建立起一个JDBC-ODBC桥接器“

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

结果集与查询

让连接对象con调用方法createStatement()创建执行SQL语句的Statement对象:

Statement sql=con.createStatement()

sql对象就可以调用相应的方法,实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中:

Result rs=sql.execute("SELECT*FROM product");

预处理语句

对于JDBC,如果使用Connection和某个数据库建立连接对象con,那么con就可以调用prepareSatement(String sql)方法,方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装子啊PreparedStatement对象中。

PreparedStatement pre=prepareStatement(String sql)

预处理语句设置通配符“?”的值的常用方法有:

void setDate(int parameterIndex,Date x)
void setDouble(int parameterIndex,double x) void setFloat(int parameterIndex,float x)   

事务

事务是保证数据库中数据完整性与一致性的重要机制。

1.连接对象使用setAutoCommit(boolean autoCommit)方法,将参数autoCommit取值为false来关闭自动提交模式:

con.setAutoCommit(false)

2.commit()方法

con调用commit()方法就是让事务中的SQL语句全部生效

3.rollback()方法

只要事务中任何一个SQL语句没有生效,就抛出SQLException异常。在处理SQLException异常时,必须让con调用rollback()方法。

关闭数据库

关闭数据库操作的顺序与打开数据库操作的顺序相反

1.先关闭结果集(ResulrSet)

2.再关闭操作(Statement)

3.最后关闭连接(Connection)

数据接口操作实例

try {// 加载MySQL数据库驱动程序Class.forName("com.mysql.cj.jdbc.Driver");
} catch (Exception e) {// 打印加载驱动程序过程中的异常信息e.printStackTrace();
}// MySQL数据库连接URL,指定本地主机地址、端口和数据库时区及字符编码
String url = "jdbc:mysql://127.0.0.1:3306/BookStore?serverTimezone=Asia/Shanghai&characterEncoding=utf8";// 准备SQL语句,向BookInfo表插入书籍信息
String sql = "insert into BookInfo(bookName, publisher, author) values(?, ?, ?)";try (// 获取数据库连接对象,使用完毕后自动关闭连接Connection conn = DriverManager.getConnection(url, "root", "lj123$%^");// 创建PreparedStatement对象,用于执行带参数的SQL语句PreparedStatement ps = conn.prepareStatement(sql)
) {// 设置SQL语句中的参数值ps.setString(1, book.getBookName());ps.setString(2, book.getPublisher());ps.setString(3, book.getAuthor());// 执行更新操作并获取影响的行数int ret = ps.executeUpdate();
} catch (Exception e) {// 捕获执行SQL操作过程中的异常,并打印异常信息e.printStackTrace();
}

JSP文件操作

File类的创建

创建File类,指向当前路径下bookstory.xml

File inputFile=new File("bookstroy.xml");

字节流

字节输入流:InputStream

字节输出流:OutputStream

在JSP中使用XML

XML文件是由标记构成的文本文件。标记的名称可以由字母、数字、下划线“_”、点号“.”或连字符“-”组成,但必须以字母或下划线开头,而且标记名称区分大小写,例如:Graren与Graren是完全不同的标记。

XML

空元素

XML空元没有内容,可以有属性

数据结构

XML采用树状结构

XML实例

<servlet><!-- 定义一个名为 AddBook 的Servlet --><servlet-name>AddBook</servlet-name><!-- 指定 Servlet 类的完整路径 --><servlet-class>lj.test.AddBookServlet</servlet-class>
</servlet>
<servlet-mapping><!-- 将 Servlet 名称 AddBook 映射到 URL 模式 /addBook --><servlet-name>AddBook</servlet-name><!-- 定义 Servlet 的 URL 映射模式 --><url-pattern>/addBook</url-pattern>
</servlet-mapping>

SAX

和DOM解析器不同的是,SAX解析器不在内存中建立和XML文件相对应的树形结构数据,SAX解析器的核心是事件处理机制(即SAX是事件驱动型XML解析器)。和DOM解析器相比,SAX解析器占有的内存少,对于许多应用程序,用SAX解析器来获取XML“数据效率具有较高的效率。

使用SAX解析器的基本步骤

1.使用java.xml.parsers包中的SAXParerFactory类调用其方法newInstance()实例化一个SAXParserFactory对象。

SAXParserFactory factory=SAXParserFactory.newInstance();

2.SAXParserFactory对象调用newSAXParser()方法返回一个SAXParser对象,称为SAX解析器。

SAXParser saxParser=factory.newSAXParser();

3.saxParser对象调用public void parse(File f,DefaultHandler dh)方法解析参数f指定的XML文件。

saxParser.parse(new File("tour.xml"),handler);

servlet-class>lj.test.AddBookServlet



AddBook

/addBook


### SAX和DOM解析器不同的是,SAX解析器不在内存中建立和XML文件相对应的树形结构数据,SAX解析器的核心是事件处理机制(<font color="red">即SAX是**事件驱动型XML解析器**</font>)。和DOM解析器相比,SAX解析器占有的内存少,对于许多应用程序,用SAX解析器来获取XML“数据效率具有较高的效率。#### 使用SAX解析器的基本步骤1.使用java.xml.parsers包中的SAXParerFactory类调用其方法newInstance()实例化一个SAXParserFactory对象。```java
SAXParserFactory factory=SAXParserFactory.newInstance();

2.SAXParserFactory对象调用newSAXParser()方法返回一个SAXParser对象,称为SAX解析器。

SAXParser saxParser=factory.newSAXParser();

3.saxParser对象调用public void parse(File f,DefaultHandler dh)方法解析参数f指定的XML文件。

saxParser.parse(new File("tour.xml"),handler);

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

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

相关文章

系统数据加密传输的实现

文章目录 1、背景2、需求3、实现思路3.1 密码加密3.2 密码解密3.3 nacos密码加密 4、相关工具类4.1 非对称加密RSA4.2 对称加密AES4.3 Nacos加解密的实现&#xff1a;Jasypt 5、历史数据兼容处理 1、背景 用户在浏览器发送请求数据到后台系统&#xff0c;期间数据在网络传输&a…

Git常见命令和用法

Git 文件状态 Git 文件 2 种状态: 未跟踪:新文件&#xff0c;从未被 Git 管理过已跟踪:Git 已经知道和管理的文件 常用命令 命令作用注意git -v查看 git 版本git init初始化 git 仓库初始化之后有工作区、暂存区(本地库)、版本库git add 文件标识暂存某个文件文件标识以终…

springboot集成tika解析word,pdf,xls文件文本内容

介绍 Apache Tika 是一个开源的内容分析工具包&#xff0c;用于从各种文档格式中提取文本和元数据。它支持多种文档类型&#xff0c;包括但不限于文本文件、HTML、PDF、Microsoft Office 文档、图像文件等。Tika 的主要功能包括内容检测、文本提取和元数据提取。 官网 https…

GRPC使用之ProtoBuf

1. 入门指导 1. 基本定义 Protocol Buffers提供一种跨语言的结构化数据的序列化能力&#xff0c;类似于JSON&#xff0c;不过更小、更快&#xff0c;除此以外它还能用用接口定义(IDL interface define language)&#xff0c;通protoc编译Protocol Buffer定义文件&#xff0c;…

Android14系统应用统一裁剪方案

Android14系统应用统一裁剪方案 背景 当前移除集成到系统里的应用,一般都是根据应用名,到各个mk文件里逐个在PRODUCT_PACKAGES中删除;这种方法,耗时而且不易管理集成到系统里的应用;需要有一个统一管理删除不需要应用的方案。 方案 参考PRODUCT_PACKAGES变量,添加PRO…

淘宝商品历史价格查询(免费)

当前资料来源于网络&#xff0c;禁止用于商用&#xff0c;仅限于学习。 淘宝联盟里面就可以看到历史价格 并且没有加密 淘宝商品历史价格查询可以通过以下步骤进行&#xff1a; 先下载后&#xff0c;登录app注册账户 打开淘宝网站或淘宝手机App。在搜索框中输入你想要查询的商…

短视频矩阵系统多账号搭建技术源码(saas开发者技术独立搭建)

在构建云服务环境以部署虚拟机方面&#xff0c;以Amazon Web Services&#xff08;AWS&#xff09;为示例&#xff0c;需采购并配置适当数量的EC2实例以及相关网络设施。 接下来&#xff0c;根据业务需求&#xff0c;应创建多个社交媒体平台如抖音和快手的官方账户&#xff0c;…

【计算机毕业设计】基于Springboot的B2B平台医疗病历交互系统【源码+lw+部署文档】

包含论文源码的压缩包较大&#xff0c;请私信或者加我的绿色小软件获取 免责声明&#xff1a;资料部分来源于合法的互联网渠道收集和整理&#xff0c;部分自己学习积累成果&#xff0c;供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

【记录】LaTex|LaTex 代码片段 Listings 添加带圆圈数字标号的箭头(又名 LaTex Tikz 库画箭头的简要介绍)

文章目录 前言注意事项1 Tikz 的调用方法&#xff1a;newcommand2 标号圆圈数字的添加方式&#xff1a;\large{\textcircled{\small{1}}}\normalsize3 快速掌握 Tikz 箭头写法&#xff1a;插入点相对位移标号node3.1 第一张图&#xff1a;插入点相对位移3.2 第二张图&#xff1…

如何玩转澳大利亚Facebook直播?

近年来&#xff0c;直播带货已经成为国内最赚钱的行业之一&#xff0c;各种玩法也越来越成熟。然而&#xff0c;在海外市场&#xff0c;尤其是澳大利亚&#xff0c;直播带货仍然是一片蓝海。作为社交媒体营销的主阵地&#xff0c;Facebook的直播功能却常常被卖家忽视。那么&…

贴脸细看Mixtral 8x7B- 稀疏混合专家模型(MoE)的创新与推动

贴脸细看Mixtral 8x7B- 稀疏混合专家模型&#xff08;MoE&#xff09;的创新与推动 原创 一路到底孟子敬 上堵吟 2024年01月15日 20:05 美国 I. 引言 A. Mixtral 8x7B的背景和目的 • 背景&#xff1a;随着大型语言模型在自然语言处理&#xff08;NLP&#xff09;领域的广泛…

【java计算机毕设】基于java的奶茶店管理系统的设计与实现MySQL ssm JSP maven项目代码源码+文档

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】奶茶店管理系统java MySQL ssm JSP maven项目源码代码万字文档 小组设计 2项目介绍 系统功能&#xff1a; 奶茶店管理系统包括管理员、用户俩种角色。 管理员功能包括个人中心模块用于修改个人信息和密码、…

游戏AI的创造思路-技术基础-情感计算(1)

游戏中的AI也是可以和你打情感牌的哦&#xff0c;不要以为NPC是没有感情的&#xff0c;不过&#xff0c;不要和NPC打过多的情感牌&#xff0c;你会深陷其中无法自拔的~~~~~~ 目录 1. 情感计算算法定义 2. 发展历史 3. 公式和函数 3.1. 特征提取阶段 TF-IDF&#xff08;词频…

AJAX-个人版2.0

AJAX&#xff08;Asynchronous Javascript And Xml&#xff09; 传统请求及缺点 传统的请求都有哪些&#xff1f; 直接在浏览器地址栏上输入URL。点击超链接提交form表单使用JS代码发送请求 window.open(url)document.location.href urlwindow.location.href url… 传统请…

一键换衣,这个AI可以让你实现穿衣自由

基于图像的虚拟穿衣是一种流行且前景广阔的图像合成技术&#xff0c;能够显著改善消费者的购物体验&#xff0c;并降低服装商家的广告成本。顾名思义&#xff0c;虚拟穿衣任务旨在生成目标人穿着给定服装的图像。 OOTDiffusion简述 图1 虚拟换衣 基于图像的虚拟穿衣目前面临两…

系统分析师-基础知识

基础知识 一、计算机组成与结构1、计算机系统基础知识1.1 计算机硬件组成1.2 中央处理单元&#xff08;CPU&#xff09;1.3 数据表示1.3.1 R进制转十进制&#xff1a;1.3.2 十进制转R进制&#xff1a; 1.4 校验码&#xff08;3种校验码&#xff09;1.4.1 基本知识1.4.2 奇偶校验…

2024-07抖音/快手/小红书/视频号/美团无人直播技术:最新不封号无人直播的操作方法详细介绍

2024年最新研究出来的无人直播技术&#xff0c;目前不封号&#xff0c;用途大大的&#xff0c;可带货&#xff0c;可引流&#xff0c;可获客。 手机自动直播源码通常涉及到实时流媒体技术和应用开发&#xff0c;它涉及以下几个关键部分&#xff1a; 摄像头接入&#xff1a;使用…

vue3 学习笔记01 -- 搭建项目及基础配置

vue3 学习笔记01 – 搭建项目及基础配置 确保你已经安装了Node.js&#xff08;建议使用最新的LTS版本&#xff09; 搭建项目 初始化项目 如果选择npm创建项目再执行 npm create vitelatest my-vue3-app --template vue-ts使用yarn&#xff0c;如果电脑没有安装yarn cnpm i ya…

(一)、python程序--模拟电脑鼠走迷宫

一、绪论 1、简介 电脑鼠走迷宫是一种比赛&#xff0c;制作实物电脑鼠小车在迷宫找目标点&#xff0c;用时最短者获胜。考验参赛选手软硬件结合的能力。 2、走迷宫模拟软件中已实现功能 1、点击迷宫墙壁可编辑迷宫&#xff0c;并且可保存和加载迷宫形状文件&#xff1b; 2、…

无线麦克风哪个牌子的好,麦克风哪个品牌音质最好,热门款式推荐

​在当今这个数字化迅速发展的时代&#xff0c;无线领夹麦克风已经成为自媒体创作者、直播主播以及专业录音师不可或缺的工具。它们以其小巧便携、易于操作和出色的录音质量&#xff0c;极大地提升了音频录制的效率和质量。无论是户外探险的Vlog拍摄&#xff0c;还是室内直播的…