javaEE13(网站第8章两个课后题)
1、对“jsp+servlet+javabean实现分页查询”功能做如下补充:
(1)记录批量删除:每个记录前添加复选框,点击批量删除,删除选中记录。
- 增加跳转到任意页功能。
- 用户可改变每页记录条数。



页面:
<%@ page pageEncoding="UTF-8" import="java.util.List,dao.StudentDao,entity.Student"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html><html><head><title>模糊</title><script>function qingchu(){document.getElementById("sno").value='';document.getElementById("sname").value='';document.getElementById("sex").value='';}function jump1(pageNo){var queryForm=document.getElementById("queryForm");queryForm.pageNo.value=pageNo;queryForm.submit();}function jump2(pageNo){var pageNo1=document.getElementById("pageNo1").value;if(pageNo1!=""){jump1(pageNo1);}}function btSelectAllOnclick(obj) { var isCheck=obj.checked;var inputs=document.getElementsByTagName("input"); for(var i=0;i<inputs.length;i++){ if(inputs[i].type=="checkbox" && inputs[i].id!="selectAll") //刷选出所有复选框 { inputs[i].checked=obj.checked;if(isCheck==true){inputs[i].name="check";}else{inputs[i].name="user";}} } }function getCheckBox() { var inputs=document.getElementsByTagName("input"); var chkInputs=new Array(); var j=0; for(var i=0;i<inputs.length;i++) { if(inputs[i].type=="checkbox" && inputs[i].id!="selectAll") //刷选出所有复选框 { chkInputs[j]=inputs[i]; j++; } } return chkInputs; }function toChkSon(obj) { var isCheck=obj.checked;obj.name="check";if(isCheck==false) //单选复选框未选中 全选为未选 { document.getElementById("selectAll").checked=false;obj.name="user";return ; } var chkInputs=getCheckBox();var j=0; for(var i=0;i<chkInputs.length;i++) { if(chkInputs[i].checked==isCheck) j++; else break; } if(j==chkInputs.length) //当所有复选框为同一状态时 赋值全选同一状态 document.getElementById("selectAll").checked=isCheck; }function submitForm(){document.getElementById("queryForm").submit();}function pagesizee(){var pagesize=document.getElementById("pageSize").value;if(pagesize!=""&&pagesize!=null){document.getElementById("queryForm").submit();}}</script><style>th,td{border:2px solid gray;padding:3px;text-align:center;}table,form{border-collapse:collapse;margin:0 auto;text-align:center;}#pageSwitch{margin:5px;text-align:center;}</style></head><body><form method="post" action="${pageContext.request.contextPath}/student" id="queryForm">学号<input type="text" name="sno" id="sno" value="${param.sno}">姓名<input type="text" name="sname" id="sname" value="${param.sname}">性别<input type="text" name="sex" id="sex" value="${param.sex}"><input type="button" value="清除" onclick="qingchu()"/><input type="hidden" name="action" value="query3"/><input type="hidden" name="pageNo" value="1"/><input type="submit" value="查询"/><br><br><c:if test="${requestScope.recordCount==0}"><div style="text-align:center">无记录</div></c:if><c:if test="${requestScope.recordCount>0}"><table id="tab"><tr><th><input type="checkbox" id="selectAll" name="selectAll" onclick="btSelectAllOnclick(this)"/></th><th>序号</th><th>学号</th><th>姓名</th><th>性别</th><th>修改</th><th>删除</th></tr><c:forEach items="${studentList}" var="student" varStatus="status"><tr><td><input type="checkbox" onclick="toChkSon(this);" value="${student.id}" id="user" name="user"></td><td>${status.index+1}</td><td>${student.sno}</td><td>${student.sname}</td><td>${student.sex}</td><td><a href="${pageContext.request.contextPath}/student/edit.jsp?id=${student.id}&sno=${student.sno}&sname=${student.sname}&sex=${student.sex}">修改</a></td><td><a href="${pageContext.request.contextPath}/student?id=${student.id}&action=delete" onclick="return confirm('确实要删除该记录吗?')">删除</a></td></tr></c:forEach></table><input type="button" value="删除所选" onclick="submitForm()" /><div id="pageSwitch">共有记录${recordCount}条, 第${pageNo}/${pageCount}页,<c:if test="${pageNo>1}"><a href="javascript:jump1('1')">首页</a><a href="javascript:jump1('${pageNo-1}')">上页</a></c:if><c:if test="${pageNo==1}">首页 上页</c:if><c:if test="${pageNo<pageCount}"><a href="javascript:jump1('${pageNo+1}')">下页</a><a href="javascript:jump1('${pageCount}')">末页</a></c:if><c:if test="${pageNo==pageCount}">下页 末页</c:if>跳转到第<input type="text" name="pageNo1" id="pageNo1" value="" onclick="jump2('${pageNo}')">页,每页<input type="text" name="pageSize" id="pageSize" value="" onclick="pagesizee()">条</div></c:if></form><%String pagesize=request.getParameter("pageSize");if(pagesize!=null&&pagesize!=""){session.setAttribute("pageSize",pagesize);}%></body></html>
Servlet:
private void query3(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");String users[]=request.getParameterValues("check");StudentDao studentDao=new StudentDao();HttpSession session=request.getSession();if(users!=null){for(int i=0;i<users.length;i++){//循环删除被选中的数据try {studentDao.delete(Integer.parseInt(users[i]));} catch (Exception e) {e.printStackTrace();}}}try {String condition=" where 1=1 ";String sno=request.getParameter("sno");String sname=request.getParameter("sname");String sex=request.getParameter("sex");if(notEmpty(sno)) {condition+=" and sno like '%"+sno+"%' ";}if(notEmpty(sname)) {condition+=" and sname like '%"+sname+"%' ";}if(notEmpty(sex)) {condition+=" and sex like '%"+sex+"%' ";}int pageNo=1;int pageSize=10;try {pageNo=Integer.parseInt(request.getParameter("pageNo"));} catch (Exception e) {}String pagesize=request.getParameter("pageSize");String pagesize1=(String) session.getAttribute("pageSize");if(pagesize!= null && !pagesize.equals("")) {pageSize=Integer.parseInt(pagesize);}else if(pagesize1!= null && !pagesize1.equals("")) {pageSize=Integer.parseInt(pagesize1);}int recordCount=studentDao.getRecordCount(condition);if(recordCount>0){List<Student> studentList=studentDao.query(condition,"",pageNo,pageSize); int t1=recordCount%pageSize;;int t2=recordCount/pageSize;int pageCount=(t1==0?t2:t2+1);request.setAttribute("pageNo", pageNo);request.setAttribute("pageCount", pageCount);request.setAttribute("studentList", studentList);}request.setAttribute("recordCount", recordCount);request.getRequestDispatcher("/student/query3.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
Dao:
public void delete(int id) throws Exception{Connection conn = null;PreparedStatement ps = null;try {conn = JdbcUtil.getConnection();String sql = "delete from student where id=?";ps = conn.prepareStatement(sql);ps.setInt(1,id);ps.executeUpdate();}finally {JdbcUtil.free( null,ps, conn);}}
2、针对课程表数据库(数据库脚本下载)实现分页查询。同时按课程名、上课时间、上课地点、任课教师四列查询。
样例:http://47.93.11.179/test/courseServlet3

页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.util.List,dao.courseDao,entity.course"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html><html><head><style>body{text-align:center;}th,td{border:2px solid gray;text-align:center;padding:3px 10px;}table{border-collapse:collapse;margin:0 auto;}</style><script>function jump1(pageNo){document.getElementById("pageNo").value=pageNo;document.getElementById("form11").submit();}function qc(){document.getElementById("kcm").value="";document.getElementById("sksj").value="";document.getElementById("skdd").value="";document.getElementById("rkjs1").value="";}</script><style>.odd{background-color:#E0EEEE;}</style></head><body><h2>课程表分页查询</h2><form action="${pageContext.request.contextPath}/courseServlet3" method="post" id="form11" >课程名<input name="kcm" value="${param.kcm}" id="kcm">上课时间<input name="sksj" value="${param.sksj}" id="sksj">上课地点<input name="skdd" value="${param.skdd}" id="skdd">任课教师<input name="rkjs1" value="${param.rkjs1}" id="rkjs1"><input type="hidden" name="pageNo" id="pageNo" value="1"/><input type="submit" value="查询"/><input type="button" value="清除" onclick="qc()"/></form><br><c:if test="${requestScope.recordCount==0}"><div style="text-align:center">无记录</div></c:if><c:if test="${requestScope.recordCount>0}"><table><tr><th>学院</th><th>课序号</th><th>课程号</th><th>课程名</th><th>任课老师</th><th>上课时间</th><th>上课周次</th><th>上课地点</th><th>班级</th><th>年级</th><th>校区</th></tr><c:forEach items="${studentList}" var="student" varStatus="status"><tr><td>${status.index+1}</td><td>${student.kxh}</td><td>${student.kch}</td><td>${student.kcm}</td><td>${student.rkjs1}</td><td>${student.sksj}</td><td>${student.skzc}</td><td>${student.skdd}</td><td>${student.bj}</td><td>${student.rs}</td><td>${student.xq}</td></tr></c:forEach></table><div id="pageSwitch">共有记录${recordCount}条, 第${pageNo}/${pageCount}页,<c:if test="${pageNo>1}"><a href="javascript:jump1('1')">首页</a><a href="javascript:jump1('${pageNo-1}')">上页</a></c:if><c:if test="${pageNo==1}">首页 上页</c:if><c:if test="${pageNo<pageCount}"><a href="javascript:jump1('${pageNo+1}')">下页</a><a href="javascript:jump1('${pageCount}')">末页</a></c:if><c:if test="${pageNo==pageCount}">下页 末页</c:if></div></c:if><br></body></html>
Servlet:
package servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.courseDao;import entity.course;@WebServlet("/courseServlet3")public class CourseServlet extends HttpServlet{private static final long serialVersionUID = 1L;courseDao studentDao=new courseDao();public CourseServlet() {super();// TODO Auto-generated constructor stub}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubthis.doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();try {String condition=" where 1=1 ";String kcm=request.getParameter("kcm");String sksj=request.getParameter("sksj");String skdd=request.getParameter("skdd");String rkjs1=request.getParameter("rkjs1");if(notEmpty(kcm)) {condition+=" and kcm like '%"+kcm+"%' ";}if(notEmpty(sksj)) {condition+=" and sksj like '%"+sksj+"%' ";}if(notEmpty(skdd)) {condition+=" and skdd like '%"+skdd+"%' ";}if(notEmpty(rkjs1)) {condition+=" and rkjs1 like '%"+rkjs1+"%' ";}int pageNo=1;int pageSize=10;try {pageNo=Integer.parseInt(request.getParameter("pageNo"));} catch (Exception e) {}int recordCount=studentDao.getRecordCount(condition);if(recordCount>0){List<course> studentList=studentDao.query(condition,"",pageNo,pageSize); int t1=recordCount%pageSize;int t2=recordCount/pageSize;int pageCount=(t1==0?t2:t2+1);request.setAttribute("pageNo", pageNo);request.setAttribute("pageCount", pageCount);request.setAttribute("studentList", studentList);}request.setAttribute("recordCount", recordCount);request.getRequestDispatcher("courseServlet.jsp").forward(request,response);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private boolean notEmpty(String s) {return s!=null&&!"".equals(s.trim());}}
Dao:
package dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import entity.course;import util.JdbcUtil;public class courseDao {public List<course> query(String condition) throws Exception{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;List<course> studentList=new ArrayList<course>();try {conn = JdbcUtil.getConnection();String sql = "select * from course "+condition;ps=conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){course student=new course();student.setId(rs.getInt(1));student.setXy(rs.getString(2));student.setKxh(rs.getString(3));student.setKch(rs.getString(4));student.setKcm(rs.getString(5));student.setRkjs1(rs.getString(9));student.setSksj(rs.getString(11));student.setSkzc(rs.getString(12));student.setSkdd(rs.getString(13));student.setBj(rs.getString(14));student.setRs(rs.getString(16));student.setXq(rs.getString(17));studentList.add(student);}}finally {JdbcUtil.free(rs, ps, conn);}return studentList;}public int getRecordCount(String condition) throws Exception{Connection conn = null;PreparedStatement pst = null;ResultSet rs = null;int recordcount=0;try {conn = JdbcUtil.getConnection();String sql = "select count(*) from course "+condition;pst = conn.prepareStatement(sql);rs=pst.executeQuery();rs.next();recordcount=rs.getInt(1);}finally {JdbcUtil.free(rs, pst, conn);}return recordcount;}public List<course> query(String condition,String order,int pageNo,int pageSize) throws Exception{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;List<course> studentList=new ArrayList<course>();try {conn = JdbcUtil.getConnection();String sql = "select * from course "+condition+order+" limit ?,?";ps=conn.prepareStatement(sql);ps.setInt(1, (pageNo-1)*pageSize);ps.setInt(2, pageSize);rs=ps.executeQuery();while(rs.next()){course student=new course();student.setId(rs.getInt(1));student.setXy(rs.getString(2));student.setKxh(rs.getString(3));student.setKch(rs.getString(4));student.setKcm(rs.getString(5));student.setRkjs1(rs.getString(9));student.setSksj(rs.getString(11));student.setSkzc(rs.getString(12));student.setSkdd(rs.getString(13));student.setBj(rs.getString(14));student.setRs(rs.getString(16));student.setXq(rs.getString(17));studentList.add(student);}}finally {JdbcUtil.free(rs, ps, conn);}return studentList;}}
相关文章:
javaEE13(网站第8章两个课后题)
1、对“jspservletjavabean实现分页查询”功能做如下补充: (1)记录批量删除:每个记录前添加复选框,点击批量删除,删除选中记录。 增加跳转到任意页功能。用户可改变每页记录条数。 页面&am…...
【Leetcode每日一题】 递归 - 反转链表(难度⭐)(35)
1. 题目解析 题目链接:206. 反转链表 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针,并返回该链表逆序后的新头结点。递归…...
Unity基础学习
目录 基础知识点3D数学——基础Mathf三角函数坐标系 3D数学——向量向量模长和单位向量向量的加减乘除向量点乘向量叉乘向量插值运算 3D数学——四元数为何使用四元数四元数是什么四元数常用方法四元数计算 MonoBehavior中的重要内容延迟函数协同程序协同程序原理 Resources资源…...
Java并发编程学习笔记:AQS
Java并发编程学习笔记:AQS 一、底层原理核心功能同步状态管理CLH 队列和线程调度机制独占模式与共享模式模板方法设计模式自旋、阻塞与超时机制 运行流程 二、锁的公平性公平锁非公平锁 三、容器实现 JUC中的AQS(AbstractQueuedSynchronizer)…...
Github上哪些好用的工具
专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! Qexo-爱写博客的师傅强烈推荐 漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、…...
如何确保面试流程标准化操作,避免人为因素影响**
一、背景 在招聘过程中,面试作为关键环节,其标准化操作至关重要。标准化不仅有助于提高面试效率和质量,还能减少人为因素的影响,确保公平、公正和客观。本文将从以下八个方面探讨如何确保面试流程的标准化操作。 二、明确面试标准 制定明确的面试标准和要求,确保所有面试…...
YOLOv7改进 | 更换主干网络之PP-LCNet
前言:Hello大家好,我是小哥谈。PP-LCNet是一个由百度团队针对Intel-CPU端加速而设计的轻量高性能网络。它是一种基于MKLDNN加速策略的轻量级卷积神经网络,适用于多任务,并具有提高模型准确率的方法。与之前预测速度相近的模型相比,PP-LCNet具有更高的准确性。此外,对于计…...
MySQL基础-----多表查询之子查询
目录 前言 子查询概述 1.概念 2.分类 一、标量子查询 二、列子查询 三、行子查询 四、表子查询 前言 上一期我们讲了内外连接查询以及自连接查询,那么本期我们就学习多表查询的子查询。本期会详细讲解什么是子查询,以及子查询的相关功能…...
nginx应用场景(附配置)
场景1:web服务器 server {listen 80;server_name example.com; # 替换为您的域名location / {root /data/wwwroot;index index.html index.htm;} }server {listen 443 ssl;server_name example.com; # 替换为您的域名ssl_certificate /path/to/certificate.crt;ssl…...
tvm android_rpc_test.py执行报错解决
执行 python3 tests/android_rpc_test.py 报错: Run CPU test ... Traceback (most recent call last): File "tests/android_rpc_test.py", line 129, in <module> test_rpc_module() File "tests/android_rpc_test.py", line …...
十、项目沟通管理
十、项目沟通管理 从马斯洛需求的各个层级上,都需要沟通的介入。如果缺乏沟通,甚至可能严重损伤身心健康。 沟通渠道 1、 规划沟通管理 规划沟通管理是基于每个相关方或相关方群体的信息需求、可用的组织资产,以及具体项目的需求&#x…...
SQL设计时增加说明列
后关闭sql Studio,然后打开注册表,注册表地址: 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\SQL Server Management Studio\18.0_IsoShell\DataProject 如有版本不同,红色内容有所变化,修改内容如下: SSVPropViewColumnsSQL70,SSVPropViewColumnsSQL80 全修改为 1,2,6,7…...
前端提高性能——使用Intersection Observer API对图片视频进行懒加载
前言 最近做了一个项目是类似于商城的,需要放很多图片,在用户选择一页五十条时,页面加载速度会比较慢。为了提高性能,选择用Intersection Observer API 实现图片懒加载。 实现步骤 一、html代码: <img class&qu…...
杂七杂八111
MQ 用处 一、异步。可提高性能和吞吐量 二、解耦 三、削峰 四、可靠。常用消息队列可以保证消息不丢失、不重复消费、消息顺序、消息幂等 选型 一Kafak:吞吐量最大,性能最好,集群高可用。缺点:会丢数据,功能较单一。 二Ra…...
微信小程序(一)
WebView app.是全局配置,app.json是全局配置文件,在页面的.json配置文件中的配置会覆盖我们全局的配置 快捷键: .box 敲回车 ----- <view class"box"></view> .row*8 敲回车: .row{$}*8 敲回车 案例1&…...
【DL经典回顾】激活函数大汇总(十二)(GLU ReGLU附代码和详细公式)
激活函数大汇总(十二)(GLU & ReGLU附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里,激活函数扮演着不可或…...
【C++】string类初步介绍
个人主页 : zxctscl 如有转载请先通知 文章目录 1. 为什么学习string类1.1 C语言中的字符串1.2 推荐学习网站 2. 标准库中的string类2.1 string类2.2 string类的常用接口说明2.2.1 constructor2.2.2 遍历string2.2.2.1 下标加[]遍历2.2.2.2 迭代器(itera…...
HCIP --- BGP 综合实验
目录 实验拓扑图: 实验要求: 实验步骤: 1.划分IP地址 R1的配置 R2的配置 R3的配置 R4的配置 R5的配置 R6的配置 R7的配置 R8的配置 2.检测查询IP地址 3.OSPF 建邻 4.查询OSPF 建邻是否成功 5.AS 2 内部BGP 建邻 a. AS 2 内部 IBG…...
【优选算法】专题1 -- 双指针 -- 移动零
前言: 📚为了提高算法思维,我会时常更新这个优选算法的系列,这个专题是关于双指针的练习 🎯个人主页:Dream_Chaser~-CSDN博客 一.移动零(easy) 描述: 「数组分两块」是⾮…...
【计算机视觉】二、图像形成:2、几何基元和几何变换:2D变换
文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)1. 各种变换的关系2. 变换公式3. 2D变换的层次4. python实现 一、向量和矩阵的基本运算 【计算机视觉】二、图像形成:1、向量和矩阵…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
