Java Web停车场系统:毕设级可运行项目解析与改造指南
简介本资源是一套完整的Java Web停车场管理系统毕业设计项目面向计算机专业本科生及Java初学者解决校园或中小型商业场景下车位管理、车主信息登记与停车流程数字化等实际问题。压缩包共含源码、数据库脚本、开题报告论文文档及操作视频说明整体116.2MB文件类型涵盖Java工程源码含SpringMVC/Servlet结构、MySQL建表与初始化SQL、Word格式开题报告、MP4功能演示视频等覆盖开发、部署、文档与验证全链路。已有124人学习下载适合课程设计实践、毕设参考或Web后台开发能力进阶训练。读者可直接导入IDE运行系统通过视频快速掌握各模块操作逻辑结合开题报告理解设计思路与技术选型依据并基于完整数据库结构开展二次开发或功能扩展。1. 这不是个“能跑就行”的毕设Demo一个Web停车场系统真正在校门口小停车场里顶了三个月班去年帮某高校信息学院的A同学调试这个系统时我原以为就是个带CRUD界面的Java Web练手项目——结果它被部署在校门口那个只有23个车位、没装车牌识别硬件、全靠保安手输IC卡号的小型停车场里连续撑了三个月。每天早八点到晚十点固定车主刷IC卡自动分配长期车位临时车进场扫码登记、离场按停留时长计费、打印小票管理员在后台实时看到空位分布图、超时未缴费提醒、甚至能导出Excel做月度停车报表。它没用Spring Boot自动装配黑魔法没上Redis缓存连前端都还是JSPjQuery老组合但胜在结构清晰、SQL可读性强、每个模块增删改查逻辑都封装成独立Service方法数据库字段命名直白car_no、park_in_time、is_fixed连毕业答辩老师翻源码都点头说“看得懂”。如果你正卡在毕设选题、想找个功能完整、代码干净、能真跑起来、还能改出新东西的Java Web项目这个就是你该下载解压的第一个zip包。2. 技术栈与工程结构从MVC分层到数据库ER图一帧一帧拆给你看这个项目不是靠IDE自动生成的骨架而是典型的手工MVC三层落地src/下是Java源码WebContent/放JSP和静态资源WEB-INF/web.xml配Servlet映射lib/里塞着最精简的依赖——没有Maven全是jar包手动管理。我把它重构成标准目录后核心结构如下parking-system/ ├── src/ │ ├── com.parking.dao/ # 数据访问层每个模块对应一个DAO接口实现类 │ │ ├── UserDao.java │ │ ├── UserDaoImpl.java # JDBC直连没用MyBatisSQL写在方法里 │ │ ├── ParkingSpaceDao.java │ │ └── ... │ ├── com.parking.service/ # 业务逻辑层含事务控制try-catchconn.rollback │ │ ├── UserService.java │ │ ├── UserServiceImpl.java │ │ ├── ParkingRecordService.java │ │ └── ... │ ├── com.parking.servlet/ # 控制层每个功能页一个ServletdoPost处理表单 │ │ ├── LoginServlet.java │ │ ├── AddUserServlet.java │ │ ├── QueryParkingRecordServlet.java │ │ └── ... │ └── com.parking.entity/ # 实体类纯POJO字段名与数据库表列名严格一致 │ ├── User.java │ ├── ParkingSpace.java │ ├── IcCard.java │ └── ParkingRecord.java # 关键实体含in_time/out_time/fee/status等字段 ├── WebContent/ │ ├── index.jsp # 登录页 │ ├── admin/ # 管理员主界面含左侧菜单栏右侧iframe内容区 │ │ ├── userManage.jsp │ │ ├── spaceManage.jsp │ │ ├── fixedCarManage.jsp │ │ └── tempCarManage.jsp # 临时车管理页含“打印”按钮触发printTempRecord.jsp │ ├── common/ │ │ ├── header.jsp # 公共页头含欢迎语、修改密码链接 │ │ └── footer.jsp │ └── js/ │ ├── common.js # 封装了日期格式化、表单校验如车牌号正则^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$ │ └── tempCar.js # 临时车专用JS点击“进场”自动填入当前时间“离场”计算费用 ├── WEB-INF/ │ └── web.xml # Servlet注册/admin/userManage → UserManageServlet ├── lib/ │ ├── mysql-connector-java-5.1.47.jar # JDBC驱动注意5.1.x版本别换8.0 │ ├── servlet-api.jar │ └── jsp-api.jar └── db/ # 数据库脚本 ├── parking_system.sql # 建库建表初始数据含admin用户、20个默认车位、5张IC卡 └── README.md # 写明字符集utf8mb4排序规则utf8mb4_unicode_ci提示所有DAO实现类都用JDBCUtils.getConnection()获取连接该工具类在src/com/parking/utils/JDBCUtils.java中硬编码了数据库URL、用户名、密码——这是毕设常见做法但上线前必须抽成配置文件。2.1 数据库设计6张表如何支撑6大模块ER关系图一眼看穿系统共6张核心表全部采用InnoDB引擎外键约束明确字段注释完整COMMENT 固定车主ID关联user表id。关键设计点如下表名主要字段关键约束模块归属t_userid,username,password,role_id,real_name,phonerole_id外键t_role.id系统信息管理用户/角色t_roleid,role_name,descriptionrole_name唯一管理员,普通用户系统信息管理角色t_parking_spaceid,space_no,status,typespace_no唯一A01,B12等车位信息管理t_ic_cardid,card_no,user_id,balance,statuscard_no唯一user_id外键t_user.idIC卡信息管理t_fixed_car_recordid,ic_card_id,in_time,out_time,fee,statusic_card_id外键t_ic_card.id固定车主停车管理t_temp_car_recordid,car_no,in_time,out_time,fee,operator_id,print_statusoperator_id外键t_user.id临时车辆信息管理ER关系要点t_fixed_car_record和t_temp_car_record是并列的两张记录表不继承避免复杂查询所有out_time和fee字段允许为NULL表示“尚未离场”状态由status字段控制0:未出场, 1:已出场, 2:已缴费t_temp_car_record.print_status是布尔字段0/1控制“打印”按钮是否置灰——这是真实业务需求一张小票只能打一次防止重复收费。2.2 核心Servlet链路以“临时车离场结算”为例走一遍完整请求流临时车离场流程是系统里最复杂的业务之一涉及时间计算、费用生成、状态更新、小票打印四步联动。我们以/admin/tempCarManage.jsp页面上的“离场”按钮为例追踪后端执行链路// 文件src/com/parking/servlet/OutTempCarServlet.java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String idStr request.getParameter(id); // 前端传来的record.id if (idStr null || idStr.trim().isEmpty()) { request.setAttribute(msg, 参数错误未传入记录ID); request.getRequestDispatcher(/admin/tempCarManage.jsp).forward(request, response); return; } int recordId Integer.parseInt(idStr); ParkingRecordService service new ParkingRecordServiceImpl(); boolean success service.updateOutTimeAndFee(recordId); // 关键更新out_time并计算fee if (success) { request.setAttribute(msg, 离场成功费用已生成); // 注意这里不直接跳转而是重定向回列表页防止F5刷新重复提交 response.sendRedirect(request.getContextPath() /admin/tempCarManage.jsp); } else { request.setAttribute(msg, 离场失败请检查网络或联系管理员); request.getRequestDispatcher(/admin/tempCarManage.jsp).forward(request, response); } }这个Servlet本身很薄真正的业务逻辑在ParkingRecordServiceImpl.updateOutTimeAndFee()中// 文件src/com/parking/service/impl/ParkingRecordServiceImpl.java public boolean updateOutTimeAndFee(int recordId) { Connection conn null; PreparedStatement ps null; try { conn JDBCUtils.getConnection(); conn.setAutoCommit(false); // 开启事务 // 步骤1查出该记录的in_time String selectSql SELECT in_time FROM t_temp_car_record WHERE id ?; ps conn.prepareStatement(selectSql); ps.setInt(1, recordId); ResultSet rs ps.executeQuery(); if (!rs.next()) return false; Timestamp inTime rs.getTimestamp(in_time); rs.close(); // 步骤2计算停留小时数向上取整 long diffMs System.currentTimeMillis() - inTime.getTime(); long hours (long) Math.ceil(diffMs / (1000.0 * 60 * 60)); // 向上取整到小时 // 步骤3按阶梯计费真实业务逻辑 double fee 0.0; if (hours 1) { fee 5.0; // 首小时5元 } else if (hours 4) { fee 5.0 (hours - 1) * 3.0; // 超过1小时每小时3元 } else { fee 5.0 3 * 3.0 (hours - 4) * 2.0; // 超过4小时每小时2元 } // 步骤4更新out_time和fee并设置status1已出场 String updateSql UPDATE t_temp_car_record SET out_time?, fee?, status? WHERE id?; ps conn.prepareStatement(updateSql); ps.setTimestamp(1, new Timestamp(System.currentTimeMillis())); ps.setDouble(2, fee); ps.setString(3, 1); ps.setInt(4, recordId); int rows ps.executeUpdate(); conn.commit(); return rows 0; } catch (Exception e) { e.printStackTrace(); try { if (conn ! null) conn.rollback(); } catch (SQLException ex) {} return false; } finally { JDBCUtils.close(null, ps, conn); } }参数说明与踩坑点Math.ceil(diffMs / (1000.0 * 60 * 60))必须用1000.0而非1000否则整数除法会截断导致hours永远为0阶梯计费逻辑写死在代码里这是毕设常见做法但也是二次开发第一改造点后面章节详述JDBCUtils.close()确保资源释放否则高并发下会快速耗尽数据库连接。3. 运行环境搭建从JDK8到Tomcat8三步配通不翻车这个项目对运行环境要求极低但恰恰因为“低”新手最容易在细节上栽跟头。我按自己实测过的步骤重写一遍跳过所有“应该没问题”的玄学环节。3.1 JDK与Tomcat版本锁定为什么必须是JDK8 Tomcat8项目web.xml中声明的是Servlet 3.0规范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_3_0.xsd version3.0而Tomcat 8.5才完全支持Servlet 3.0Tomcat 9则要求JDK8。但项目lib/里的servlet-api.jar是Tomcat 7时代的旧版若强行用Tomcat 9会因API不兼容报java.lang.NoSuchMethodError。因此唯一稳定组合是JDK 1.8.0_202 Apache Tomcat 8.5.94最新8.5.x版非9.x。提示不要用Eclipse自带的Tomcat插件它常偷偷替换web.xml版本号。务必下载独立Tomcat压缩包解压后在IDE中指向该目录。3.2 数据库初始化MySQL 5.7字符集与SQL脚本执行顺序项目db/parking_system.sql脚本需在MySQL 5.7环境下执行且必须先创建数据库再导入不能直接双击运行。原因脚本开头有CREATE DATABASE IF NOT EXISTS parking_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;但某些MySQL客户端如Navicat在执行时会忽略DEFAULT CHARACTER SET指令导致表创建后仍是latin1。正确操作流程启动MySQL服务用命令行登录mysql -u root -p手动创建数据库并指定字符集CREATE DATABASE parking_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE parking_system;退出MySQL用source命令执行SQL脚本避免客户端编码问题mysql -u root -p parking_system /path/to/parking_system.sql验证字符集SHOW CREATE TABLE t_user; -- 应看到 ENGINEInnoDB DEFAULT CHARSETutf8mb43.3 项目导入IDEA解决“找不到符号”和“JSP编译失败”两大血泪问题很多同学导入后报错Cannot resolve symbol com.parking.dao或JSP里% page importcom.parking.entity.User%标红。这不是代码问题是IDEA的模块配置缺失。完整配置步骤File → Project Structure → Modules选中项目点击号 →Import Module选择parking-system/根目录在Sources标签页将src/目录标记为Sources蓝色WebContent/标记为Resources绿色Dependencies标签页点击→JARs or directories依次添加parking-system/lib/mysql-connector-java-5.1.47.jarparking-system/lib/servlet-api.jarparking-system/lib/jsp-api.jar最关键一步Project Settings → Project → Project compiler output改为parking-system/out/production/parking-system不能用默认的outProject Settings → Modules → Web点击→Web Application Root路径选WebContent/Web Resource Directory也选WebContent/最后File → Settings → Languages Frameworks → Java EE → Web勾选JSP并设置JSP language level为JSP 2.2。提示如果JSP仍报错The method getJspApplicationContext(ServletContext) is undefined说明servlet-api.jar版本太低但本项目必须用它——此时只需在web.xml中把web-app的version从3.0降为2.5并删除metadata-completetrue属性即可兼容。4. 避坑指南6条真实踩过的坑省下你三天调试时间这个项目看着简单但每个模块都有隐藏雷区。以下是我和A同学在部署、测试、答辩前一周高频遇到的问题按“现象→原因→解决”整理拒绝模糊描述。4.1 现象登录成功后跳转到空白页地址栏显示/admin/index.jsp但页面无任何内容原因index.jsp里有一段jsp:include page/common/header.jsp/而header.jsp中引用了%session.getAttribute(username)%但LoginServlet中request.getSession().setAttribute(username, user.getUsername());写成了user而非username。解决打开src/com/parking/servlet/LoginServlet.java找到session.setAttribute(user, ...)这行改为session.setAttribute(username, ...)同时检查header.jsp中所有session.getAttribute(...)的key是否匹配。4.2 现象添加新用户时数据库t_user表插入成功但页面提示“添加失败”原因UserDaoImpl.addUser()方法中PreparedStatement的SQL语句为INSERT INTO t_user (username,password,role_id,real_name,phone) VALUES (?,?,?,?,?)但传参时ps.setString(3, user.getRoleId())传的是字符串1而t_user.role_id字段是INT类型MySQL 5.7严格模式下会报Data truncation异常但catch块里只打印日志没抛出导致return false。解决在UserDaoImpl.addUser()中将ps.setString(3, user.getRoleId())改为ps.setInt(3, Integer.parseInt(user.getRoleId()))同理检查所有DAO中setXxx()方法的参数类型是否与数据库字段一致。4.3 现象临时车“打印”按钮点击无反应浏览器控制台报ReferenceError: printTempRecord is not defined原因tempCarManage.jsp中调用onclickprintTempRecord(%record.getId()%)但printTempRecord()函数定义在/js/tempCar.js中而该JS文件未在页面中引入。解决在tempCarManage.jsp的head内添加script typetext/javascript src${pageContext.request.contextPath}/js/tempCar.js/script注意路径必须带${pageContext.request.contextPath}否则部署到非根路径会404。4.4 现象修改密码后再次登录提示“密码错误”但数据库中password字段值已变原因ChangePasswordServlet中新密码未加密直接存入数据库而LoginServlet验证时用了MD5加密比对。项目实际使用了MD5Util.getMD5(123456)生成密文但ChangePasswordServlet漏掉了这步。解决在ChangePasswordServlet.doPost()中获取新密码后立即加密String newPassword MD5Util.getMD5(request.getParameter(newPassword));再传给Service层。4.5 现象导出Excel功能点击后下载的文件打不开提示“文件损坏”原因ExportTempRecordServlet中response.setContentType(application/vnd.ms-excel;charsetutf-8);设置了charsetutf-8但Excel 2003格式.xls不支持UTF-8 BOM导致中文乱码并损坏文件头。解决去掉charsetutf-8改为response.setContentType(application/vnd.ms-excel);并在写入内容前加BOM头out.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF});。5. 二次开发实战从“能跑”到“能用”三个可落地的改造方向毕业设计答辩通过只是起点真正让项目从“课程作业”变成“可用系统”需要在三个关键点动手费用策略可配置、数据可视化补强、权限粒度细化。下面我以自己帮A同学做的真实改造为例给出可直接抄的代码和验证方法。5.1 改造一把硬编码的阶梯计费逻辑抽成数据库可配的费率表原始代码里updateOutTimeAndFee()方法中的if-else计费逻辑是毕设常见写法但业务方提需求时第一句就是“我们要调价”。与其每次改代码不如建一张t_fee_rule表-- 新增费率规则表 CREATE TABLE t_fee_rule ( id INT PRIMARY KEY AUTO_INCREMENT, rule_name VARCHAR(50) COMMENT 规则名称如“校内临时车”, min_hours INT COMMENT 最小计费小时数, max_hours INT COMMENT 最大计费小时数, fee_per_hour DECIMAL(5,2) COMMENT 每小时费用, base_fee DECIMAL(5,2) COMMENT 基础费用首小时, is_active TINYINT(1) DEFAULT 1 COMMENT 是否启用0否1是 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 插入默认规则首小时5元之后每小时3元无上限 INSERT INTO t_fee_rule (rule_name, min_hours, max_hours, fee_per_hour, base_fee) VALUES (校内临时车, 1, 1, 5.00, 5.00), (校内临时车, 2, 999, 3.00, 0.00);然后改造ParkingRecordServiceImpl用SQL动态查规则// 新增方法根据停留小时数查适用费率 private FeeRule getFeeRuleByHours(long hours) { String sql SELECT * FROM t_fee_rule WHERE ? min_hours AND (? max_hours OR max_hours 999) AND is_active 1 ORDER BY min_hours DESC LIMIT 1; Connection conn null; PreparedStatement ps null; ResultSet rs null; try { conn JDBCUtils.getConnection(); ps conn.prepareStatement(sql); ps.setLong(1, hours); ps.setLong(2, hours); rs ps.executeQuery(); if (rs.next()) { FeeRule rule new FeeRule(); rule.setId(rs.getInt(id)); rule.setBaseFee(rs.getBigDecimal(base_fee)); rule.setFeePerHour(rs.getBigDecimal(fee_per_hour)); return rule; } } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.close(rs, ps, conn); } return null; // 未匹配到规则返回null触发默认逻辑 } // 修改updateOutTimeAndFee()用新规则替代if-else public boolean updateOutTimeAndFee(int recordId) { // ... 前面查in_time逻辑不变 ... long hours (long) Math.ceil(diffMs / (1000.0 * 60 * 60)); FeeRule rule getFeeRuleByHours(hours); double fee 0.0; if (rule ! null rule.getBaseFee() ! null) { fee rule.getBaseFee().doubleValue(); if (hours 1) { long extraHours hours - 1; fee extraHours * rule.getFeePerHour().doubleValue(); } } else { // 兜底沿用原始阶梯逻辑 if (hours 1) fee 5.0; else if (hours 4) fee 5.0 (hours - 1) * 3.0; else fee 5.0 3 * 3.0 (hours - 4) * 2.0; } // ... 后续更新SQL不变 ... }验证方法在数据库中新增一条规则(校外访客, 1, 1, 10.00, 10.00)然后用临时车进场1小时后离场检查fee是否为10.00再进场2小时检查是否为10.0010.0020.00。5.2 改造二给管理员加一个实时车位热力图用ECharts画出来admin/index.jsp目前只有文字列表加个可视化图表能瞬间提升答辩印象分。我们用最轻量的ECharts 4CDN引入不打包!-- 在admin/index.jsp的body底部添加 -- div idspaceChart stylewidth: 100%; height: 400px;/div script srchttps://cdn.jsdelivr.net/npm/echarts4.9.0/dist/echarts.min.js/script script // 用AJAX拉取车位状态数据 fetch(${pageContext.request.contextPath}/admin/GetSpaceStatusServlet) .then(res res.json()) .then(data { const chartDom document.getElementById(spaceChart); const myChart echarts.init(chartDom); const option { title: { text: 当前车位占用情况 }, tooltip: {}, legend: { data: [空闲, 占用] }, xAxis: { data: data.spaceNos }, // [A01,A02,...] yAxis: {}, series: [{ name: 空闲, type: bar, data: data.freeCount, // [12, 8, ...] itemStyle: { color: #52c418 } }, { name: 占用, type: bar, data: data.occupiedCount, // [8, 12, ...] itemStyle: { color: #fa541c } }] }; myChart.setOption(option); }); /script后端GetSpaceStatusServlet只需查GROUP BY type, status// src/com/parking/servlet/GetSpaceStatusServlet.java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ParkingSpaceService service new ParkingSpaceServiceImpl(); ListSpaceStatus statusList service.getSpaceStatusGroupByType(); MapString, Object result new HashMap(); ListString spaceNos new ArrayList(); ListInteger freeCount new ArrayList(); ListInteger occupiedCount new ArrayList(); for (SpaceStatus s : statusList) { spaceNos.add(s.getSpaceType()); // A区,B区 freeCount.add(s.getFreeCount()); occupiedCount.add(s.getOccupiedCount()); } result.put(spaceNos, spaceNos); result.put(freeCount, freeCount); result.put(occupiedCount, occupiedCount); response.setContentType(application/json;charsetutf-8); response.getWriter().write(new ObjectMapper().writeValueAsString(result)); }效果管理员一进首页就看到A区/B区/C区各有多少空位柱状图颜色区分比纯数字直观十倍。5.3 改造三权限细化到“模块级”让普通用户只能看自己的记录原始系统只有管理员和普通用户两个角色但业务要求“固定车主只能查自己的停车记录不能看别人”。这需要改三处DAO层FixedCarRecordDaoImpl.findByUserId()增加WHERE ic_card_id IN (SELECT id FROM t_ic_card WHERE user_id ?)Service层FixedCarRecordServiceImpl.findByUserId()传入当前登录用户的userIdServlet层QueryFixedCarRecordServlet中从session.getAttribute(userId)取ID而非从前端传参。最关键的改造在QueryFixedCarRecordServlet// 原来int userId Integer.parseInt(request.getParameter(userId)); // 改为 HttpSession session request.getSession(); Integer currentUserId (Integer) session.getAttribute(userId); if (currentUserId null) { request.setAttribute(msg, 请先登录); request.getRequestDispatcher(/index.jsp).forward(request, response); return; } ListParkingRecord records service.findByUserId(currentUserId);验证方法用普通用户user001登录检查/admin/fixedCarManage.jsp列表是否只显示该用户IC卡的记录再用管理员账号登录应能看到全部记录管理员绕过此限制。从那以后我每次接手毕设项目都强制走一遍“三改验证”改一条数据库规则、加一个图表、细一粒权限。不是为了炫技而是确保代码离开答辩教室后真能在某个小场景里多活一天。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

YOLO26 ONNX后处理实战:从DFL解码到性能优化

YOLO26 ONNX后处理实战:从DFL解码到性能优化

做推理部署的工程师大概率都遇到过这个场景:模型在 PyTorch 里跑得挺正常,一导出 ONNX、换到 ONNX Runtime 或者端侧推理引擎之后,出来的结果就开始“群魔乱舞”——要么框的位置偏得离谱,要么置信度全是负数,要么直接…

2026/10/19 4:16:39 阅读更多 →
游戏盒登录协议安全加固实战:从逆向分析到三维风控

游戏盒登录协议安全加固实战:从逆向分析到三维风控

1. 为什么“游戏盒登录协议分析”不是技术炫技,而是产品安全的必修课“某游戏盒登录协议分析”这个标题乍看像是一份枯燥的技术文档,甚至可能被误读为某种灰色操作的前奏。但在我过去十年接触过的上百个泛娱乐类客户端项目中,登录协议的设计质…

2026/10/19 4:16:39 阅读更多 →
内容生命周期7个阶段:把灵感创作变成可持续的流程系统

内容生命周期7个阶段:把灵感创作变成可持续的流程系统

做内容最忌讳的一个动作,就是把每条作品都当成孤军奋战:灵感来了写一篇,写完发出去,数据不好就焦虑,数据好了也不知道为什么好,下一回又从头再来。说得不客气一点,这种搞法不是在做内容&#xf…

2026/10/19 4:16:39 阅读更多 →

最新新闻

存储型XSS后端防御:基于注解与Filter的全量清洗方案

存储型XSS后端防御:基于注解与Filter的全量清洗方案

先说一个我前阵子遇到的真实案例。我们某个管理后台的“个人备注”功能被人塞了一行<script>alert(document.cookie)</script>&#xff0c;当时没有造成实际损失&#xff0c;但这段代码在整个查询页面回显&#xff0c;同事一打开列表&#xff0c;浏览器直接弹窗。查…

2026/10/19 4:58:06 阅读更多 →
提示工程与Agentic AI实践:医疗随访效率翻倍的落地复盘

提示工程与Agentic AI实践:医疗随访效率翻倍的落地复盘

三个月前&#xff0c;我还真没想过&#xff0c;自己天天琢磨的提示工程和Agentic AI&#xff0c;最后会扎进医疗随访这个领域&#xff0c;而且效果会这么直接。项目结束时&#xff0c;随访中心的外呼效率翻了两倍多&#xff0c;不是吹出来的两倍&#xff0c;是拿后台数据和排班…

2026/10/19 4:58:06 阅读更多 →
CTF文件管理器安全攻防:从路径遍历到完整利用链

CTF文件管理器安全攻防:从路径遍历到完整利用链

1. 从一道经典题目看文件管理器的安全设计盲区"文件管理器"这个词&#xff0c;做Web安全的人看到它&#xff0c;脑子里第一反应大概率不是那种桌面端的资源管理器&#xff0c;而是一个跑在浏览器里的、能上传、能查看、能删除文件的小型Web应用。这类应用在各类CTF比…

2026/10/19 4:58:06 阅读更多 →
open-code-review:让代码评审自动化的开源工具与实践指南

open-code-review:让代码评审自动化的开源工具与实践指南

代码评审这件事&#xff0c;说起来人人都认同它重要&#xff0c;做起来却往往是最先被压缩的那一环。我在团队里呆得越久越发现&#xff0c;Code Review 能不能落地、落地后有没有效果&#xff0c;关键不在于大家的态度&#xff0c;而在于整个流程有没有被工具化、规则化。人总…

2026/10/19 4:58:06 阅读更多 →
《C++ 项目:手写大模型接入 SDK》Trae IDE 开发环境搭建与依赖管理

《C++ 项目:手写大模型接入 SDK》Trae IDE 开发环境搭建与依赖管理

&#x1f525;小叶-duck&#xff1a;个人主页 ❄️个人专栏&#xff1a;《Data-Structure-Learning》《C入门到进阶&自我学习过程记录》 《Linux系统从入门到实践》《Linux网络从入门到实践》 《Qt 方寸极境》 《MySQL》 ✨未择之路&#xff0c;不须回头 已择之路&#xf…

2026/10/19 4:58:06 阅读更多 →
eNSP中USG6000v虚拟防火墙Web界面打不开?从虚拟网卡到CLI配置全解决

eNSP中USG6000v虚拟防火墙Web界面打不开?从虚拟网卡到CLI配置全解决

折腾USG6000v虚拟防火墙的同学&#xff0c;十个里有八个都卡在同一个地方&#xff1a;设备在eNSP V390里启动得挺好&#xff0c;命令行也能进&#xff0c;就是Web管理界面死活打不开。剩下两个里面&#xff0c;有一个是打开了却只看到一片空白&#xff0c;另一个是浏览器直接甩…

2026/10/19 4:57:06 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介&#xff1a;本资源为电源技术方向的学术研究文档&#xff0c;聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略&#xff0c;面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集&#xff0c;共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →