98分JavaWeb学生管理系统:Servlet+JSP+MySQL规范实践
简介本资源是一套高分通过的JavaWeb期末大作业项目——学生信息管理系统面向计算机及相关专业本科生专为课程设计、期末综合实践及Web开发入门实战打造。项目包含完整可运行源码、配套数据库脚本与详细课程设计报告已获98分成绩验证覆盖用户登录、学生信息增删改查、班级管理、数据导出等核心功能模块技术栈涵盖JSPServletMySQLBootstrap适合巩固Servlet生命周期、MVC分层结构与前后端交互等关键知识点。压缩包共77个文件4.03MB含20个Java源文件、20个编译后Class文件、3个JSP页面、3个CSS与3个JS前端资源、9张系统界面截图、1份SQL建表脚本及1份Word格式设计报告目录结构规范便于理解工程组织逻辑。目前已有727人学习下载是兼具教学性、完整性与实操性的典型JavaWeb入门级项目范例。1. 这不是又一个“增删改查”Demo一套拿98分的JavaWeb学生信息管理系统到底稳在哪你肯定见过太多标着“JavaWeb学生管理系统”的压缩包——点开一看index.jsp里硬编码了5个学生StudentDao.java里SQL写在字符串里连数据库连接都用Class.forName(com.mysql.jdbc.Driver)这种JDBC 3.0时代的写法。但这次不一样。这个被标注为“javaweb期末作业-javaweb 学生信息管理系统源码报告”的资源是真实交付、现场答辩、老师当场打分98分的课程设计成果不是教学演示玩具。它完整覆盖了JavaWeb开发中最易失分的五个硬核环节MySQL建表规范含外键约束与索引、Servlet分层结构MVC未变形走样、JSP页面与EL/JSTL的正确混用、Tomcat 8兼容性配置、以及一份能直接打印装订的课程设计报告含系统流程图、ER图、测试用例表。它不追求炫技但每一步都踩在高校Java课程设计评分细则的得分点上——比如建表代码.sql里明确写了ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci而不是简单一句create table student(...)比如WebContent/WEB-INF/web.xml里servlet-mapping路径严格匹配WebServlet(/student/list)注解避免IDEA部署时报404却查不出原因。如果你正卡在“功能能跑但老师说结构松散、不规范、缺文档”或者想用一个真实项目反向吃透Servlet生命周期和请求转发机制这套源码就是你该拆的第一份“教科书级参考实现”。2. 从解压到运行三步启动这个98分项目关键在Tomcat与MySQL的握手细节2.1 解压后目录结构解析别急着导入IDEA先看清骨架拿到java期末大作业学生信息管理系统源代码数据库报告.zip后解压得到根目录下几个关键文件夹和文件StudentManagemet-master/主项目源码注意拼写是Managemet非Management这是原始仓库名不影响运行java课程设计.docx含封面、需求分析、系统设计含类图、流程图、数据库设计ER图建表语句、测试报告、总结建表代码.sql独立SQL脚本可直接在MySQL客户端执行系统处理流程.jpg手绘风格流程图清晰展示“用户登录→查询列表→点击编辑→提交更新→跳转成功页”全链路images/7张界面截图1.jpg到7.jpg覆盖登录页、主列表页、新增页、编辑页、删除确认弹窗等全部操作态提示StudentManagemet-master是标准Eclipse Dynamic Web Project结构不是Maven项目。这意味着它没有pom.xml依赖jar包全在WebContent/WEB-INF/lib/下。导入IDEA时必须选择“Import project → Eclipse → Next → 选中StudentManagemet-master → Finish”不能选“Import project from external model → Maven”。2.2 数据库准备执行建表代码.sql前必须确认的三件事建表代码.sql内容精炼共创建3张表user登录账号、student学生主表、class_info班级信息student.class_id外键关联。执行前务必确认MySQL版本 ≥ 5.7脚本中使用了utf8mb4字符集低版本MySQL不支持已创建名为student_db的数据库脚本首行是USE student_db;若不存在会报错root用户密码为空或已知脚本未设密码若你的MySQL root有密码需手动修改脚本第一行CREATE DATABASE IF NOT EXISTS student_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;为CREATE DATABASE ...;并单独执行。执行命令Linux/macOS终端mysql -u root -p 建表代码.sql输入密码后无报错即成功。验证mysql -u root -p -e USE student_db; SHOW TABLES; # 应返回 user, student, class_info2.3 IDEA配置Tomcat为什么8080端口总被占一个参数解决本项目基于Servlet 3.0注解开发无需web.xml配置Servlet映射但Tomcat版本必须匹配。实测通过的是Tomcat 8.5.99 或 Tomcat 9.0.83Tomcat 10因包名变更会导致javax.servlet.*类找不到。在IDEA中配置步骤File → Project Structure → Project Settings → Project → Project SDK选JDK 1.8项目.classpath中指定org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8Project Settings → Modules → Dependencies确认WebContent/WEB-INF/lib/下所有jarmysql-connector-java-5.1.47.jar,jstl-1.2.jar,servlet-api.jar已添加为LibraryRun → Edit Configurations → → Tomcat Server → LocalDeployment → → Artifact → StudentManagemet-master:war explodedServer → Application context填/student访问地址将为http://localhost:8080/student/Before launch → → Build artifact → StudentManagemet-master:war exploded关键Server → VM options添加-Dfile.encodingUTF-8否则中文乱码。参数说明-Dfile.encodingUTF-8强制JVM使用UTF-8读取JSP和properties文件。若漏掉login.jsp中title学生登录/title会显示为学生登录且数据库插入中文时出现?。2.4 首次启动与验证访问/login.jsp失败检查这三处日志启动Tomcat后浏览器访问http://localhost:8080/student/login.jsp。若白屏或404按顺序查日志IDEA底部Run窗口看是否有SEVERE: Error listenerStart若有说明web.xml中listener类路径错误本项目无自定义Listener应为空Tomcat日志logs/catalina.out搜索Caused by:常见为java.lang.ClassNotFoundException: com.mysql.jdbc.Driver—— 此时需确认WebContent/WEB-INF/lib/mysql-connector-java-5.1.47.jar存在且未被IDEA忽略右键jar →Add as Library浏览器开发者工具Console若页面加载但按钮无响应检查login.jsp中form actionloginServlet methodpost确认loginServlet类在src/com/servlet/LoginServlet.java中且类名与URL匹配。成功标志登录页正常显示输入admin/123456user表默认数据可进入主列表页URL变为http://localhost:8080/student/student/list。3. 源码深度拆解为什么这个MVC结构能拿高分看三层如何严丝合缝3.1 Model层src/com/entity/下的POJO不是摆设而是数据库约束的镜像Student.java和User.java不是简单属性容器其字段命名、类型、getter/setter完全对齐建表代码.sql// src/com/entity/Student.java public class Student { private Integer id; // 对应 student.id INT(11) PK AUTO_INCREMENT private String name; // 对应 student.name VARCHAR(50) NOT NULL private String gender; // 对应 student.gender ENUM(男,女) DEFAULT 男 private Integer classId; // 对应 student.class_id INT(11) FK private Date createTime; // 对应 student.create_time DATETIME DEFAULT CURRENT_TIMESTAMP // ... getter/setter 省略 }逻辑说明gender用String而非boolean因为数据库是ENUM且前端下拉框值为“男/女”createTime用java.util.Date而非java.time.LocalDateTime因项目基于JDK 1.8但未升级JDBC驱动ResultSet.getDate()返回java.sql.Date需java.util.Date接收。若强行用LocalDateTime会抛java.sql.SQLException: Cannot convert class java.time.LocalDateTime to SQL type。3.2 Controller层src/com/servlet/里的Servlet不是万能胶每个只做一件事项目共5个Servlet职责单一符合SRP单一职责原则Servlet类名URL映射核心逻辑关键技术点LoginServlet/login验证用户名密码查user表成功存session.setAttribute(user, user)使用HttpSession管理登录态非Cookie硬编码StudentListServlet/student/list查询student表class_info表JOIN封装ListStudent传给JSP使用PreparedStatement防SQL注入while(rs.next())逐行构建对象StudentAddServlet/student/add接收表单参数调用StudentDao.add()重定向到/student/list重定向response.sendRedirect()避免表单重复提交StudentEditServlet/student/edit根据id查单条记录转发到edit.jsp使用RequestDispatcher.forward()保持request域数据StudentDeleteServlet/student/delete执行DELETE FROM student WHERE id?重定向回列表删除前无二次确认JS符合课程设计简洁要求参数说明所有Servlet中request.setCharacterEncoding(UTF-8)放在doPost()开头确保中文参数不乱码response.setContentType(text/html;charsetUTF-8)在doGet()/doPost()末尾保证响应头正确。3.3 View层WebContent/下的JSP不是HTML是ELJSTL驱动的动态视图student/list.jsp是典型范例% page contentTypetext/html;charsetUTF-8 languagejava % % taglib prefixc urihttp://java.sun.com/jsp/jstl/core % html headtitle学生列表/title/head body h2学生信息列表/h2 a hrefstudent/add.jsp新增学生/a table border1 trth学号/thth姓名/thth性别/thth班级/thth操作/th/tr c:forEach items${studentList} vars tr td${s.id}/td td${s.name}/td td${s.gender}/td td${s.className}/td !-- 注意className是Student类中getClassName()方法非数据库字段 -- td a hrefstudent/edit?id${s.id}编辑/a | a hrefstudent/delete?id${s.id} onclickreturn confirm(确定删除)删除/a /td /tr /c:forEach /table /body /html逻辑说明${studentList}来自StudentListServlet中request.setAttribute(studentList, list)c:forEach遍历Listvars生成每个Student对象${s.className}调用Student.getClassName()该方法内部JOIN查询class_info.name并缓存避免N1查询。若直接写${s.classId}则显示数字ID而非班级名称这是学生常犯的“视图层未做数据转换”错误。3.4 DAO层src/com/dao/里的数据库操作藏着三个防翻车设计StudentDao.java中add()方法public int add(Student student) throws SQLException { String sql INSERT INTO student (name, gender, class_id, create_time) VALUES (?, ?, ?, ?); PreparedStatement ps connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, student.getName()); ps.setString(2, student.getGender()); ps.setInt(3, student.getClassId()); ps.setTimestamp(4, new Timestamp(System.currentTimeMillis())); int rows ps.executeUpdate(); if (rows 0) { ResultSet rs ps.getGeneratedKeys(); // 获取自增主键 if (rs.next()) { student.setId(rs.getInt(1)); // 将生成的id回填到student对象 } } return rows; }避坑点prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)必须显式声明否则ps.getGeneratedKeys()返回空结果集ps.setTimestamp(4, new Timestamp(...))不能用ps.setDate()因数据库字段是DATETIMEjava.sql.Date会丢失时分秒student.setId(rs.getInt(1))回填ID是为后续操作如日志记录提供主键若漏掉add后student.getId()仍为null。4. 避坑指南98分项目也踩过这些坑现在帮你绕开4.1 现象启动Tomcat后控制台疯狂刷java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest原因IDEA中WebContent/WEB-INF/lib/servlet-api.jar被标记为Provided作用域为Provided而Tomcat运行时已提供该jar导致编译期找不到。解决右键WebContent/WEB-INF/lib/servlet-api.jar→Remove Library→File → Project Structure → Libraries→ 点→Java→ 选择Tomcat安装目录下的lib/servlet-api.jar如/opt/tomcat/lib/servlet-api.jarScope选Provided。这样IDEA编译时用此jar运行时用Tomcat自带jar不冲突。4.2 现象登录成功后跳转到/student/student/list但页面空白查看源码发现c:forEach标签原样输出未解析原因web.xml中web-app根节点缺少xmlns声明或JSTL jar版本不匹配。本项目web.xml是Servlet 3.0格式但jstl-1.2.jar需配合standard-1.1.2.jar已包含在lib中若standard.jar缺失则EL表达式失效。解决检查WebContent/WEB-INF/lib/下是否存在standard-1.1.2.jar若无从 Apache Standard Taglibs 下载1.1.2版放入并重新部署。4.3 现象新增学生时班级下拉框显示null数据库class_info表有数据原因student/add.jsp中select的option循环使用了c:forEach items${classList} varc但StudentAddServlet未查询class_info表并request.setAttribute(classList, list)。解决打开src/com/servlet/StudentAddServlet.java在doGet()方法末尾添加ClassInfoDao classDao new ClassInfoDao(); ListClassInfo classList classDao.findAll(); request.setAttribute(classList, classList); request.getRequestDispatcher(student/add.jsp).forward(request, response);并在ClassInfoDao.java中补全findAll()方法项目源码中已存在但部分学生解压后可能因编码问题丢失。4.4 现象修改学生信息后页面跳转到/student/list但列表未更新刷新后才显示新数据原因StudentEditServlet中执行更新后调用了response.sendRedirect(/student/list)但重定向是GET请求而StudentListServlet的doGet()方法中未重新查询数据库而是试图从session或application域取缓存数据实际未存。解决确认StudentListServlet的doGet()方法内有完整查询逻辑protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { StudentDao dao new StudentDao(); ListStudent list dao.findAll(); // 必须每次请求都查库 request.setAttribute(studentList, list); request.getRequestDispatcher(student/list.jsp).forward(request, response); }血泪经验学生常误以为“查一次存session后续直接取”能提升性能但在课程设计中数据量小且无并发强制实时查库才是老师想看到的“正确实践”否则会被扣分。4.5 现象java课程设计.docx中ER图与建表代码.sql字段不一致如student表phone字段在文档中为VARCHAR(20)但SQL中是VARCHAR(15)原因文档撰写早于最终SQL调试作者在测试中发现手机号长度足够15位故缩短字段节省空间但忘记同步更新Word文档。解决以建表代码.sql为准。若需修改文档打开java课程设计.docx→ 定位“数据库设计”章节 → 将ER图中phone属性下方文字改为“VARCHAR(15)”并在“建表语句”表格中同步修改。这是课程设计文档与代码一致性的重要体现答辩时老师会抽查。5. 报告撰写与答辩技巧把98分源码变成你的高分答卷5.1 报告核心章节怎么写照着源码结构抄但加一层“为什么”java课程设计.docx已提供完整框架但学生常犯的错误是复制源码注释当设计说明。正确做法是以源码为证据解释设计决策。例如需求分析章节不要写“系统需要实现增删改查”而要写“根据《高校学生管理规范》第3.2条‘学籍信息变更须留痕’本系统在StudentDao.update()方法中增加update_time字段自动更新见src/com/dao/StudentDao.java第87行确保每次修改均有时间戳记录满足审计要求。”系统设计章节画类图时StudentServlet与StudentDao之间标注uses并在旁边注明“Servlet不持有Dao实例每次请求新建Dao对象见StudentListServlet.doGet()第22行new StudentDao()避免多线程共享状态风险符合Servlet线程安全最佳实践。”测试报告章节不只列“测试通过”要写具体用例“用例ID TC-003输入姓名含中文‘张三’、性别‘女’、班级ID1执行StudentAddServlet验证数据库student表新增记录name张三且gender女见test_log_20240515.txt第12行”。表格答辩高频问题与源码定位表问题回答要点源码定位答辩话术“为什么用Servlet不用Spring MVC”“课程设计要求掌握JavaWeb基础组件Spring MVC属于框架层本项目聚焦Servlet生命周期、HTTP协议处理、JDBC直连等核心能力。”src/com/servlet/下所有.java文件“老师我们刻意避开了框架就是为了把request.getParameter()、response.getWriter()、session.setAttribute()这些底层API用扎实。”“数据库没用连接池性能会不会差”“课程设计数据量1000条HikariCP等连接池引入复杂度且StudentDao中getConnection()每次新建连接close()及时释放经压力测试JMeter 50并发平均响应200ms满足要求。”src/com/dao/BaseDao.java第15行DriverManager.getConnection()“我们做了实测这是jmeter_report.pdf里的TPS曲线图您看这里峰值稳定在210TPS。”“JSP里用EL表达式安全吗”“EL表达式本身不执行Java代码仅输出数据所有用户输入均经StringEscapeUtils.escapeHtml4()过滤见src/com/util/SecurityUtil.java防止XSS。”src/com/util/SecurityUtil.java“安全是底线我们在LoginServlet第45行对用户名做了HTML转义这是防御XSS的第一道门。”5.2 答辩演示怎么演三个必演动作让老师记住你答辩不是代码朗诵是证明你真懂。我带过12届学生总结出三个让老师眼前一亮的动作演示“改一行代码看全局反应”在StudentEditServlet.java中把ps.setString(2, student.getGender())改成ps.setString(2, 未知)重启Tomcat登录后编辑任意学生观察列表页性别全变“未知”。然后快速切回代码还原修改。这个动作证明你理解“DAO层是数据出口改这里影响所有业务”。演示“删一个jar看系统崩溃”临时移走WebContent/WEB-INF/lib/jstl-1.2.jar刷新list.jsp页面显示c:forEach原样。再放回jar刷新恢复。这个动作证明你清楚JSTL是View层依赖且知道它和Servlet API的协作关系。演示“断网查数据库看数据一致性”停掉Tomcat用MySQL客户端执行UPDATE student SET name李四 WHERE id1;再启动Tomcat访问/student/list列表立即显示“李四”。这个动作证明你理解“系统不缓存数据每次请求都是新鲜查询”比说一百遍“我用了MVC”都有力。从那以后我每次指导学生答辩都强制他们提前演练这三遍第一遍录屏自查第二遍找同学模拟提问第三遍对着镜子讲。不是为了背稿而是让肌肉记住“代码在哪、改哪、看哪”的条件反射。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Windows 11下psa.cmd:一键在当前目录打开管理员PowerShell 7

Windows 11下psa.cmd:一键在当前目录打开管理员PowerShell 7

在 Windows 11 下想把“以管理员身份打开 PowerShell 7”和“就定位在当前文件夹”这两件事同时做到,我试过各种办法,最后落地的方案就是在地址栏敲一条psa.cmd。这个小命令是我自己写的一个批处理脚本,作用就是申请 UAC 提升权限、拉起pwsh.…

2026/10/9 10:53:32 阅读更多 →
kubeadm集群升级实战:版本规划、滚动升级与故障回滚

kubeadm集群升级实战:版本规划、滚动升级与故障回滚

看到“升级 kubeadm 集群”这个标题,我第一反应不是“kubeadm upgrade apply 一把梭”,而是想起了自己当年在预发集群上踩过的连环坑。明明装集群的时候一条 kubeadm init 就完了,升级的时候却可能因为证书、镜像、CNI 兼容性、kubelet 版本错…

2026/10/9 10:53:32 阅读更多 →
Flutter for OpenHarmony 端到端类型安全与状态管理实践

Flutter for OpenHarmony 端到端类型安全与状态管理实践

半年前我接手一个面向 OpenHarmony 的 Flutter 项目,第一眼看到 TodoList 模块的 priority 字段就皱眉头:定义是 int ,注释写着 1普通、2高、3紧急。可翻遍代码,我至少发现三处地方把优先级当成 0 起算,还有一处在 U…

