JavaEE网上评教系统:JSP+Servlet+MySQL毕业设计部署实战
简介面向JavaWeb学习者与课程设计者的网上评教系统项目基于JavaEE、JSP和MySQL构建完整的在线评价平台覆盖学生在线评教、教师信息管理、课程选择以及评教结果统计等典型功能可作为毕业设计或教学管理二次开发的参考蓝本。压缩包为RAR格式共651个文件约11.71MB包含101个JSP动态页面、391个GIF动图以及CSS样式、JavaScript脚本、HTML页面、SQL数据库脚本、Java源码、项目配置和部署说明等其中动态页面负责界面展示与前后端交互数据库脚本可直接建立评教所需的用户、课程、教师、评教结果等核心表结构目录规划清晰便于按模块对照学习。目前已有110人学习/下载。通过逐行阅读源码和运行调试可深入理解JavaEE分层架构、Servlet控制层、JDBC数据访问与MVC设计模式并掌握项目从需求分析、编码实现到测试部署的完整流程有助于快速提高基于JSPMySQL的Web应用开发能力。1. 为什么高校里还在传阅这版「基于JavaEE的网上评教系统」不是新技术但能完整跑通毕业设计做 Java 课程设计的人十个里有八个都被「基于JavaEE的网上评教系统」这个题目安排过。JSP 网站设计、MySQL 数据库设计听起来就是老一套——Servlet 做控制层、JSP 做视图层、JDBC 连 MySQL没有 Spring Boot更没有微服务。但这版项目在高校里被反复传阅的原因恰恰是它「老得够完整」学生在线登录、多维度评分、教师查看评教结果、管理员管理师生数据一条线全部打通。你拿到的压缩包里源代码、SQL 初始化脚本、部署说明都在缺的不是代码而是「怎么把它跑起来、讲清楚、答得上答辩」。这篇笔记就是冲这个来的帮你把这套 JSP Servlet MySQL 的老项目在一天之内变成你手上能演示、能讲原理、答辩能过关的东西。2. 拿到源码包先别急着导入 IDE先搞懂目录结构与环境搭配2.1 解压后的第一件事按「部署视角」而不是「阅读视角」过目录大多数人拿到 .rar 解压后第一反应是双击 .sql 文件或者把整个文件夹直接拖进 Eclipse。我不建议这么做。你先用资源管理器把目录结构完整看一遍心里画出一张「哪些文件是运行时必须的哪些文件只是源码参考」的图。典型的结构是这样OnlineEvaluation/ ├── src/ # Java 源码 │ ├── com/xxx/entity/ # 实体类Student, Teacher, Course, Evaluate │ ├── com/xxx/dao/ # JDBC 数据访问层 │ ├── com/xxx/servlet/ # 控制器 Servlet │ └── com/xxx/filter/ # 编码与登录过滤 ├── WebContent/ # Web 根目录或 webapp/取决于 IDE │ ├── jsp/ # 页面文件 │ ├── css/ js/ images/ # 静态资源 │ ├── WEB-INF/ │ │ ├── web.xml # 部署描述符 │ │ └── lib/ # 数据库驱动 JAR关键 │ └── index.jsp ├── database/ │ ├── init.sql # 建库建表脚本 │ └── data.sql # 初始化数据 └── README.txt # 部署说明大概率是复制粘贴的老文档这个项目的部署路径依赖比 Spring Boot 项目脆得多JSP 页面里写的绝对路径、Servlet 的 url-pattern、WEB-INF/lib 下的驱动 JAR三者只要有一个对不上整个系统就白屏报 404。所以你把目录过一遍后重点确认三件事lib目录里有没有 MySQL 驱动 JARweb.xml里 Servlet 映射是否完整init.sql和data.sql是否分开——这决定了你导入数据库时能不能先建空表再灌数据而不是一条脚本从头跑到尾中途报错。2.2 环境选型JDK 1.8 Tomcat 8.5 MySQL 5.7 是这套源码的最低摩擦组合这个项目写于 JSP 尚在流行的年代代码里可能用了java.sql.DriverManager直连也可能用了你自己后期接的数据源。无论哪种环境版本都会决定你第一个小时是「顺利启动」还是「陷入排错」。我一般会直接锁死这套组合组件推荐版本理由JDK1.88u202 或更早JSP/Servlet 老代码在 JDK 11 下容易出现 java.xml.bind 模块缺失等问题Tomcat8.5.x支持 Servlet 3.1和 JSP 2.3 匹配配置数据源语法最稳MySQL5.7与 mysql-connector-java 5.1.x 驱动配合最成熟避免 MySQL 8 的认证插件坑Eclipse IDEEclipse IDE for Enterprise Java自带 Tomcat 插件右键 Run on Server 就能跑比 IDEA 配 Web 工程省事注意如果你偏要用 MySQL 8.0那么驱动类名要从com.mysql.jdbc.Driver改成com.mysql.cj.jdbc.Driver连接 URL 还要追一个时区参数serverTimezoneAsia/Shanghai否则一启动就报时区异常。这不是源代码的问题是 MySQL 8 把 JDBC 驱动行为改掉了。我在模拟项目X里就吃过这个亏同一个.war包MySQL 5.7 上跑得好好的换到 8.0 就报CommunicationsException排查半天才发现是驱动版本和时区双重问题。第 2 章的实操结论先装 MySQL 5.7再装 JDK 1.8最后解压 Tomcat 8.5顺序不能乱导入源码前先把init.sql用文本编辑器打开扫一眼确认建库语句里没有你不认识的高版本语法比如utf8mb4_0900_ai_ci这种排序规则5.7 只认utf8mb4_general_ci。3. 数据库设计拆解评教系统背后的表结构、外键关系与初始化脚本3.1 核心表拆解学生、教师、课程、评教记录四件套网上评教系统的业务本质很简单「某个学生对某门课的某位教师打若干维度分数并留下评论且同一学生对同一教师同一课程只允许评一次」。理解了这句话你再看数据库设计就不会晕。标准且好讲的一套表结构如下-- 用户表学生和统一管理的登录账号合一 CREATE TABLE t_user ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20) NOT NULL UNIQUE, password VARCHAR(32) NOT NULL, role TINYINT NOT NULL DEFAULT 2 COMMENT 1管理员2学生3教师, real_name VARCHAR(20) NOT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8; -- 教师表 CREATE TABLE t_teacher ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT NOT NULL, dept_name VARCHAR(30) COMMENT 学院, title VARCHAR(20) COMMENT 职称, FOREIGN KEY (user_id) REFERENCES t_user(id) ) ENGINEInnoDB DEFAULT CHARSETutf8; -- 课程表 CREATE TABLE t_course ( id INT PRIMARY KEY AUTO_INCREMENT, course_name VARCHAR(50) NOT NULL, teacher_id INT NOT NULL, semester VARCHAR(20) COMMENT 如2023-2024-1, FOREIGN KEY (teacher_id) REFERENCES t_teacher(id) ) ENGINEInnoDB DEFAULT CHARSETutf8; -- 评教记录表 CREATE TABLE t_evaluate ( id INT PRIMARY KEY AUTO_INCREMENT, student_user_id INT NOT NULL, course_id INT NOT NULL, score_teaching TINYINT COMMENT 教学态度得分1-5, score_content TINYINT COMMENT 教学内容得分1-5, score_method TINYINT COMMENT 教学方法得分1-5, comment_text VARCHAR(500) COMMENT 主观评语, evaluate_time DATETIME, -- 注意MySQL 5.7 不写默认值也能插入 UNIQUE KEY uk_stu_course (student_user_id, course_id) ) ENGINEInnoDB DEFAULT CHARSETutf8;这里最关键的设计决策是uk_stu_course这个联合唯一索引。它直接从数据库层面保证了「一个学生对一门课只能评一次」就算你的 Servlet 逻辑写漏了判断数据库也会在第二次 insert 时抛 DuplicateKeyException 来兜底。这招在答辩时是一个加分点你可以主动说「防重复评教我做了两层业务层先查记录是否存在数据库层加唯一约束兜底」。另外一个值得注意的设计是FOREIGN KEY。这套老代码里外键约束往往写不写全很多版本为了图省事根本不建外键表与表之间的关联全靠程序里处理。我的建议是你保留外键但要做三处检查t_evaluate引用的student_user_id到底指向t_user还是t_student删除教师时课程要不要级联删除外键列的字符集必须和主键列一致否则建外键会报Cannot add foreign key constraint这样的错。3.2 初始化脚本的执行顺序与字符集这里有个 90% 的人都会踩的坑拿到init.sql和data.sql很多人是直接在 Navicat 里选中整个文件一键执行。对这套老项目来说建议按步骤来执行先建库再建表最后灌模拟数据。字符集很重要建库语句严格写成下面这样CREATE DATABASE IF NOT EXISTS online_eval DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE online_eval;为什么我坚持用utf8mb4而不是utf8因为 MySQL 的utf8是阉割版最多存 3 字节像 emoji 或生僻字一插入就直接报错或变成问号。评教系统里学生的评语是自由文本你不能赌没人会输个 emoji。用utf8mb4_general_ci做排序规则兼容性也最好。数据脚本执行失败还有一种很隐蔽的情况data.sql里有中文字符但你的 MySQL 服务端字符集是 latin1。执行前先查一下SHOW VARIABLES LIKE character_set_server;如果输出不是utf8mb4就在my.cnf或my.ini的[mysqld]段下加一行character_set_server utf8mb4然后重启 MySQL 服务。这一步不做哪怕建库时写了 DEFAULT CHARACTER SET数据表仍然可能继承服务端默认的 latin1到时候 JSP 页面上全是一排的问号你会以为代码逻辑有问题实际上是数据根本没存进去。第 3 章到这里你应该已经能回答「这套评教系统的数据从哪来、存在哪、怎么保证不重复」这三个问题了。接下来要处理的是核心链路学生登录、选题、打分、提交这一串动作在代码里是怎么流转的。4. 评教主流程代码走读从登录到提交评教一条 MVC 链路如何打通4.1 登录过滤器与权限控制JSP 项目里最容易被夸大的技术点老式 JSP 项目做权限控制很多人以为要写 Spring Security——其实课程设计项目里用 Filter 搞定就足够也更好讲。这套网上评教系统的标准做法是在web.xml里注册一个LoginFilter把/jsp/student/*、/jsp/teacher/*、/jsp/admin/*这些目录下的页面全部拦截重点就是校验 session 里的登录标记// LoginFilter.java —— 核心逻辑 public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request (HttpServletRequest) req; HttpServletResponse response (HttpServletResponse) resp; HttpSession session request.getSession(false); // 校验 session 中是否存在已登录用户 Object loginUser (session ! null) ? session.getAttribute(loginUser) : null; if (loginUser null) { // 未登录一律弹回登录页 response.sendRedirect(request.getContextPath() /login.jsp); return; } // 如果已经登录继续放行让后续 Servlet 处理业务 chain.doFilter(request, response); }这里有一个细节值得讲清楚request.getSession(false)里的false表示「如果当前请求没有 session就返回 null而不是新建一个」。很多翻车现场就是因为这里用了getSession()默认写法导致未登录请求每次都被创建出一个空 session过滤器判断永远不拦截。你可以把这条逻辑在答辩时说成「我先判断是否已有会话而不是无脑创建会话这可以避免无效的 session 堆积」。这个 Filter 在web.xml里的配置路径也要确认一遍url-pattern/jsp/*/url-pattern这种写法会把静态资源 css/js 也拦住有些版本里 jsp 页面引不到样式就是这原因。建议把静态资源单独放在/static/目录下过滤路径精确到/jsp/student/*这类业务目录这样登录页和静态资源不拦业务页面全拦逻辑又清楚又不出错。4.2 提交评教的核心 Servlet接收请求、嵌套校验、写入记录评教提交是整个系统里最值得「逐行读懂」的代码。教学态度、教学内容、教学方法这三项得分一般在页面上是 radio 或 select提交时以score_teaching、score_content、score_method参数名传到 Servlet。一个典型的提交 Servlet 是这样的// EvaluateSubmitServlet.java —— 防重 入库 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(UTF-8); // 必须在取参数前设置 HttpSession session request.getSession(false); User loginUser (User) session.getAttribute(loginUser); String courseIdStr request.getParameter(courseId); String scoreTeaching request.getParameter(score_teaching); String scoreContent request.getParameter(score_content); String scoreMethod request.getParameter(score_method); String commentText request.getParameter(comment_text); // 第一层校验参数非空 if (courseIdStr null || scoreTeaching null || scoreContent null || scoreMethod null) { request.setAttribute(msg, 评教数据不完整请重新选择); request.getRequestDispatcher(/jsp/student/evaluate.jsp).forward(request, response); return; } // 第二层校验防重复评教 EvaluateDAO dao new EvaluateDAO(); boolean alreadyEvaluated dao.checkExist( loginUser.getId(), Integer.parseInt(courseIdStr)); if (alreadyEvaluated) { request.setAttribute(msg, 该课程已经评教过不能重复提交); request.getRequestDispatcher(/jsp/student/evaluate_result.jsp).forward(request, response); return; } // 第三层写库 Evaluate ev new Evaluate(); ev.setStudentUserId(loginUser.getId()); ev.setCourseId(Integer.parseInt(courseIdStr)); ev.setScoreTeaching(Byte.parseByte(scoreTeaching)); ev.setScoreContent(Byte.parseByte(scoreContent)); ev.setScoreMethod(Byte.parseByte(scoreMethod)); ev.setCommentText(commentText); ev.setEvaluateTime(new Date()); dao.insert(ev); response.sendRedirect(request.getContextPath() /jsp/student/evaluate_result.jsp); }这段代码里有几个参数层面的坑提前帮你指出来。第一request.setCharacterEncoding(UTF-8)这一行必须在第一次调用getParameter()之前执行否则中文评语在你拿到时就已经是乱码了如果你项目里有编码过滤器那这一步可以省略但老版本的过滤器可能只拦截了部分 URL我建议直接在 Servlet 里写这句作为兜底。第二courseId从页面到 Servlet 是字符串转int时如果页面传空或传了非法字符会直接抛 NumberFormatException 导致 500你可以在Integer.parseInt()外包一层 try-catch但课程设计阶段至少要做到「空值跳过转换」这层防护。第三dao.insert()执行后应该返回主键 ID如果你拿到手的是老代码可能返回void或boolean这不影响功能但答辩时讲「插入成功数会影响我后续跳转逻辑」会更有说服力。4.3 教师端查看评教结果SQL 里的坑比 Java 里多教师登录后看到的是「自己教的每门课的平均分和评语列表」这是典型的分组聚合查询。有的版本把评教结果存在一张独立的统计表里管理端每天跑定时任务去刷新但课程设计项目一般不做定时任务而是实时汇总。核心 SQL 是这样SELECT c.course_name, ROUND(AVG(e.score_teaching), 2) AS avg_teaching, ROUND(AVG(e.score_content), 2) AS avg_content, ROUND(AVG(e.score_method), 2) AS avg_method, ROUND((AVG(e.score_teaching) AVG(e.score_content) AVG(e.score_method)) / 3, 2) AS avg_overall, COUNT(*) AS evaluate_count FROM t_evaluate e JOIN t_course c ON e.course_id c.id JOIN t_teacher t ON c.teacher_id t.id JOIN t_user u ON t.user_id u.id WHERE u.username ? GROUP BY c.id, c.course_name ORDER BY avg_overall DESC;这个 SQL 有两个地方很容易出问题。一是WHERE u.username ?这里教师表的user_id与t_user关联如果数据库脚本里没建外键你必须确保两边的类型一致比如都是 INT UNSIGNED否则关联条件不成立查出来永远是空表。二是ROUND(..., 2)保留两位小数但 JSP 页面上显示时经常用的是fmt:formatNumber如果avg_overall是字符串类型格式化时会报错。老项目里很多教师端页面是${result.avg_overall}直接输出这没问题但如果你看到avg_overall在 bean 属性里被定义为String一定要检查 DAO 层是不是用了String.valueOf(rs.getFloat())这类转换避免页面输出成null。第 4 章的核心收获是这条链路在代码上不复杂但它把 MVC 的三个角色体现得很完整——JSP 收集参数、Servlet 做流程控制、DAO 做数据持久化。把这三层的位置和职责讲清楚答辩时你就不会只说「系统能跑」而是能讲出「我理解三层架构为什么这么划分」。5. 部署与排错避坑Tomcat 配置、JDBC 连接与乱码问题的五段血泪经验5.1 经验一JDBC 直连与数据源连接池的取舍以及换版本后的连锁反应这套老代码相当一部分版本用的是DriverManager.getConnection(url, user, password)直连代码简单但也导致每个页面请求都会创建一次物理连接访问量稍大 MySQL 就报Too many connections。你要是只拿来做课设答辩通常并发量在个位数直连也能工作但如果想让它显得更正规把直连改成 Tomcat 的 JNDI 数据源是一个性价比很高的改动。在META-INF/context.xml里配置如下Context Resource namejdbc/OnlineEvalDS authContainer typejavax.sql.DataSource maxActive20 maxIdle5 maxWait10000 usernameroot password你的密码 driverClassNamecom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/online_eval?useUnicodetrueamp;characterEncodingUTF-8/ /Context然后 DAO 里取连接的方式从DriverManager.getConnection()改成Context ctx new InitialContext(); DataSource ds (DataSource) ctx.lookup(java:/comp/env/jdbc/OnlineEvalDS); Connection conn ds.getConnection();这个改动的关键在于URL 里characterEncodingUTF-8必须保留而且在 XML 里符号要转义成amp;否则 Tomcat 解析context.xml直接失败启动就报Parse Fatal Error——我见过有人在这上面卡了半小时原因只是 XML 转义没处理。5.2 经验二中文乱码是三方问题别只盯 JSP 页面网上评教系统是中文界面乱码是重灾区。乱码分三处页面显示乱码、请求参数乱码、数据库存储乱码三者往往同时爆发。依次检查页面显示乱码在 JSP 头部必须有这两行% page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8%请求参数乱码除了前面说的request.setCharacterEncoding(UTF-8)还要检查服务器端 Tomcat 的server.xml里 Connector 是否配置了URIEncodingUTF-8Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 URIEncodingUTF-8 /数据库存储乱码检查连接 URL 和表字符集。三处全部统一成 UTF-8 后乱码基本消除。有一个常见的玄学坑MySQL 的jdbc连接串里characterEncoding写成了charEncoding少一个acter连不上或直接忽略数据库照样能存但存进去是问号。5.3 经验三ClassNotFoundException 不一定是你少了 jar可能是驱动类名写错了报java.lang.ClassNotFoundException: com.mysql.jdbc.Driver时好多人第一反应是去下载驱动 jar。但对你这个项目来说先检查WEB-INF/lib下到底有没有驱动文件再检查驱动类名是不是匹配驱动版本。MySQL 8 的驱动类名已经改成com.mysql.cj.jdbc.Driver老 jar 配新 MySQL 服务端也可能在连接阶段报认证插件错误。我维护这类老项目时会把驱动 jar 统一放到本机 Maven 仓库的固定路径然后按 MySQL 版本选择MySQL 服务端版本驱动 jar 版本驱动类名5.5 / 5.6 / 5.7mysql-connector-java 5.1.47com.mysql.jdbc.Driver8.0mysql-connector-java 8.0.xcom.mysql.cj.jdbc.Driver每次部署都先确认「服务端版本 → 驱动jar → 驱动类名」三个环节对齐就能避开这个经典报错。5.4 经验四Tomcat 端口被占用不要盲目改 8080启动 Tomcat 时日志报Port 8080 required by Tomcat v8.5 Server at localhost is already in use这是最常见的启动失败场景。问题根源多半是上次 Tomcat 没有干净关闭或者本机其他进程占用了端口。我不建议直接改端口绕过正确顺序是先netstat -ano | findstr 8080找出占用进程的 PID再决定是杀掉还是重新规划端口。随便改成 8081 后你会发现原来的项目里所有绝对路径如果写死了端口全部失效页面全 404。5.5 经验五数据库连接超时导致偶发 500先查连接池不是先查代码系统跑着跑着偶尔刷一次页面变成 500日志里是Communications link failure或Connection is not available, request timed out。这种偶发性问题代码本身没有明显 bug玄学感很强。常见原因是 MySQL 的wait_timeout默认 8 小时断开空闲连接连接池里的连接成了死连接。课程设计阶段我给你的解决方法是改 JDBC 连接 URL 加两个参数jdbc:mysql://localhost:3306/online_eval?useUnicodetruecharacterEncodingUTF-8autoReconnecttruefailOverReadOnlyfalse如果改成 JNDI 数据源注意testOnBorrowtrue和validationQuerySELECT 1这两个池参数能有效避免拿到死连接。这不是什么高深技术但老项目里配置缺失是常态你补上这一手运行稳定性立刻上一个台阶。6. 进阶改造把课设从「能用」升级成「能讲」的三个关键动作拿到这套源码并让它跑通之后你手里的是「能演示的课程设计」。如果想在答辩或面试时让老师觉得「这个学生真理解这个项目」我建议你花一个下午做三件事而不是去重写整个架构。第一件事把散落在各 Servlet 里的response.sendRedirect(somepage.jsp)整理成统一的后端路径跳转。比如提交评教成功后跳转到/result/success这个路径由一个ResultServlet统一处理内部决定分配哪个 JSP。这一改动会让你的项目在「控制器统一管理视图跳转」这个点上讲出层次而不只是把 Servlet 当跳转工具用。第二件事自己写一个极简的 JSON 工具类替代某些 JSP 页面里用分隔符拼接数据的做法。老项目前后端不分离但你可以把教师端评教统计的 Servlet 改成先输出一段 JSON再由页面里的fetch去渲染数据。不需要引第三方的 fastjson十几行代码手动拼接 JSON 足够课程设计展示StringBuilder json new StringBuilder(); json.append({\avg_overall\:).append(avgOverall) .append(,\evaluate_count\:).append(count) .append(}); response.setContentType(application/json;charsetUTF-8); response.getWriter().write(json.toString());这段代码在讲「后端返回结构化数据、前端负责渲染」时非常拿得出手也证明你不只会写 JSP 脚本。第三件事给数据库补一个统计视图v_teacher_evaluation把第 4 章那个聚合 SQL 封装成视图然后让学生端的查询代码只SELECT * FROM v_teacher_evaluation WHERE teacher_id ?。这个小动作能讲清楚「复杂查询封装进视图、应用层只关心业务参数」的思想老师听到这通常会点头。从那以后我每次拿这类老 JSP 项目做演示都强制先跑一遍「环境版本对齐 → 数据库脚本按序执行 → 页面中文确认无乱码」这三板斧再来谈代码改造。这套习惯帮我避掉过太多环境层面的坑也让我在给模拟项目X做部署时不再手忙脚乱。希望这篇拆解能让你少走我走过的弯路把这套 JavaEE 老项目稳稳地变成你自己的作品。本文还有配套的精品资源点击获取

相关新闻

PHP自建短链系统:从跳转原理到部署避坑的完整指南

PHP自建短链系统:从跳转原理到部署避坑的完整指南

简介:黑色简洁的PHP短网址短链接生成源码,专为需要自建短链接服务的开发者或站点管理员设计,解决依赖第三方短链服务带来的稳定性与隐私问题,提供从创建短链、自定义后缀、密码保护到链接统计的完整方案。压缩包内共103个文件&…

2026/10/9 14:32:58 阅读更多 →
Agent-Reach:智能体触达外部系统的落地实践与架构解析

Agent-Reach:智能体触达外部系统的落地实践与架构解析

最近连续被同一个问题折腾了好几天:明明智能体(Agent)本身的推理能力已经调得不错了,可业务方跟我说“你的Agent根本没法用”,因为它连公司内部的订单系统都查不到,更别说替用户完成预约、查询库存这类实际…

2026/10/9 14:31:57 阅读更多 →
校园驿站管理系统毕设实战:Spring Boot+MyBatis-Plus从设计到部署

校园驿站管理系统毕设实战:Spring Boot+MyBatis-Plus从设计到部署

简介:这份资源是面向高校计算机专业学生的 Java 毕业设计与课程设计完整方案,基于 SSM 框架开发的校园驿站管理系统,适合需要完成期末大作业、毕业设计或想通过实战掌握 Java Web 开发的学习者。系统围绕快递驿站业务展开,管理员可…

2026/10/9 14:31:57 阅读更多 →

最新新闻

基于SSM+Flask的学籍管理系统设计与实战全解析

基于SSM+Flask的学籍管理系统设计与实战全解析

学了几年计算机,估计有七成同学都躲不过“学生信息管理系统”这道坎。你要是去问学长学姐,十个人里八个会告诉你当初熬夜改了多少Bug。不过说句公道话,这个题目是真练人,麻雀虽小五脏俱全,从数据库设计到前后端联调&am…

2026/10/10 20:36:21 阅读更多 →
从 Codex 搬家 WorkBuddy 一周:插件生态到底差在哪?

从 Codex 搬家 WorkBuddy 一周:插件生态到底差在哪?

从 Codex 搬家 WorkBuddy 一周:插件生态到底差在哪? 【免费下载链接】plugins OpenAI Plugins 项目地址: https://gitcode.com/GitHub_Trending/plugins123/plugins 把 Codex 当主力 Agent 用了大半年之后,我在 9 月中旬做了一个有点&…

2026/10/10 20:36:21 阅读更多 →
软考论文总挂科?先搭框架再填内容,系统架构师高分方法论

软考论文总挂科?先搭框架再填内容,系统架构师高分方法论

说实话,软考高级的论文这一科目,卡掉的考生远比上午题和案例题多。很多人上午题能拿五十多分,案例题也勉强过关,偏偏就挂在论文上——不是没项目经验,也不是完全不会写,而是根本没搞明白论文这科到底在考什…

2026/10/10 20:36:21 阅读更多 →
Unity 2021第三人称漫游:场景搭建、控制器与避坑指南

Unity 2021第三人称漫游:场景搭建、控制器与避坑指南

简介:这份资源是面向Unity初学者与在校学生的期末大作业级项目,基于Unity2021版本构建第三人称漫游场景,帮助读者掌握角色控制、场景搭建与UI交互等核心开发流程。包内共约2000个文件,以cs脚本、png贴图、fbx模型、prefab预制体、…

2026/10/10 20:36:21 阅读更多 →
Flash 对 Mimo、GLM:中文代码 Agent 场景的“性价比之王“实测横评

Flash 对 Mimo、GLM:中文代码 Agent 场景的“性价比之王“实测横评

Flash 对 Mimo、GLM:中文代码 Agent 场景的"性价比之王"实测横评 【免费下载链接】DeepSeek-V4-Flash-0731 项目地址: https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-V4-Flash-0731 2026 年 7 月 31 日,DeepSeek-V4-Flash …

2026/10/10 20:36:20 阅读更多 →
selective_search原理与参数调优:目标检测候选框生成实战

selective_search原理与参数调优:目标检测候选框生成实战

简介:选择性搜索(Selective Search)是目标检测中常用的候选区域生成算法,这套Python入门示例面向计算机视觉初学者、图像处理学习者以及准备接触RCNN系列检测模型的开发者。示例以超像素分割、区域合并、候选区域排序为技术主线&a…

2026/10/10 20:35:20 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

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/10 11:14:25 阅读更多 →
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/10 1:36:08 阅读更多 →
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/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23: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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →