课程《JavaWeb基础框架程序设计》考试题下篇——数据库与表单操作用题(人事管理平台的添加员工档案信息的操作题)

news2025/2/24 0:16:15

文章目录

  • 📋前言
  • 🎯第三题(40分)
  • 🎯报错以及解决方法
  • 📝最后


在这里插入图片描述

📋前言

这篇文章是大学课程《JavaWeb基础框架程序设计》考试题目的内容,包括了原题和答案。题目只包括了三道编程题,分值为30分、30分和40分,这篇文章继上一篇(课程《JavaWeb基础框架程序设计》考试题上篇——基础应用题(计算应用、水仙花数)),介绍40分的那题,以及代码编写中出现的报错和解决方法。


🎯第三题(40分)

添加员工档案:添加员工档案包括两个 JSP 页面。其中 addEmployee1.jsp 页面负责显示添加界面,addEmployee2.jsp 负责添加新进员工档案信息到指定数据库。具体说明如下:

1)添加员工档案信息页面 addEmployee.jsp(该页面已给出)运行界面如图2-1所示,其表单属性“action=addEmployee2.jsp”,指定本页面的表单由addEmployee2.jsp负责处理。

2)addEmployee2.jsp(该页面需要完成)负责获取 addEmployee1.jsp 页面表单元素值,将新进员工档案信息添加到指定数据库 hrms 当中。
在这里插入图片描述

提供的 addEmployee.jsp 页面代码如下。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>人事管理平台</title>
<style type="text/css">
form td{
	border:1px solid #93CBEC;
	font-size:12px;
	height:30px;
	line-height:24px;
}
#resume{
	width:500px;
	height:80px;
}
</style>
</head>
<body>
	<form action="searchEmployee2.jsp" method="post">
	<table border=0 cellspacing=0 cellpadding=0 width=750px>
	<tr>
		<td colspan=4 bgcolor="#f1f7fc"><strong>&nbsp;&nbsp;&nbsp;&nbsp;查询员工档案信息</strong></td>
	</tr>	
	
	<tr>
	 <td width="150" align="center">员工编号:</td>
     <td colspan=4 	>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="employeeid" id="employeeid" /></td>
	</tr>
	
	<tr>
	     <td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;名:</td>
        <td colspan=4>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="username" id="username" /></td>
	</tr>
	
	<tr>
	 <td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别:</td>
     <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="sex" id="sex">
	     <option value="">所有</option>
	     <option value=""></option>
	     <option value=""></option>
     	</select>
     </td>
     </tr>
     <tr>
     <td align="center">所属部门:</td>
     <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="branch" id="branch">
	     <option value="">所有</option>
	     <option value="总经理室" >总经理室</option>
	     <option value="副总经理室">副总经理室</option>
	     <option value="销售部">销售部</option>
	     <option value="生产部">生产部</option>
	     <option value="采购部">采购部</option>
	     <option value="研发部">研发部</option>
	     <option value="财务部">财务部</option>
	     <option value="人事部">人事部</option>
	     </select>  </td>    
	</tr>	
	
	<tr>
		<td align="center">出生日期:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="birthday" id="birthday" /></td>
	</tr>
	
	<tr>
		<td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;贯:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="nativeplace" id="nativeplace" /></td>
	</tr>
	
	<tr>
	<td align="center">婚姻状况:</td>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="marriage" id="marriage">
	        <option value="">所有</option>
	        <option value="未婚">未婚</option>
	        <option value="已婚">已婚</option>
	        <option value="离异">离异</option>
	        <option value="丧偶">丧偶</option>
        </select>   </td>
	</tr>
	
	<tr>
		<td align="center">身份证号:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="identityid" id="identityid" /></td>
	</tr>
	
	<tr>
		<td align="center">政治面貌:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="politics" id="politics">
	    	<option value="">所有</option>
		    <option value="党员">党员</option>
		    <option value="团员">团员</option>
		    <option value="群众">群众</option>
		    <option value="其他">其他</option>
	    	</select>    </td>	    
	</tr>
	
	<tr>
	<td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;族:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="folk" id="folk" /></td>
	</tr>
	
	<tr>
		<td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;历:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="education" id="education">
		    <option value="">所有</option>
		    <option value="初中">初中</option>
		    <option value="高中">高中</option>
		    <option value="中专">中专</option>
		    <option value="专科">专科</option>
		    <option value="本科">本科</option>
		    <option value="硕士">硕士</option>
		    <option value="博士">博士</option>
	    </select>  </td>
	
	</tr>
		<tr>
		<td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;业:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="department" id="department" /></td>
	</tr>
	
	<tr>
		<td align="center">毕业日期:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="graduatedate" id="graduatedate" /></td>
	</tr>
	
	<tr>
		<td align="center">毕业院校:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="university" id="university" /></td>
	</tr>
	
	<tr>
	<td align="center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;称:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="position" id="position">
		    <option value="">所有</option>
		    <option value="助理工程师">助理工程师</option>
		    <option value="工程师">工程师</option>
		    <option value="高级工程师">高级工程师</option>
		    <option value="助理工程师">助理工程师</option>
		    <option value="会计师">会计师</option>
		    <option value="注册会计师">注册会计师</option>
		    <option value="助理经济师">助理经济师</option>
		    <option value="经济师">经济师</option>
		    <option value="高级经济师">高级经济师</option>
		    <option value="其他">其他</option>            
	    </select>   </td>
	</tr>
	
	<tr>
		<td align="center">在职情况:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="incumbency" id="incumbency">
		    <option value="">所有</option>
		    <option value="在职">在职</option>
		    <option value="离职">离职</option>
		    <option value="退休">退休</option>
		    <option value="待聘">待聘</option>
		    <option value="其他">其他</option>
	    </select></td>
	</tr>
	
	<tr>
			<td align="center">用工形式:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<select name="incumbencytype" id="incumbencytype">
		    <option value="">所有</option>
		    <option value="临时工">正式工</option>
		    <option value="临时工">临时工</option>
		    <option value="合同工">合同工</option>
		    <option value="见习生">见习生</option>
		    <option value="其他">其他</option>
	    </select></td>
	</tr>
	
	<tr>
		<td align="center">个人简历:</td>
	    <td>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="resume" id="resume"></td>
	</tr>
	
	<tr>
		<td colspan=4 align="center">
		<input type="reset"  value="清除" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	    <input type="submit" value="提交" />
	   	</td>
	</tr>
	</table>
	</form>

</body>
</html>

在这里插入图片描述
addEmployee2.jsp 页面解答如下。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<%
// 获取表单中提交的参数
		request.setCharacterEncoding("utf-8"); // 设置编码格式
        String EmployeeID = request.getParameter("employeeid");
        String UserName  = request.getParameter("username"); 
        String Sex = request.getParameter("sex"); 
        String Branch = request.getParameter("branch");
        String Birthday = request.getParameter("birthday"); 
        String NativePlace = request.getParameter("nativeplace"); 
        String Marriage = request.getParameter("marriage"); 
        String IdentityID = request.getParameter("identityid"); 
        String Politics = request.getParameter("politics"); 
        String Folk = request.getParameter("folk");
        String Education = request.getParameter("education");
        String Department = request.getParameter("department"); 
        String GraduateDate = request.getParameter("graduatedate"); 
        String University = request.getParameter("university"); 
        String Position = request.getParameter("position"); 
        String Incumbency = request.getParameter("incumbency");
        String IncumbencyType = request.getParameter("incumbencytype"); 
        String Resume = request.getParameter("resume");

// 判断是否有必填项为空
if (EmployeeID == null || EmployeeID.equals("") ||
	UserName == null || UserName.equals("")) {
    out.println("员工编号和姓名为必填项");
} else {
    // 数据库连接信息
    String driver = "com.mysql.cj.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/hrms?useSSL=false&serverTimezone=UTC";
    String user = "root";
    String password = "123456";

    Connection conn = null;
    try {
        // 加载驱动程序
        Class.forName(driver);

        // 创建数据库连接
        conn = DriverManager.getConnection(url, user, password);

        // 构建插入 SQL 语句
		String sql = "INSERT INTO employee (EmployeeID,UserName,Sex,Branch,Birthday,NativePlace,Marriage,IdentityID,Politics,Folk,Education,Department,GraduateDate,University,Position,Incumbency,IncumbencyType,Resume) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
        // 创建 PreparedStatement 对象,用于执行 SQL 语句
        PreparedStatement pstmt = conn.prepareStatement(sql);

        // 设置参数值
        pstmt.setString(1, EmployeeID);
        pstmt.setString(2, UserName);
        pstmt.setString(3, Sex);
        pstmt.setString(4, Branch);
        pstmt.setString(5, Birthday);
        pstmt.setString(6, NativePlace);
        pstmt.setString(7, Marriage);
        pstmt.setString(8, IdentityID);
        pstmt.setString(9, Politics);
        pstmt.setString(10, Folk);
        pstmt.setString(11, Education);
        pstmt.setString(12, Department);
        pstmt.setString(13, GraduateDate);
        pstmt.setString(14, University);
        pstmt.setString(15, Position);
        pstmt.setString(16, Incumbency);
        pstmt.setString(17, IncumbencyType);
		pstmt.setString(18, Resume);

        // 执行 SQL 语句
        pstmt.executeUpdate();

        out.println("数据插入成功");

        // 关闭 PreparedStatement 对象
        pstmt.close();
    } catch (Exception e) {
        e.printStackTrace();
        out.println("数据库操作失败:" + e.getMessage());
    } finally {
        // 关闭数据库连接
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException se) {
            se.printStackTrace();
        }
    }
}
%>

数据库表结构如下(需要SQL文件私信我或评论区留言)。
在这里插入图片描述
运行结果如下。填好相对应的数据。
在这里插入图片描述
点击提交,数据插入成功。
在这里插入图片描述
然后检查数据中是否有新插入的数据。
在这里插入图片描述
具体逻辑如下:

  • 首先通过 request.getParameter()
    方法获取表单中提交的参数,包括员工编号、姓名、性别、所属部门、出生年月、籍贯、婚姻状况、身份证号、政治面貌、民族、学历、毕业时间、毕业院校、职位、任职状态、用工类型和个人简历。

  • 然后判断必填项是否为空,如果为空则输出提示信息;否则继续下一步操作。

  • 接着使用 JDBC API 连接到 MySQL 数据库,首先加载 MySQL 驱动程序,并构建插入 SQL 语句。

  • 创建 PreparedStatement 对象,用于执行 SQL 语句,并设置参数值。

  • 执行 SQL 语句并提交事务,输出操作结果。

  • 最后关闭连接对象和 PreparedStatement 对象。


🎯报错以及解决方法

一年多没写 JavaWeb 了,在写这个题目的时候遇到了很报错,与其说是在写题,不如说是在处理 bug。题目很简单,一会功夫就写完了要求的功能了,但是数据库和 jdbc 的连接出现了问题,因为不是学校的机房环境,而且老师给的包是三点几的远古版本,导致一直报错,和产生其他相对应的错误。最后换了个八点多的版本,这些问题就挥之而去了,最后也是成功的运行了。接下来我们来看看出现报错有哪些(因为现在报错已经全部处理完了,所以得重新走一遍案发现场了)。

报错1️⃣:The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one time zone
在这里插入图片描述
📚解决方法:
首先我们要知道出现这个报错的原因是因为MySQL的时区设置出现了问题。

报错中提示我们要这么You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.
意思是:如果你想运用时区支持,必须配置服务器或JDBC驱动程序(通过 'serverTimezone' 配置属性)来使用更具体的时区值。

因此,我们在 jdbc 数据库连接的 url 后面加上 serverTimezone=UTC,即可解决。serverTimezone 连接 mysql 数据库时指定了时差,UTC 是全球标准时间,北京地区早标准时间8小时。
在这里插入图片描述


报错2️⃣: Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.
Unknown character set index for field '255' received from server.
Unable to connect to any hosts due to exception: java.net.ConnectException: Connection refused: connect

📚解决方法:
首先这几个报错都是还没换高版本 mysql-connector-java-xxx.jar 前出现的 bug,我怎么也没想到老师给的是三点几的包,然后怼着 jdbc 的 url 搞了大半天,然后出现上述的这些问题。他们意思分别是:
1.从服务器接收到未知的初始字符集索引“255”。可以通过“characterEncoding”属性强制设置初始客户端字符集。
2.从服务器收到字段“255”的未知字符集索引。
3.由于以下异常,无法连接到任何主机:java.net.ConnectException:连接被拒绝:connect

首先要确保JDBC驱动程序是 MySQL Connector/J 5.1.x 或更高版本。早期版本可能无法正确处理字符集,因此可能会导致该错误。因此我们从mysql-connector-java-xxx.jar 开始处理,切换更高版本的,然后再检查代码有没有其他报错,如数据库服务器的其他设置、是否启用了自定义字符集等。
在这里插入图片描述


报错3️⃣:Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

📚解决方法:
报错的意思是:正在加载类“com.mysql.jdbc.Driver”。这是不推荐使用的。新的驱动程序类是“com.mysql.cj.jdbc.driver”。驱动程序是通过SPI自动注册的,通常不需要手动加载驱动程序类。

首先出现这个报错的原因是因为切换高版本的mysql-connector-java-xxx.jar 后原先的 com.mysql.jdbc.Driver 不推荐使用了,需要把它修改成 com.mysql.cj.jdbc.Driver 即可。
在这里插入图片描述
❗补充:com.mysql.cj.jdbc.Driver 报错
遇到这个问题后,需要检查如下:

  • 是否已将 MySQL JDBC 驱动程序添加到您的项目依赖项中。您可以通过将官方的 MySQL JDBC 驱动程序 JAR 文件添加到项目的 classpath 中来解决此问题。
  • 检查驱动程序的版本是否与您使用的 MySQL 数据库版本匹配。如果不匹配,会出现此类错误。建议您使用与您正在使用的 MySQL 版本相应的官方 MySQL JDBC 驱动程序版本。
  • 您的 JDBC URL 是否正确。您应该检查您的 JDBC URL 是否正确,包括正确指定主机、端口和数据库名称等信息。
  • 检查您的代码是否正确,并确保正确加载了驱动程序。您可以在连接数据库之前使用 Class.forName() 方法注册 JDBC 驱动程序。

📝最后

这一题是关于人事管理平台的添加员工档案信息的操作题,除了原题和答案,还有报错处理的解决方法,至此三道题的内容以及介绍了,前两道题目可以看如下文章。

文章地址:课程《JavaWeb基础框架程序设计》考试题上篇——基础应用题(计算应用、水仙花数)
在这里插入图片描述

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

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

相关文章

2直接连接的网络与VLAN划分-2.3【实验】【计算机网络】

2直接连接的网络与VLAN划分-2.2-2.3【实验】【计算机网络】 前言推荐2直接连接的网络与VLAN划分2.1共享式以太网和交换式以太网2.2交换机MAC地址表建立与帧转发2.3 STP工作过程实验目的实验内容及实验环境实验原理物理环路引发的问题1:广播风暴物理环路引发的问题2:MAC地址表翻…

ChatGPT之公文写作

公务文章主要适用于政府部门、机关、事业单位以及其他公共组织的文件、公告、通知等文稿。 根据《党政机关公文处理工作条例》&#xff0c;公文种类主要有15种。按照行文流向&#xff0c;可以分为上行文、平行文、下行文。 1、上行文&#xff1a;请示、报告、意见。 2、平行…

Qt 文件IO

目录 1. QFileDialog 文件选择对话框 示例代码 dialog.h dialog.cpp dialog.ui 运行效果&#xff1a; 2. QFileInfo 文件信息类 dialog.cpp 3. QFile 文件读写类 UI与耗时操作 QThread 线程类 1 复现阻塞 dialog.h dialog.cpp 2.新建并启动子线程 mythread.h mythread.cpp dial…

Py之tf2onnx:tf2onnx库的简介、安装、使用方法之详细攻略

Py之tf2onnx&#xff1a;tf2onnx库的简介、安装、使用方法之详细攻略 目录 tf2onnx库的简介 tf2onnx库的安装 tf2onnx库的使用方法 1、基础用法 tf2onnx库的简介 tf2onnx是一个将TensorFlow&#xff08;tf-1.x或tf-2.x&#xff09;、keras、tensorflow.js和tflite模型转换…

【python安装】linux环境安装python

linux环境安装python 小白都能看懂的python安装前置步骤下载python安装python 小白都能看懂的python安装 前置步骤 使用 python -V 或者 python -version 查看是否安装python如果Linux有python3需要更新指定版本的话&#xff0c;先把自带的删除&#xff0c;输入 rpm -qa|grep…

JavaScript通过js的方式来计算平行四边形的面积的代码

以下为通过js的方式来计算平行四边形的程序代码和运行截图 目录 前言 一、通过js的方式来计算平行四边形&#xff08;html部分&#xff09; 1.1 运行流程及思想 1.2 代码段 二、通过js的方式来计算平行四边形&#xff08;js部分&#xff09; 2.1 运行流程及思想 2.2 代码…

算法修炼之练气篇——练气六层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

算法修炼之练气篇——练气十七层

博主&#xff1a;命运之光 专栏&#xff1a;算法修炼之练气篇 前言&#xff1a;每天练习五道题&#xff0c;炼气篇大概会练习200道题左右&#xff0c;题目有C语言网上的题&#xff0c;也有洛谷上面的题&#xff0c;题目简单适合新手入门。&#xff08;代码都是命运之光自己写的…

SpringBoot+Token+Redis+Lua+自动续签极简分布式锁Token登录方案

前言 用SpringBoot做一个项目&#xff0c;都要写登录注册之类的方案 使用Cookie或Session的话&#xff0c;它是有状态的&#xff0c;不符合现代的技术 使用Security或者Shiro框架实现起来比较复杂&#xff0c;一般项目无需用那么复杂 使用JWT它虽然是无状态的&#xff0c;也可…

微信开发者之AppID和AppSecret举例子

-- 请不要为爱你的人流泪&#xff0c;因为爱你的人不会让你流泪&#xff01; 序 今天对这2东西做个相对全面的介绍&#xff0c;不一定深入&#xff0c;但是对实际开发还是很有必要的 我们在微信开发中总是会绕不开2个单词&#xff1a; AppID&#xff1a;开发者ID,有些叫AppK…

蓝桥杯题单day2【题目】

动态规划 调手表https://www.lanqiao.cn/problems/230/learning/?page1&first_category_id1&sortstudents_count&second_category_id3&tags%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92,%E5%9B%BD%E8%B5%9B 最优包含https://www.lanqiao.cn/problems/239/learning…

114.【Vue-细刷-05】

Vue-04 (二十八)、Vuex1.Vuex的简介(1).vuex是什么(2).什么时候使用Vuex(3).Vuex工作原理图 2.求和案列_纯Vue版本3.求和案列_Vuex(1).初始化状态(2).操作状态 4.求和案列_Vuex的getters(1).Vuex的getters类似于 Vue的computed 5.求和案列_Vuex中的mapSteat和mapGetters(1).靠自…

PY32F072 系列单片机,LQFP64, LQFP48, QFN32, LQFP32多种封装

PY32F072 系列微控制器采用高性能的 32 位 ARM Cortex-M0内核&#xff0c;宽电压工作范围的 MCU。嵌入高达 128Kbytes flash 和 16Kbytes SRAM 存储器&#xff0c;最高工作频率 72MHz。包含多种不同封装类型多款产品&#xff0c;LQFP64, LQFP48, QFN32, LQFP32。 PY32F072芯片…

C# 实现 Websocket通讯聊天 (管用、超好使,点个赞)

1、背景 WebSocket出现之前&#xff0c;Web端为了实现即时通讯&#xff0c;所用的技术都是Ajax轮询(polling)。轮询是在特定的的时间间隔&#xff08;如每1秒&#xff09;&#xff0c;由浏览器对服务器发出HTTP request&#xff0c;然后由服务器返回最新的数据给客服端的浏览器…

基于RV1126平台分类模型全流程部署(附工程)

基于RV1126平台分类模型全流程部署 环境安装模型训练ONNX模型转换RKNN模型转换可执行文件上板推理 环境安装 首先要在虚拟机上安装瑞芯微Rv1126的SDK&#xff0c;重要的是要具有rknn_toolchain 一般在以下路径&#xff1a; sdk/external/rknn-toolkit 按照doc里面的步骤安装即…

多模态:MiniGPT-4

多模态&#xff1a;MiniGPT-4 IntroductionMethodlimitation参考 Introduction GPT-4具有很好的多模态能力&#xff0c;但是不开源。大模型最近发展的也十分迅速&#xff0c;大模型的涌现能力可以很好的迁移到各类任务&#xff0c;于是作者猜想这种能力可不可以应用到多模态模…

物联网常见协议之 Amqp 协议及使用场景解析

引言 本文围绕 AMQP 协议&#xff0c;为大家详细解析 AMQP 协议、核心技术亮点、多协议之间的对比以及使用实践&#xff0c;并介绍华为云 IoT 通过 Amqp 协议如何为开发者和企业提供了更加灵活和高效的通信方式&#xff0c;使得物联网应用得以在各个领域得到更广泛的推广和应用…

项目文档(request页面代码逻辑)

项目文档 1. 封装请求基地址 2. 添加请求拦截器并设置请求头 作用 在向服务器发送请求时,很多请求都需要在请求头中携带token&#xff0c;每一次去请求都写请求头很麻烦&#xff0c;所以我们写一个请求拦截器&#xff0c;统一拦截并添加一个请求头 代码部分 // 请求拦截器 req…

[架构之路-194]-《软考-系统分析师》- 软件复用技术之软件产品线

目录 1. 思想来源&#xff1a;产品线 1.1 硬件产品线 1.2. 产品组合 2. 软件产品线 2.1 思想来源&#xff1a; 2.2 为什么使用软件产品线&#xff1f; 2.3 软件产品线是一种软件架构 2.4 软件产品线详解 2.5 软件产品线的双生命周期的模型 2.6 软件产品线建立方式 …

Kali E:Unable to locate package错误解决

默认的新装的kali 可能都会遇到这个安装报错E: Unable to locate package httrack问题&#xff0c;今天我记录下彻底解决过程和效果。 Command httrack not found, but can be installed with: apt install httrack Do you want to install it? (N/y)y apt install httrack Re…