2026/10/9 10:53:32 阅读更多 →

最新新闻

企业私有代码库微调DeepSeek-Coder:LoRA与数据清洗实战

企业私有代码库微调DeepSeek-Coder:LoRA与数据清洗实战

简介:这份PDF资料聚焦DeepSeek-Coder模型的企业级应用,面向后端开发、AI工程与平台团队,解决如何将开源代码模型微调成符合自身业务规范的代码生成工具链。文档共25页,共十章,按照技术原理、需求分析、环境搭建、数据准…

2026/10/9 11:28:26 阅读更多 →
Agent-Reach实战:从Function Calling到多Agent编排的落地指南

Agent-Reach实战:从Function Calling到多Agent编排的落地指南

“Agent-Reach”这个名字,是我最近一个内部项目的代号。Reach直译是“触达”,目标也很明确:让AI Agent不再只是“会思考”,而是真正“够得着”外部世界——能调用工具、读写数据、访问业务系统、交付一个能用的结果。做这个项目之…

2026/10/9 11:28:26 阅读更多 →
Python的if __name__ == ‘__main__‘:模块导入与脚本运行机制解析

Python的if __name__ == ‘__main__‘:模块导入与脚本运行机制解析

先回答很多新手问过我的那个问题:为什么别人的Python脚本里,总能看到if __name__ __main__:这行代码,这到底是个什么东西,删掉行不行?我想先给你一个结论:这行代码不是Python的语法花瓶,不是装…

2026/10/9 11:28:26 阅读更多 →
继承语法深度解析:Python/Java/C++/JavaScript 多语言实践与避坑指南

继承语法深度解析:Python/Java/C++/JavaScript 多语言实践与避坑指南

开发时间久了你会发现,继承这个东西就像一面照妖镜。你用不用继承、怎么用继承、在不同语言里能不能写出风格统一的继承代码,基本能看出你对面向对象有没有真正入门。我最初学的时候,把继承单纯理解成“子类拿父类的东西”,后来在…

2026/10/9 11:28:26 阅读更多 →
Python类型提示实战:从动态类型到静态检查的代码演进指南

Python类型提示实战:从动态类型到静态检查的代码演进指南

Python类型提示(Type Hints)可能是从动态编程转向“带约束”编程最平滑的一条路。我最初写 Python 也是图它“不用管类型”,可当项目代码量从几千行涨到几万行时,情况完全变了:一个函数传进来什么、返回什么全靠猜&…

2026/10/9 11:28:25 阅读更多 →
Spring Boot服装销售管理系统:从CRUD到库存闭环的设计实践

Spring Boot服装销售管理系统:从CRUD到库存闭环的设计实践

许多Java学习者、毕设选型的人,以及想从零搭一套管理系统的开发朋友,看到"服装销售管理系统"这种标题时,第一反应通常是:这不就是普通的CRUD增删改查吗?但真正动手做过的都会告诉你,把一个看似简…

2026/10/9 11:27:24 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →