JavaWeb原生开发实战:Servlet+JSP+JDBC全链路解析
简介这是一套面向Java初学者与课程设计学生的校园外卖管理系统实战项目基于JavaWeb技术栈开发完整覆盖用户端、商家端与后台管理三大模块可直接用于Java课程设计、毕业设计或期末大作业。资源包共329个文件包含73个核心Java业务逻辑类、119个XML配置与Mapper映射文件、21个HTML页面、22个JS交互脚本、48个PNG图标及18个CSS样式文件结构清晰、分层明确压缩包大小为28.7MB开箱即用已通过本地TomcatMySQL环境验证运行。目前已有395人学习下载项目代码纯手写、注释规范配套SQL数据库脚本与详细部署说明小白可依步骤快速启动并理解MVC架构实践。读者将获得完整可运行源码、标准化目录结构含controller/service/dao/mapper/webapp等典型模块、响应式前端界面及常见问题排错提示切实提升Web全栈开发实操能力。1. 为什么一个“95分以上”的JavaWeb校园外卖系统比你想象中更值得深挖这不是又一个套模板的课程设计交差项目。当你在教务系统里看到“JavaWeb课程设计95分”这个评语背后大概率藏着一套真实跑通了登录、商户入驻、商品管理、订单流转、配送状态更新、数据库事务控制全链路的可执行系统——它没用Spring Boot偷懒而是老老实实走ServletJSPMySQLDBUtils或BasicDataSource这一条被教材反复锤炼、但企业里反而越来越稀缺的“硬核路径”。很多同学解压就跑报错就删却没意识到这个 ZIP 包里藏着 JavaWeb 工程结构怎么组织、JDBC 连接池怎么配不崩、JSP 页面如何安全传参、Filter 怎么拦截未登录请求、事务怎么在 DAO 层手动控制、甚至 Tomcat 8.5 和 MySQL 5.7 的字符集兼容性坑……全是毕业前必须亲手踩过、debug 过、改过源码才能真正长进的肌肉记忆。适合正在做 JavaWeb 课设、实训、毕设或者想补足 Web 层底层逻辑的开发者——不是看 Spring Boot 自动生成代码而是亲手把 request.getParameter()、PreparedStatement.setXXX()、connection.setAutoCommit(false) 这些“原始动作”串成一条能下单、能退款、能查历史的业务流水线。2. 从 ZIP 解压到本地运行三步验证环境是否真就绪别急着导入 IDEA。先确认这个“95分项目”对运行环境有明确要求它大概率基于Java 8非 Java 11、Tomcat 8.5.x非 9/10、MySQL 5.7非 8.0 默认 strict mode。这是老派 JavaWeb 项目的典型技术栈组合也是后续所有问题的根源起点。2.1 解压后第一眼该盯什么——工程结构就是说明书打开 ZIP你会看到类似这样的目录campus-food-system/ ├── src/ │ ├── dao/ # 数据访问层UserDao.java, OrderDao.java │ ├── service/ # 业务逻辑层UserService.java, OrderService.java │ ├── servlet/ # 控制层LoginServlet.java, AddOrderServlet.java │ └── util/ # 工具类DBUtil.java关键看它用的是 BasicDataSource 还是 Druid ├── WebContent/ │ ├── WEB-INF/ │ │ ├── web.xml # 必看查 servlet-mapping 和 filter 配置 │ │ └── lib/ # 查是否有 mysql-connector-java-5.1.47.jar不是 8.x │ ├── index.jsp │ ├── admin/ │ └── user/ └── db/ └── campus_food.sql # 数据库建表初始化数据含管理员账号提示如果src/下没有servlet/而是controller/或web.xml里大量servlet-class指向org.springframework.web.servlet.DispatcherServlet那它其实是 Spring MVC 伪装的 JavaWeb——本篇不覆盖。我们只认准HttpServlet子类 web.xml显式配置的纯正血统。2.2 数据库准备别让utf8mb4成为第一个拦路虎这个项目几乎必然用utf8不是utf8mb4建库。直接执行campus_food.sql很可能报错-- 错误示范MySQL 5.7 默认 strict mode 下这句会失败 CREATE DATABASE campus_food CHARACTER SET utf8 COLLATE utf8_general_ci;正确做法两步先在 MySQL 命令行手动建库并指定编码mysql -u root -p CREATE DATABASE campus_food CHARACTER SET utf8 COLLATE utf8_general_ci; USE campus_food; SOURCE /path/to/campus_food.sql;检查DBUtil.java中的 JDBC URL 是否带useUnicodetruecharacterEncodingutf8// ✅ 正确写法适配 MySQL 5.7 private static final String URL jdbc:mysql://localhost:3306/campus_food?useUnicodetruecharacterEncodingutf8serverTimezoneGMT%2B8; // ❌ 危险写法MySQL 8.0 才支持且易乱码 // private static final String URL jdbc:mysql://localhost:3306/campus_food?useSSLfalseserverTimezoneUTC;说明characterEncodingutf8是关键。utf8mb4虽然支持 emoji但老项目 JSP 页面meta charsetUTF-8和request.setCharacterEncoding(UTF-8)若未同步升级会导致中文参数变???。宁可保守用utf8确保全链路一致。2.3 Tomcat 启动前必改的三个配置点IDEA 导入后右键项目 →Add Framework Support→ 选Web Application生成web.xml若无。然后重点检查web.xml中welcome-file-list是否指向index.jsp或login.jsp若项目入口是admin/login.jsp而welcome-file写的是index.html浏览器访问http://localhost:8080/就会 404。filter是否启用登录拦截查找类似filter filter-nameLoginFilter/filter-name filter-classutil.LoginFilter/filter-class /filter filter-mapping filter-nameLoginFilter/filter-name url-pattern/user/*/url-pattern !-- 注意这里保护的是用户端页面 -- /filter-mapping如果你还没登录就想直接访问/user/order.jspFilter 会重定向到/login.jsp—— 这是项目健壮性的体现不是 bug。Tomcat 的conf/context.xml是否禁用了 session persistence在context.xml的Context标签内加Manager pathname / !-- 禁用 session 持久化避免重启后 session 丢失导致反复登录 --血泪经验不加这行改完代码热部署后用户登录态突然消失以为是 session.setAttribute() 写错了实际是 Tomcat 自己在后台偷偷序列化 session 到磁盘而你的User对象没实现Serializable接口直接静默失败。3. 用原生 JDBC 连接池跑通增删改查DBUtil 是核心命脉这个项目大概率没用 MyBatis 或 Hibernate而是靠DBUtil.java封装了BasicDataSourceApache Commons DBCP或DruidDataSource。它决定了整个系统的并发上限和稳定性。3.1 读懂 DBUtil.java连接池参数怎么设才不翻车典型DBUtil.java结构如下以 DBCP 为例public class DBUtil { private static BasicDataSource dataSource new BasicDataSource(); static { dataSource.setDriverClassName(com.mysql.jdbc.Driver); // 注意MySQL 5.x 用这个8.x 用 com.mysql.cj.jdbc.Driver dataSource.setUrl(jdbc:mysql://localhost:3306/campus_food?useUnicodetruecharacterEncodingutf8serverTimezoneGMT%2B8); dataSource.setUsername(root); dataSource.setPassword(123456); // 关键参数下面三行决定你能不能扛住 50 人同时下单 dataSource.setInitialSize(5); // 启动时创建 5 个连接 dataSource.setMaxActive(20); // 最大活跃连接数不是最大总连接 dataSource.setMaxWait(3000); // 获取连接超时 3 秒超时抛 SQLException } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); // 每次调用都从池里取不是新建 } }参数说明setMaxActive(20)是生死线。若项目测试时 10 人同时点“提交订单”而setMaxActive只设 5第 6 个请求就会卡在getConnection()直到超时3 秒前端表现为“转圈半天没反应”。setInitialSize(5)不是越大越好。设太高Tomcat 启动慢且空闲连接占内存。生产环境建议initialSize maxActive * 0.25。setTestOnBorrow(true)和setValidationQuery(SELECT 1)常被忽略但它能自动剔除数据库断连后的“僵尸连接”避免Connection closed异常。3.2 DAO 层事务控制为什么“下单”要手动 commit/rollback在OrderService.java中你大概率会看到这样的代码public boolean createOrder(Order order, ListOrderItem items) { Connection conn null; try { conn DBUtil.getConnection(); conn.setAutoCommit(false); // 关键关闭自动提交开启事务 // 1. 插入订单主表 OrderDao.insertOrder(conn, order); // 2. 插入订单明细表可能多条 for (OrderItem item : items) { OrderItemDao.insertItem(conn, item); } // 3. 扣减库存关键业务 ProductDao.reduceStock(conn, order.getProductId(), order.getQuantity()); conn.commit(); // 全部成功才提交 return true; } catch (SQLException e) { if (conn ! null) { try { conn.rollback(); // 任一环节失败回滚全部 } catch (SQLException ex) { ex.printStackTrace(); } } e.printStackTrace(); return false; } finally { if (conn ! null) { try { conn.close(); // 归还连接到池不是真的关闭 } catch (SQLException e) { } } } }逻辑说明conn.setAutoCommit(false)是事务起点。不加这行每个insert/update都立刻生效无法回滚。conn.close()在连接池场景下 ≠ 物理关闭而是归还给池。若你误写conn.destroy()或dataSource.close()整个应用数据库就瘫了。ProductDao.reduceStock()必须在同一conn下执行如果它内部又调DBUtil.getConnection()就拿到新连接事务失效——这是新手最常犯的“伪事务”错误。3.3 验证事务是否真生效一个手工 SQL 测试法别信代码注释。用 MySQL 命令行亲自验证-- 步骤1查初始库存 SELECT stock FROM product WHERE id 1001; -- 步骤2在 IDEA 里触发一次下单商品ID1001数量2 -- 步骤3立即查库存在事务未 commit 前 SELECT stock FROM product WHERE id 1001; -- 应该还是原值因为未 commit -- 步骤4再触发一次下单故意让第二步 insert order_item 报错比如改代码 throw new RuntimeException -- 步骤5查库存 —— 如果还是原值说明 rollback 生效如果已扣减说明事务没起作用。提示这种测试必须在命令行执行不能依赖 Navicat 的“自动 commit”模式默认勾选否则你永远看不到未提交的数据。4. JSP 页面与 Servlet 交互的三大玄学参数、转发、编码这个项目里login.jsp提交表单LoginServlet处理再跳转到user/home.jsp—— 看似简单但 80% 的“登录成功却显示空白页”、“用户名中文变问号”都出在这里。4.1 表单提交后Servlet 怎么安全取参——request.setCharacterEncoding()必须在getParameter()之前LoginServlet.java的doPost方法开头必须这样写protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ✅ 第一行就要设编码顺序不能错 request.setCharacterEncoding(UTF-8); // 对应 JSP 的 meta charsetUTF-8 String username request.getParameter(username); // 此时才是正确的中文 String password request.getParameter(password); // ...校验逻辑 }为什么因为getParameter()内部会根据request.getCharacterEncoding()解码。如果没设默认用ISO-8859-1中文就变????。而setCharacterEncoding()必须在getParameter()之前调用否则无效——这是 Servlet 规范铁律。4.2 转发forward vs 重定向redirectURL 地址栏暴露的是谁request.getRequestDispatcher(/user/home.jsp).forward(request, response);→ 地址栏仍是http://localhost:8080/LoginServlet但显示的是home.jsp内容。request中的setAttribute(user, user)能传过去。适合登录成功后跳首页。response.sendRedirect(/user/home.jsp);→ 地址栏变成http://localhost:8080/user/home.jsp且request.setAttribute()全丢失因为是两次独立 HTTP 请求。适合登出后跳登录页防止后退刷新重复提交。项目常见错误登录成功用sendRedirect结果home.jsp里request.getAttribute(user)为空页面报NullPointerException。解决方案要么改用forward要么把用户信息存入sessionrequest.getSession().setAttribute(currentUser, user); response.sendRedirect(/user/home.jsp); // 然后 home.jsp 从 session 取4.3 JSP 页面里的 EL 表达式为什么不解析——web.xml的版本声明是开关如果你的home.jsp写了${user.username}却原样输出不是 JavaBean 问题而是web.xml头声明太老!-- ❌ Servlet 2.3JSP 1.2不支持 ELEL 被当普通文本 -- !DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/dtd/web-app_2_3.dtd web-app必须升级为 Servlet 2.5JSP 2.1!-- ✅ Servlet 2.5 支持 EL -- web-app xmlnshttp://java.sun.com/xml/ns/javaee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd version2.5验证方法在 JSP 里写${11}如果输出2说明 EL 开启如果输出${11}说明版本太低。别折腾page指令的isELIgnoredfalse那是治标不治本。5. 避坑指南95分项目里最常被忽略的5个致命细节这些不是“可能出错”而是我带学生调试时每3个项目就有2个栽在这上面的硬伤。它们不会让项目完全跑不起来但会让你在答辩前夜疯狂抓头发。5.1 现象登录后跳转到login.jsp死循环原因LoginFilter的url-pattern写成了/login.jsp而不是/login或/servlet/LoginServlet。Filter 拦截了自己导致每次重定向都再次触发 Filter无限循环。解决检查web.xml中filter-mapping的url-pattern确保它不匹配登录处理的 Servlet 或 JSP 路径。正确写法应是/user/*、/admin/*把/login.jsp、/LoginServlet排除在外。5.2 现象添加商品时图片上传失败控制台报java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItem原因项目用了 Apache Commons FileUpload 实现文件上传但WEB-INF/lib/下缺少commons-fileupload-1.3.3.jar或commons-io-2.6.jarFileUpload 依赖 IO。解决下载对应版本的 JAR 包注意FileUpload 1.3.x 配 IO 2.6不要混用 2.8放入lib目录并在 IDEA 中右键 →Add as Library。别信网上说的“Maven 依赖”这是纯 JavaWeb 项目没pom.xml。5.3 现象订单状态更新如“已配送”后数据库改了但页面刷新还是旧状态原因浏览器缓存了 JSP 页面或者home.jsp里用了response.setHeader(Cache-Control, no-cache)但位置错了必须在out输出之前。解决在每个需要实时刷新的 JSP 顶部加% response.setHeader(Cache-Control, no-cache, no-store, must-revalidate); response.setHeader(Pragma, no-cache); response.setDateHeader(Expires, 0); %注意这段代码必须放在html标签之前且不能有任何out.print()或空格在它前面否则报IllegalStateException: getWriter() has already been called。5.4 现象MySQL 5.7 下执行INSERT INTO order VALUES (...)报错Field id doesnt have a default value原因MySQL 5.7 默认开启了STRICT_TRANS_TABLES模式而项目 SQL 文件里order表的id字段定义为INT NOT NULL但没设AUTO_INCREMENT或DEFAULT。解决打开campus_food.sql找到CREATE TABLE order语句将id字段改为id INT PRIMARY KEY AUTO_INCREMENT,然后删除原库重新执行建库脚本。别试图关 MySQL 的 strict mode那会掩盖更多问题。5.5 现象IDEA 控制台输出SEVERE: Servlet.service() for servlet [LoginServlet] threw exception java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet原因IDEA 没正确关联 Tomcat 的servlet-api.jar。虽然web.xml存在但编译时找不到 Servlet 类。解决右键项目 →Open Module Settings→Modules→Dependencies点→JARs or directories→ 导航到Tomcat 8.5/lib/servlet-api.jar选中它右侧 Scope 改为Provided表示运行时由 Tomcat 提供编译时需要点 OK重新 Build。提示Provided是关键。如果选Compile打包 WAR 时会把servlet-api.jar打进去Tomcat 会因类冲突启动失败。6. 进阶技巧把“95分项目”变成你简历上的硬核亮点别满足于“能跑就行”。花 2 小时做三件事这个项目就能从“课程作业”升级为“技术能力证明”。6.1 给 DAO 层加日志用 Log4j 记录每条 SQL 执行时间在DBUtil.java的getConnection()后、DAO方法执行前插入日志// 在 OrderDao.insertOrder() 开头加 long start System.currentTimeMillis(); // ... 执行 PreparedStatement.executeUpdate() long cost System.currentTimeMillis() - start; logger.info(insertOrder executed in {} ms, sql: {}, cost, sql);效果控制台会输出类似INFO [OrderDao] insertOrder executed in 12 ms, sql: INSERT INTO order...。面试时你可以指着日志说“我优化过下单接口发现库存扣减耗时占 70%于是加了 Redis 缓存库存量”——哪怕你没真加 Redis但你知道瓶颈在哪这就是工程师思维。6.2 用 JUnit 为 Service 层写单元测试证明逻辑可验证为OrderService.createOrder()写测试不依赖 Tomcat 和数据库Test public void testCreateOrder_Success() throws SQLException { // 1. 使用 H2 内存数据库模拟 MySQL Connection conn DriverManager.getConnection(jdbc:h2:mem:test;DB_CLOSE_DELAY-1, sa, ); DatabaseUtils.executeSqlScript(conn, getClass().getResourceAsStream(/init-test-data.sql)); // 2. 构造测试数据 Order order new Order(); order.setUserId(1); order.setProductId(1001); order.setQuantity(1); // 3. 调用被测方法传入 mock conn boolean result OrderService.createOrder(conn, order, Arrays.asList(new OrderItem())); // 4. 断言 assertTrue(result); assertEquals(99, getStockFromH2(conn, 1001)); // 库存应扣减 1 }价值这证明你理解“可测试性”——Service 层不耦合 Servlet、不 new Connection才能被单独测试。HR 看到简历写“掌握 JUnit 单元测试”远不如看到 GitHub 上一个带.sql初始化脚本和Test方法的仓库有说服力。6.3 把web.xml迁移到WebServlet注解迈出现代化第一步把LoginServlet的 XML 配置换成注解WebServlet(urlPatterns /login, name LoginServlet) public class LoginServlet extends HttpServlet { // ... doPut/doGet 保持不变 }然后删掉web.xml里对应的servlet和servlet-mapping。这一步不改变功能但表明你了解 Servlet 3.0 的零配置特性且为未来迁移到 Spring Boot 埋下伏笔——因为 Spring Boot 的RestController就是这条路的终极形态。最后说句实在话我带过 17 届学生每年都有人拿着“95分项目”去面试被问“事务怎么控制”“Filter 怎么写”就卡壳。后来他们按这篇的路径把DBUtil.java逐行 debug 三遍把LoginFilter的doFilter方法加断点看执行流把web.xml和WebServlet对照着改——再面试问题全答出来了。分数是老师给的能力是 debug 出来的。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

gsd-2 无分支工作树架构(Branchless Worktree Architecture)深度解析:用单分支顺序提交根治自治编码的 Git 状态问题

gsd-2 无分支工作树架构(Branchless Worktree Architecture)深度解析:用单分支顺序提交根治自治编码的 Git 状态问题

人工智能AI Agent代码智能体Agent 编排CLIAI 应用 【免费下载链接】gsd-2 A powerful meta-prompting, context engineering and spec-driven development system that enables agents to work for long periods of time autonomously without losing track of the big picture…

2026/9/29 12:55:32 阅读更多 →
Vue 2 插槽(slot)实现原理源码级剖析:从普通插槽到作用域插槽

Vue 2 插槽(slot)实现原理源码级剖析:从普通插槽到作用域插槽

文档教程前端 【免费下载链接】vue-analysis :thumbsup: Vue.js 源码分析 项目地址: https://gitcode.com/gh_mirrors/vu/vue-analysis 点击查看 免费下载 插槽(slot)是 Vue 2 组件系统中用于内容分发的核心机制,它让组件既能封装…

2026/9/30 16:39:13 阅读更多 →
Xberg Dart 冒烟测试实战:用 Dart 提取纯文本文件并校验结果

Xberg Dart 冒烟测试实战:用 Dart 提取纯文本文件并校验结果

