web第四次课后作业--页面操作实现数据库的增删查改
一、环境配置
1. 创建一个java web(maven构建)的项目2. 配置tomcat3. 连接数据库
二、页面呈现
-
登录页面
-
详细信息
-
删除一条信息后
-
更新
-
更新后的信息
三、目录结构
四、代码实现
4.1 denglu.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>用户登录</title><link rel="stylesheet" type="text/css" href="../css/style.css">
</head>
<body><div class="form-container"><h2>用户登录</h2><form action="zhuce/denglu_submit.jsp" method="post"><div class="form-group"><label for="username">账号:</label><input type="text" id="username" name="username" /></div><div class="form-group"><label for="pwd">密码:</label><input type="password" id="pwd" name="pwd" /></div><input type="submit" value="登陆" /></form></div>
</body>
</html>
4.2 denglu_submit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*" %>
<%request.setCharacterEncoding("UTF-8"); // 确保正确处理POST请求中的中文字符String name = request.getParameter("username");String password = request.getParameter("pwd");String message = "";boolean success = false;Connection conn = null;PreparedStatement pstmt = null;try {Class.forName("com.mysql.cj.jdbc.Driver"); // 更新驱动类名conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC","root", "1234"); // 添加 useSSL=false 和 serverTimezone=UTC 推荐参数String sql = "INSERT INTO denglu (username, password) VALUES (?, ?)";//SQL 语句中应该使用问号 ?作为参数的占位符。pstmt = conn.prepareStatement(sql);pstmt.setString(1, name);pstmt.setString(2, password);int r = pstmt.executeUpdate();if (r > 0) {System.out.println("成功插入 " + r + " 条记录: username=" + name);// 设置成功消息,可以通过 session 传递给下一个页面session.setAttribute("dbMessage", "用户 " + name + " 注册成功!" + r + "条记录已插入。");success = true;} else {System.out.println("插入失败,没有记录被影响: username=" + name);message = "用户注册失败,请重试。";}} catch (ClassNotFoundException e) {e.printStackTrace();message = "数据库驱动加载失败: " + e.getMessage();System.err.println("数据库驱动加载失败: " + e.getMessage());} catch (SQLException e) {e.printStackTrace();message = "数据库操作失败: " + e.getMessage();System.err.println("数据库操作失败: " + e.getMessage() + " SQLState: " + e.getSQLState());} finally {if (pstmt != null) {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}if (success) {response.sendRedirect("user_select.jsp");} else {// 如果失败,可以重定向回注册页面并显示错误,或者在本页显示错误// 这里我们选择在本页显示错误,因为没有明确的错误展示页
%>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>注册结果</title>
</head>
<body><h2>注册处理结果</h2><p style="color:red;"><%= message %></p><p><a href="zhuce/denglu.jsp">返回注册页面</a></p>
</body>
</html>
<%}
%>
4.3 user_select.jsp
<%@ page import="java.sql.*" %><%--Created by IntelliJ IDEA.User: huaweiDate: 2025/4/28Time: 12:05To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>用户信息</title><link rel="stylesheet" type="text/css" href="../css/style.css">
</head>
<body>
<div class="form-container"><h2>用户列表</h2><table class="data-table"><tr><th>id</th><th>姓名</th><th>密码</th><th>操作</th></tr><%try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}try (Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=UTF-8","root", "1234");Statement s = c.createStatement();) {String sql = "select * from denglu";// 执行查询语句,并把结果集返回给ResultSetResultSet rs = s.executeQuery(sql);
/* if(rs.next())System.out.println("账号密码正确");elseSystem.out.println("账号密码错误");*//* //输出到控制台while (rs.next()){out.println(rs.getString(2)+","+rs.getString(3)+";;");}*/while (rs.next()){//输出到页面表格中int id=rs.getInt(1);%><tr><td><%=id%></td><td><%=rs.getString(2)%></td><td><%=rs.getString(3)%></td><td><a href="user_delete.jsp?id=<%=id%>">删除</a> <a href="user_update.jsp?id=<%=id%>">修改</a></td></tr><%}rs.close();c.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}%></table>
</div>
</body>
</html>
4.4 user_delelte.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*" %>
<%request.setCharacterEncoding("UTF-8");String paramId = request.getParameter("id");String message = "";boolean deleteSuccess = false;int userId = -1;if (paramId == null || paramId.trim().isEmpty()) {message = "错误:ID 不能为空。";} else {try {userId = Integer.parseInt(paramId);} catch (NumberFormatException e) {message = "错误:ID 格式不正确 (" + paramId + ")。";}}Connection conn = null;PreparedStatement pstmt = null;if (message.isEmpty()) { // 只有在初始参数校验通过后才执行数据库操作try {Class.forName("com.mysql.cj.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC","root", "1234");String sql = "DELETE FROM denglu WHERE id = ?";pstmt = conn.prepareStatement(sql);pstmt.setInt(1, userId);int rowsAffected = pstmt.executeUpdate();if (rowsAffected > 0) {deleteSuccess = true;message = "ID " + userId + " 的用户删除成功!影响行数: " + rowsAffected;System.out.println(message);} else {message = "用户删除失败,未找到对应 ID (" + userId + ")。";System.out.println(message);}} catch (ClassNotFoundException e) {message = "数据库驱动加载失败: " + e.getMessage();e.printStackTrace();} catch (SQLException e) {message = "数据库操作失败: " + e.getMessage();e.printStackTrace();} finally {if (pstmt != null) {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}// 无论成功与否(只要不是初始的严重错误),都设置消息并重定向session.setAttribute("dbMessage", message);response.sendRedirect("user_select.jsp");
%>
4.5 user_update.jsp
<%@ page import="java.sql.*" %><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>更新用户信息</title><link rel="stylesheet" type="text/css" href="../css/style.css">
</head>
<body>
<%String id = request.getParameter("id");String name = ""; // Initialize to prevent errors if user not foundString pwd = ""; // Initialize to prevent errors if user not foundboolean userFound = false;try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}try (Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=UTF-8","root", "1234");Statement s = c.createStatement();) {String sql = "select * from denglu where id="+id;ResultSet rs = s.executeQuery(sql);if (rs.next()){ // Use if instead of while, as we expect only one user or noneuserFound = true;name = rs.getString(2);pwd = rs.getString(3);}rs.close();// Connection and statement will be closed automatically by try-with-resources} catch (SQLException e) {e.printStackTrace();// Optionally, set an error message to display to the user}
%><div class="form-container"><h2>更新用户信息</h2><% if (userFound) { %><form action="user_update_submit.jsp" method="post"><input type="hidden" name="id" value="<%=id%>"><div class="form-group"><label for="username">账号:</label><input type="text" id="username" name="username" value="<%=name%>" /></div><div class="form-group"><label for="pwd">密码:</label><input type="password" id="pwd" name="pwd" value="<%=pwd%>" /></div><input type="submit" value="更新" /></form><% } else { %><p>未找到ID为 <%=id%> 的用户,或加载用户信息时发生错误。</p><p><a href="user_select.jsp">返回用户列表</a></p><% } %>
</div></body>
</html>
4.6 user_update_submit.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.sql.*" %>
<%request.setCharacterEncoding("UTF-8");String paramId = request.getParameter("id");String name = request.getParameter("username");String password = request.getParameter("pwd");String message = "";boolean updateSuccess = false;int userId = -1;if (paramId == null || paramId.trim().isEmpty() || name == null || name.trim().isEmpty() || password == null || password.trim().isEmpty()) {message = "错误:ID、用户名和密码均不能为空。";} else {try {userId = Integer.parseInt(paramId);} catch (NumberFormatException e) {message = "错误:ID 格式不正确。";}}Connection conn = null;PreparedStatement pstmt = null;if (message.isEmpty()) { // 只有在初始参数校验通过后才执行数据库操作try {Class.forName("com.mysql.cj.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/demo?characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC","root", "1234");String sql = "UPDATE denglu SET username = ?, password = ? WHERE id = ?";pstmt = conn.prepareStatement(sql);pstmt.setString(1, name);pstmt.setString(2, password);pstmt.setInt(3, userId);int rowsAffected = pstmt.executeUpdate();if (rowsAffected > 0) {updateSuccess = true;message = "用户信息更新成功!影响行数: " + rowsAffected;System.out.println(message);session.setAttribute("dbMessage", message); // 为重定向后页面准备消息} else {message = "用户信息更新失败,未找到对应 ID 或数据无变化。";System.out.println(message);}} catch (ClassNotFoundException e) {message = "数据库驱动加载失败: " + e.getMessage();e.printStackTrace();} catch (SQLException e) {message = "数据库操作失败: " + e.getMessage();e.printStackTrace();} finally {if (pstmt != null) {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}if (updateSuccess) {// 更新成功后重定向到用户列表页面response.sendRedirect("user_select.jsp"); // 假设 user_select.jsp 是显示用户列表的页面} else {// 如果失败,在此页面显示错误信息
%>
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>用户更新结果</title>
</head>
<body><h2>用户更新处理结果</h2><p style="color:red;"><%= message %></p><p><a href="user_select.jsp">返回用户列表</a></p> <%-- 或者链接到具体的修改页面 user_update.jsp?id=<%=userId%> --%>
</body>
</html>
<%}
%>
相关文章:
web第四次课后作业--页面操作实现数据库的增删查改
一、环境配置 1. 创建一个java web(maven构建)的项目2. 配置tomcat3. 连接数据库二、页面呈现 登录页面 详细信息 删除一条信息后 更新 更新后的信息 三、目录结构 四、代码实现 4.1 denglu.jsp <% page language"java" cont…...
DeepSearch:字节新一代 DeerFlow 框架
项目地址:https://github.com/bytedance/deer-flow/ 【全新的 Multi-Agent 架构设计】独家设计的 Research Team 机制,支持多轮对话、多轮决策和多轮任务执行。与 LangChain 原版 Supervisor 相比,显著减少 Tokens 消耗和 API 调用次数&#…...
uniapp中vue3和pinia安装依赖npm install失败
目录 一、问题描述 二、问题原因 三、问题解析及解决方案 一、问题描述 用uni-app开发小程序的时候,使用了vue3pinia,安装依赖的时候发现vue和pinia的版本问题,安装失败, npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve np…...
【java】synchronized关键字详解
目录 一、线程同步与线程安全问题线程不安全Demo线程不安全的原因 二、synchronized关键字关键字锁粒度修饰对象修饰代码块修饰方法修饰静态方法修饰类 synchronized 锁总结 synchronized加锁原理MarkWordsynchronized锁升级synchronized锁原理synchronized关键字总结 其他同步…...
使用 `perf` 和火焰图(Flame Graph)进行性能分析
在现代软件开发中,性能优化是提升应用程序响应速度和资源利用率的关键步骤。当一个进程的 CPU 占用率异常高时,识别并优化性能瓶颈显得尤为重要。本文将详细介绍如何使用 Linux 下强大的性能分析工具 perf 以及火焰图(Flame Graph)…...
Cocos Creator 3.8.5 构建依赖环境配置文档
Cocos Creator 3.8.5 构建依赖环境配置文档 文章目录 Cocos Creator 3.8.5 构建依赖环境配置文档✅ 构建依赖汇总表✅ 构建平台配置说明👉 Windows 构建👉 Android 构建 ✅ 推荐构建环境组合(稳定)✅ 常见问题提示 适用于打包 An…...
# FlyEnv 环境下 MySQL 操作全攻略:从基础到字段修改
在使用 FlyEnv 搭建开发环境时,MySQL 数据库的操作是开发过程中不可或缺的一环。无论是修改字段结构,还是执行其他常见操作,都需要熟练掌握相关技能。下面将为你详细介绍 FlyEnv 环境下 MySQL 的操作,以及修改字段的多种方法。 一…...
C语言_自动义类型:联合和枚举
1. 联合体 1.1 联合体类型的声明 与结构体相似,联合体也是有一个或多个成员(可以是不同类型)构成;但是编译器只为最大的成员分配足够的内存空间 联合体的特点是所有成员共用同一块内存空间,所以联合体也叫ÿ…...
Golang基础知识—cond
cond 通常指 sync.Cond,它是标准库 sync 包中用于实现 条件变量 的同步原语。条件变量在多 goroutine 协作场景中非常有用,尤其在需要根据特定条件协调多个 goroutine 的执行顺序时。 sync.Cond 的核心作用 条件变量用于 等待某个条件满足 或 通知其他等…...
深入探索向量数据库:构建智能应用的新基础
📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4-turbo模型辅助生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认…...
实验5 DNS协议分析与测量
实验5 DNS协议分析与测量 1、实验目的 了解互联网的域名结构、域名系统DNS及其域名服务器的基本概念 熟悉DNS协议及其报文基本组成、DNS域名解析原理 掌握常用DNS测量工具dig使用方法和DNS测量的基本技术 2、实验环境 硬件要求:阿里云云主机ECS 一台。 软件要…...
1200/1500 PID 学习笔记
一 准备 1. 仿真库文件,下载链接放在最后 2.PID仿真,不支持1200.所以组CPU需要1500. 3.PID必须在循环中断里面调用。 二 试水 1. 拉一个PID指令 2. 库文件拉入 3 仿真试水,可以看到已经开始调节了。 、 三 组态设置 1. Input: 输入值&a…...
深度学习中--模型调试与可视化
第一部分:损失函数与准确率的监控(Loss / Accuracy Curve) 1. 为什么要监控 Loss 与 Accuracy? Loss 是模型优化的依据,但它可能下降了 Accuracy 反而没变(过拟合信号) Accuracy 才是评估效果的…...
tomcat项目重构踩坑易错点
是的,没错,弄了一个特别老的项目。重构真是头疼啊。其实好吧,还是用的太少。 前提条件:用idea工具非社区版。注意是非社区版。点击设置- project Structure 1.配置Modules 点击import module 添加好模块后。 重点来了࿰…...
如何安全擦除 SSD 上的可用空间
无论您是要处理旧 SSD 还是只是想确保敏感信息的私密性,擦除可用空间都是至关重要的一步。那么,您可以擦除 SSD 上的可用空间吗?是的,可以擦除 SSD 上的可用空间,我们在本指南中提供了两种有效的方法。是的,…...
增强 HTNN 服务网格功能:基于 Istio 的BasicAuth 与 ACL 插件开发实战
目录 1.引言 什么是HTNN? 为什么开发 BasicAuth 和 ACL 插件? 2.技术背景 技术栈概览 Istio 与服务网格简述 HTNN 框架与插件机制概览 3.插件开发详解:BasicAuth 与 ACL 3.1 BasicAuth插件 功能点 实现细节 3.2 ACL插件 功能点 …...
从概念到可工程化智能体的转变路径——以“知识奇点工程师”为例
产品部门定义了一个如下概念性的“知识奇点工程师”,他们构建的不仅仅是一个数据库或知识图谱,而是一个活的、能自我进化的知识生态系统,是整个“Neuralink for Education”宏伟蓝图的基石。他们的工作难度和重要性,不亚于为AI引擎…...
docker(四)使用篇一:docker 镜像仓库
前文我们已经介绍了 docker 并安装了 docker,下面我们将正式步入使用环节,本章是第一个使用教学:docker 镜像仓库。 一、什么是镜像仓库 所谓镜像仓库,其实就是负责存储、管理和分发镜像的仓库,并且建立了仓库的索引…...
S7-1500 与 IM60 进行 PROFINET 通信
S7-1500 与 IM60 进行 PROFINET 通信 本文档介绍使用 S7-1500 CPU 与 IM 60 进行 PROFINET 通信,实现对 IM60 及 AM03 的控制。 使用软件及硬件 软件:工控人加入PLC工业自动化精英社群 TIA Portal V19 ET 200 SMART IM60 GSD 文件下载链接ÿ…...
车载诊断架构 ---车载总线对于功能寻址的处理策略
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…...
观QFramework框架底层逻辑有感
拿QFramework(以下简称QF)第一个案例简单理解框架底层代码逻辑。 使用QF框架重构后的代码,给我这种小白一种很抽象的感觉,但好的代码就是抽象的,这是不可否认的。于是想掌握一下这个框架的基础部分,至少能…...
ExecutorService详解:Java 17线程池管理从零到一
简介 在现代高并发应用中,线程池管理已成为提升系统性能与稳定性的关键核心技术。ExecutorService作为Java并发编程的核心接口,提供了对线程池的强大抽象与管理能力,相比直接管理线程,它能显著降低资源消耗、提高响应速度并增强系统可维护性。随着Java 17的发布,线程池管…...
Go 中闭包的常见使用场景
在 Go 中,闭包(Closure) 是一个函数值,它引用了其定义时所在作用域中的变量。也就是说,闭包可以访问并修改外部作用域中的变量。 Go 中闭包的常见使用场景 ✅ 1. 封装状态(无须结构体) 闭包可…...
养生:打造健康生活的四大支柱
饮食养生:吃对食物,滋养生命根基 饮食是健康的物质基础,需遵循 “均衡、天然、顺应时节” 原则: 三餐科学搭配: 早餐以高蛋白 膳食纤维为主,如燕麦粥配水煮蛋、蓝莓,快速激活代谢;…...
OpenCV 图像直方图:从原理剖析到实战应用
在数字图像处理领域,图像直方图是一种强大而基础的工具,它以直观的方式展示了图像中像素值的分布情况。OpenCV 作为广泛应用的计算机视觉库,提供了丰富的函数来处理图像直方图。本文将深入讲解图像直方图的原理、OpenCV 中的实现方法…...
springboot+vue实现在线书店(图书商城)系统
今天教大家如何设计一个图书商城 , 基于目前主流的技术:前端vue,后端springboot。 同时还带来的项目的部署教程。 视频演示 在线书城 图片演示 一. 系统概述 商城是一款比较庞大的系统,需要有商品中心,库存中心,订单…...
LLM Text2SQL NL2SQL 实战总结
目录 尽量全面的描述表的功能 尽量全面的描述字段的功能 适当放弃意义等价的字段 放弃业务上无用的字段 对于LLM来说,由于它没有什么行业经验,所以我们需要尽可能的给予它恰当的“背景信息”,才能使它更好的工作。所谓恰当,不是越多越好,因为太多的信息会消耗掉LLM的可…...
SQLPub:一个提供AI助手的免费MySQL数据库服务
给大家介绍一个免费的 MySQL 在线数据库环境:SQLPub。它提供了最新版本的 MySQL 服务器测试服务,可以方便开发者和测试人员验证数据库功能,也可以用于学习 MySQL。 免费申请 在浏览器中输入以下网址: https://sqlpub.com/ SQLP…...
EasyExcel集成使用总结与完整示例
EasyExcel集成使用总结与完整示例 一、EasyExcel简介 EasyExcel是阿里巴巴开源的Java库,专注于简化Excel文件的读写操作。它基于Apache POI进行了优化,采用流式处理,具有低内存占用和高性能的特点,非常适合处理大规模数据的导入…...
【hot100-动态规划-139.单词拆分】
力扣139.单词拆分 本题要求判断给定的字符串 s 是否可以被空格拆分为一个或多个在字典 wordDict 中出现的单词,且不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用,这是一个典型的动态规划问题。 动态规划思路 定义状态: 定义一个布尔类型的数组 dp,其中…...
人工神经网络(ANN)模型
一、概述 人工神经网络(Artificial Neural Network,ANN),是一种模拟生物神经网络结构和功能的计算模型,它通过大量的神经元相互连接,实现对复杂数据的处理和模式识别。从本质上讲,人工神经网络是…...
2025ICPC陕西省赛题解
L. easy 每行选能选的最小的两个,注意处理奇数的情况。 #include <bits/stdc.h> #define x first #define y second #define int long longusing namespace std; typedef unsigned long long ULL ; typedef pair<int,int> PII ; typedef pair<lon…...
不同进制的数据展示(十进制、十六进制、编码方式)
目录 1、十六进制的数值转为十进制(可能是补码) 2、十进制转为十六进制(负数要转为补码) 背景: (1) 接收到通讯的数据,把数据读取出来,并转成自己想要的格式。 &#x…...
贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现
贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现 目录 贝叶斯优化Transformer融合支持向量机多变量回归预测,附相关性气泡图、散点密度图,Matlab实现效果一览基本介绍程序设计参考资料…...
为什么doris是实时的?
Apache Doris 作为实时分析型数据库的核心竞争力源于其技术架构与功能设计的深度融合,以下从关键特性解析其实时能力的技术实现: 一、 MPP架构驱动分布式并行计算 基于 大规模并行处理(MPP)架构,Dori…...
ProceedingJoinPoint的认识
ProceedingJoinPoint 是 Spring AOP(面向切面编程) 中的核心接口,用于在 环绕通知(Around) 中拦截方法调用并控制其执行流程。以下是对其功能和用法的详细解释: 核心作用 拦截目标方法 在方法执行前后插…...
穿透工具如何保证信息安全?
引言 在当今数字化时代,网络穿透工具(如VPN、SSH隧道、内网穿透工具等)已成为企业远程办公和个人隐私保护的重要技术手段。然而,这些工具本身也可能成为信息安全的风险点。本文将探讨穿透工具如何在不牺牲便利性的前提下ÿ…...
卷积神经网络和深度神经网络的区别是什么?
近 6000 字长文梳理深度神经网络结构。 先来一个省流版回答:卷积神经网络(CNN)只是深度神经网络(DNN)家族中的一员,其处理数据(如图像)的核心方式是卷积操作,因此而得名…...
C#语言中 (元,组) 的发展史
C# 中的元组(Tuple)详解 元组(Tuple)是 C# 中的一种数据结构,用于将多个不同类型的值组合成一个复合值。元组在 C# 7.0 中得到了重大改进,提供了更简洁的语法和更好的性能。 1. 元组的基本概念 元组允许你将多个值组合成一个单…...
Apollo学习——planning模块(3)之planning_base
planning_component、planning_base、on_lane_planning 和 navi_planning 的关系 1. 模块关系总览 继承层次 PlanningComponent:Cyber RT 框架中的 入口组件,负责调度规划模块的输入输出和管理生命周期。PlanningBase:规划算法的 抽象基类&…...
【SPIN】PROMELA语言编程入门基础语法(SPIN学习系列--1)
PROMELA(Protocol Meta Language)是一种用于描述和验证并发系统的形式化建模语言,主要与SPIN(Simple Promela Interpreter)模型检查器配合使用。本教程将基于JSPIN(SPIN的Java图形化版本)&#…...
Linux --systemctl损坏
systemctlSegmentation fault (core dumped) 提示这个 Ubuntu/Debian sudo apt-get update sudo apt-get --reinstall install systemdCentOS/RHEL sudo yum reinstall systemd # 或 CentOS 8 / RHEL 8 sudo dnf reinstall systemd...
Vue3+ElementPlus 开箱即用后台管理系统,支持白天黑夜主题切换,通用管理组件,
Vue3ElementPlus后台管理系统,支持白天黑夜主题切换,专为教育管理场景设计。主要功能包括用户管理(管理员、教师、学生)、课件资源管理(课件列表、下载中心)和数据统计(使用情况、教学效率等&am…...
Seata源码—3.全局事务注解扫描器的初始化二
大纲 1.全局事务注解扫描器继承的父类与实现的接口 2.全局事务注解扫描器的核心变量 3.Spring容器初始化后初始化Seata客户端的源码 4.TM全局事务管理器客户端初始化的源码 5.TM组件的Netty网络通信客户端初始化源码 6.Seata框架的SPI动态扩展机制源码 7.向Seata客户端注…...
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七)
Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七) 在 Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(六)-CSDN博客 的基础上改进,主要是…...
快速搭建一个electron-vite项目
1. 初始化项目 在命令行中运行以下命令 npm create quick-start/electronlatest也可以通过附加命令行选项直接指定项目名称和你想要使用的模版。例如,要构建一个 Electron Vue 项目,运行: # npm 7,需要添加额外的 --: npm cre…...
Python网络请求利器:urllib库深度解析
一、urllib库概述 urllib是Python内置的HTTP请求库,无需额外安装即可使用。它由四个核心模块构成: urllib.request:发起HTTP请求的核心模块urllib.error:处理请求异常(如404、超时等)…...
2025认证杯第二阶段数学建模B题:谣言在社交网络上的传播思路+模型+代码
2025认证杯数学建模第二阶段思路模型代码,详细内容见文末名片 一、引言 在当今数字化时代,社交网络已然成为人们生活中不可或缺的一部分。信息在社交网络上的传播速度犹如闪电,瞬间就能触及大量用户。然而,这也为谣言的滋生和扩…...
IP地址、端口、TCP介绍、socket介绍、程序中socket管理
1、IP地址:IP 地址就是 标识网络中设备的一个地址,好比现实生活中的家庭地址。IP 地址的作用是 标识网络中唯一的一台设备的,也就是说通过IP地址能够找到网络中某台设备。 2、端口:代表不同的进程,如下图: 3、socket:…...
leetcode0621. 任务调度器-medium
1 题目:任务调度器 官方标定难度:中 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表,用字母 A 到 Z 表示,以及一个冷却时间 n。每个周期或时间间隔允许完成一项任务。任务可以按任何顺序完成,但有一个限制…...