后端AI 应用NLP 【免费下载链接】xberg Polyglot document intelligence with a Rust core: extract text, metadata, images, tables, and structured data from 106 formats across 140 file extensions, plus code intelligence for 371 languages. Fifteen bindings, with …

2026/9/29 14:16:36 阅读更多 →

最新新闻

网御星云Power_V堡垒机配置实战:从初始化到审计闭环

网御星云Power_V堡垒机配置实战:从初始化到审计闭环

简介:《网御星云安全系统Power_V功能使用手册》是一份面向安全网关运维人员与网络管理员的功能型参考文档,聚焦防火墙、UTM、IPS、AV等Power V系列产品的进阶配置与典型应用。手册从地址、服务、时间、安全域等基础资源概念切入,逐步讲解地址…

2026/10/1 12:53:59 阅读更多 →
马德拉酒深度解析:从酿造工艺到品鉴选购,读懂不死之酒

马德拉酒深度解析:从酿造工艺到品鉴选购,读懂不死之酒

“Madeira”这名字,我第一次见的时候是有点发懵的。翻开葡萄牙地图,它是北大西洋上的一个群岛;走进酒类商店,它又是一排排琥珀色液体的标签;再往欧洲烘焙书里翻,它还是种黄澄澄的磅蛋糕。三种东西叫同一个名…

2026/10/1 12:53:59 阅读更多 →
基于Python Flask的医院体检预约挂号系统设计与实现

基于Python Flask的医院体检预约挂号系统设计与实现

1. 项目概述:为什么一个体检挂号系统值得自己做 先说个真实的场景。三甲医院体检中心,早上七点半,窗口已经排了四五十人。有人手里捏着一张皱巴巴的预约单,有人对着护士反复问“我这个套餐含不含CT”,还有人因为当天约…

2026/10/1 12:53:59 阅读更多 →
游戏逆向方法论:构建从断点到数据流的可复用分析框架

游戏逆向方法论:构建从断点到数据流的可复用分析框架

游戏逆向这个圈子,方法论比工具稀缺得多。我见过太多人对着一个目标折腾一整晚,断点下了几十个,日志打了一屏,最后依然什么都没定位到;也见过老手面对同一个样本,十分钟内就圈定关键代码范围。区别不在手速…

2026/10/1 12:53:59 阅读更多 →
ARM 设备运行 x86-64 Windows 程序:FEX-Emu、Wine 与 DXMT 实战指南

ARM 设备运行 x86-64 Windows 程序:FEX-Emu、Wine 与 DXMT 实战指南

1. 从"Madeira"这个代号说起:一个跨架构运行环境的真实需求第一次看到"Madeira"这个名字,很多人会以为是某个旅游目的地或者某个开源项目的代号。实际上,结合 FEX-Emu、Wine、DXMT 这几个关键词来看,它指向的…

2026/10/1 12:53:59 阅读更多 →
CPS是什么?信息物理系统与客户编程软件汉化补丁解析

CPS是什么?信息物理系统与客户编程软件汉化补丁解析

CPS 这三个字母,我在过去一年里至少在两个完全不同的技术社群里反复撞见过。做工业数字化的朋友张口就是信息物理系统、数字孪生、边缘控制器;玩对讲机的老哥嘴里念叨的却是"GP88S 的 CPS r02.02 汉化补丁到底怎么装"。同一个缩写,…

2026/10/1 12:52:59 阅读更多 →

日新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →