尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
JavaWeb项目实战:基于Servlet+JSP+MySQL的校园论坛系统
简介这份PDF文档是一份完整的基于Java Web的校园论坛系统设计与实现毕业设计资料适合计算机相关专业学生、Java Web初学者以及需要参考SSH框架项目开发的工程师使用。资源仅有1个PDF文件压缩包大小约3.73MB文档排版规范、目录完整可按章节快速查阅。目前已有206人学习下载。内容以StrutsSpringHibernateSSH三大框架为核心介绍了B/S架构下校园论坛的完整开发流程包括系统概述与可行性分析、开发平台与相关技术介绍、系统需求分析、数据库表结构设计、系统详细设计等模块同时结合jQuery与CSSdiv布局实现前端交互覆盖用户注册、登录、发帖、回帖、搜索、私信等论坛核心功能并涉及Oracle数据库的使用。这份资料既能作为毕业设计论文的写作参考也能帮助开发者理解Java Web项目的分层架构与软件工程实践。1. 校园论坛为什么是 JavaWeb 项目里最值得手写的案例一个校园论坛系统表面上是围绕用户、帖子、回复的 CRUD 练习却是 JavaWeb 教学案例里性价比最高的训练场。登录注册要处理 Session发帖回帖要落 MySQL版块列表要写分页管理员删帖要控权限——这些场景没有哪一个能靠背 API 蒙混过去。不少工作了三五年的后端Spring Boot 用得很顺但被问到 Session 到底存在哪、JDBC 连接什么时候释放、事务边界应该画在哪一层反而答不上来。这正是 javaweb 项目完整案例的核心价值Servlet 容器把 HTTP 请求的每一环都摊开在眼前你写下的每一行代码都在跟协议和容器打交道。这篇博客以校园论坛为载体按我实际开发时会走的路径从环境配置、技术选型讲到数据建模、核心代码和线上排错适合正在做课程设计的学生也适合想补底层细节的从业者。2. 技术选型与分层架构Servlet JSP MySQL 的组合为什么合适2.1 选型取舍不用 Spring Boot 不代表技术落后写 javaweb 校园论坛最稳的组合是 Servlet 3.1 JSP 2.3 MySQL 5.7/8.0 Tomcat 9。IDE 选 IntelliJ IDEA 2026 创建 JavaWeb 项目时新建 Maven 工程再勾选 Web 骨架即可。这个组合里没有 Spring 全家桶请求直接命中我们自己写的 Servlet过滤、转发、重定向全是显式调用。有人问直接用 Spring Boot 行不行。行但这个项目会失去展示底层的机会。校园论坛本身只围绕 user、post、reply 三张核心表在转换成 Spring Boot 注解后业务代码量差别不大可 Spring Boot 帮你做了内嵌 Tomcat、依赖管理、自动装配初学者反而被一层黑盒挡住。以下是常见选型对照组件选型理由Web 容器Tomcat 9Servlet 3.1 规范的标准实现IDEA 集成度高MVC 框架Servlet JSP路由、请求解析全部显式便于讲清请求生命周期数据层JDBC 手写 DAO能看到 Connection 管理和 SQL 执行细节数据库MySQL 5.7/8.0索引、事务、字符集行为稳定教学资料多IDEIntelliJ IDEA 2026创建 JavaWeb 项目的向导完整调试 Tomcat 方便这套组合不是不能上生产。论坛系统日活几千的量级Servlet 加 MySQL 完全扛得住真正要关心的是连接池参数、索引设计和 SQL 写法而不是框架本身带来了什么。2.2 请求链路Servlet 到 DAO 的每一步都可见在 JavaWeb 项目里分层不是风格问题而是排错的基本前提。我推荐的划分是 Servlet控制层、Service业务层、DAO数据访问层、Entity实体层四层。请求进来Tomcat 根据 web.xml 或 WebServlet 注解找到 ServletServlet 只做三件事解析参数、调用 Service、把结果放 request 域后转发到 JSP。Service 层负责业务规则比如注册时检查用户名是否重复、发帖时给版块的 post_count 加一、回帖时更新帖子的 last_reply_at。这些规则写进 Servlet 也能跑但一旦出异常你分不清是参数解析出错还是业务逻辑出错。DAO 层只做单表 SQL并且每个方法的签名里显式传入 Connection把事务边界留在 Service而不是让每个 DAO 各自开事务。典型工程结构src ├── main │ ├── java │ │ └── com/example/forum │ │ ├── controller # Servlet只处理请求参数和转发 │ │ ├── service # 业务逻辑和事务边界 │ │ ├── dao # SQL 访问 │ │ ├── entity # 实体类 │ │ ├── filter # 编码、登录、管理员拦截 │ │ └── util # JDBCUtils 等 │ ├── resources │ │ └── db.properties # 数据库连接配置 │ └── webapp │ ├── WEB-INF │ │ ├── web.xml │ │ ├── jsp # 受保护的视图页面 │ │ └── lib │ └── static这里有个容易忽略的点JSP 页面放在 webapp/WEB-INF 内还是外。放外面浏览器能直接访问调试方便放里面则强制经过 Servlet 转发才能渲染。生产环境我把页面放 WEB-INF/jsp 下避免有人绕过登录校验直接拿到 JSP 源码。对应到代码里所有页面跳转都写成req.getRequestDispatcher(/WEB-INF/jsp/postList.jsp).forward(...)。2.3 IDEA 2026 创建 JavaWeb 项目的三个关键配置JavaWeb 环境配置 IDEA 时最容易出错的不是依赖下载而是运行配置。第一步New Project 选 Maven 骨架maven-archetype-webappGroupId 填com.exampleArtifactId 填forum。第二步在 Project Structure 的 Libraries 里把 MySQL JDBC 驱动加进去同时确认 Java 编译器级别是 1.8 或 11避免 Servlet 注解不生效。第三步Run Configuration 里选 Tomcat Server在 Deployment 标签页把 artifact 的 application context 填成/。context path 是个高频坑。如果配成/forum访问登录页就是http://localhost:8080/forum/login所有 JSP 里的静态资源引用都必须带ctx前缀。代码里可以统一用${pageContext.request.contextPath}/css/style.css或者干脆在 JSP 顶部用c:set声明一个basePath。以下是一份基础的 web.xml 编码和欢迎页配置filter filter-nameencoding/filter-name filter-classcom.example.forum.filter.EncodingFilter/filter-class init-param param-nameencoding/param-name param-valueUTF-8/param-value /init-param /filter filter-mapping filter-nameencoding/filter-name url-pattern/*/url-pattern /filter-mapping welcome-file-list welcome-fileindex.jsp/welcome-file /welcome-file-list/*会匹配所有请求包括静态图片和 JSP所以编码过滤器必须放过滤器链最前面。EncodingFilter 内部不要只调request.setCharacterEncoding还要处理响应编码response.setCharacterEncoding(UTF-8)并且要把 init-param 里的 encoding 值读出来设置而不是写死字符。如果响应乱码先看这里再看 JSP 页面顶部的pageEncoding是否一致。3. 数据库设计五张表与索引怎么定才扛得住常见查询3.1 实体关系模型论坛项目不需要过度设计校园论坛的核心实体就五个用户 User、版块 Category、帖子 Post、回复 Reply、通知 Notification。关系上一个用户可以发多个帖子一个帖子可以有多条回复帖子和版块是多对一。通知表和用户表关联记录有人回复你帖子这类事件。不要去加关注关系表和私信表。关注功能需要处理用户之间互删、列表分页、状态反转私信还要设计会话模型和已读未读工作量直接翻倍。论坛的核心价值在公开讨论区把帖子流和回帖流做顺就已经覆盖了绝大多数课程设计和校内场景。3.2 建表 DDL 与字段选型细节下面是核心表的建表语句统一 InnoDB 引擎、utf8mb4 字符集CREATE TABLE user ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(128) NOT NULL, nickname VARCHAR(50) DEFAULT , avatar_url VARCHAR(255) DEFAULT , role TINYINT DEFAULT 0 COMMENT 0 普通用户1 管理员, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; CREATE TABLE category ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, description VARCHAR(200) DEFAULT , post_count INT DEFAULT 0, sort_order INT DEFAULT 0 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; CREATE TABLE post ( id INT AUTO_INCREMENT PRIMARY KEY, category_id INT NOT NULL, user_id INT NOT NULL, title VARCHAR(200) NOT NULL, content TEXT NOT NULL, view_count INT DEFAULT 0, reply_count INT DEFAULT 0, last_reply_at DATETIME DEFAULT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_category_created (category_id, created_at), KEY idx_user_created (user_id, created_at), CONSTRAINT fk_post_category FOREIGN KEY (category_id) REFERENCES category(id), CONSTRAINT fk_post_user FOREIGN KEY (user_id) REFERENCES user(id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;回复表和通知表同样需要显式定义外键和索引CREATE TABLE reply ( id INT AUTO_INCREMENT PRIMARY KEY, post_id INT NOT NULL, user_id INT NOT NULL, content TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_post_created (post_id, created_at), CONSTRAINT fk_reply_post FOREIGN KEY (post_id) REFERENCES post(id), CONSTRAINT fk_reply_user FOREIGN KEY (user_id) REFERENCES user(id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; CREATE TABLE notification ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, from_user_id INT NOT NULL, content VARCHAR(200) NOT NULL, is_read TINYINT DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, KEY idx_user_read (user_id, is_read) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;几个设计细节值得展开。user 表的 role 用 TINYINT 而不是 VARCHAR判断管理员走整数比较避免字符串比较的隐式转换。post 表的 reply_count 和 category 表的 post_count 是冗余字段用空间换查询性能的常见做法代价是发帖和回帖时要多写两个 UPDATE。密码字段定成 VARCHAR(128)因为如果用 BCrypt 加密哈希串长度是 60MD5 是 32留出余量避免以后换加密方案要 ALTER TABLE。3.3 索引方案组合索引的顺序不能反论坛查询热点只有两类。首页版块列表按 sort_order 排序全表扫描即可category 表几十行数据不需要索引。帖子列表、帖子详情、个人发帖记录是重灾区这些查询都带了 where 条件和 order by正确的组合索引是性能关键。索引名组成字段服务的查询场景idx_category_created(category_id, created_at)版块内帖子列表按时间倒序idx_user_created(user_id, created_at)个人中心查看我的发帖idx_post_created(post_id, created_at)帖子详情页按时间正序取回复idx_user_read(user_id, is_read)通知列表同时筛已读/未读组合索引遵循最左前缀原则。idx_category_created里 category_id 放前面created_at 放后面这样 MySQL 能同时利用等值条件和排序。如果反过来写先按时间排序再过滤分类索引就退化了。还有一个容易踩的坑content 是 TEXT 类型不能建立前缀索引不要把 content 放进任何索引列。3.4 帖子列表的 N1 问题一次 JOIN 替代循环论坛项目最典型的性能问题不是慢 SQL而是 N1 查询。帖子列表页要显示作者昵称和版块名新手会先查帖子列表再在 for 循环里逐条查 user 表和 category 表数据量到几百条响应时间立刻翻倍。正确做法是一次性 JOIN 查出来在 4.2 节的代码里会完整展示。这里记住一个判断标准for 循环里出现 DAO 查询大概率就是 N1。遇到就改成 JOIN 或者用WHERE id IN (...)一次取回再在内存里组装。4. 核心功能实现登录、分页、事务与权限拦截4.1 登录与 SessiongetSession() 不传参暗藏一个坑登录流程的代码很直接从请求里取 username 和 password调 Service 验证成功以后把用户对象放进 session。但有两个细节我每次都会强调。第一getSession()不传参时如果 session 不存在容器会自动创建。所以它只能放在登录成功之后而不是放在 Servlet 入口处。否则攻击者访问任意一个请求就会被塞一个 Session 对象内存里堆积大量无用会话。第二登录成功以后不要用 forward要 sendRedirect。forward 地址栏不变刷新页面会重复提交登录请求表单里又没有 token 校验时会造成重复注册或重复登录。WebServlet(/login) public class LoginServlet extends HttpServlet { private UserService userService new UserServiceImpl(); Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username req.getParameter(username); String password req.getParameter(password); User user userService.login(username, password); if (user ! null) { HttpSession session req.getSession(); session.setAttribute(user, user); resp.sendRedirect(req.getContextPath() /post/list); } else { req.setAttribute(error, 用户名或密码错误); req.getRequestDispatcher(/WEB-INF/jsp/login.jsp).forward(req, resp); } } }这里req.getContextPath()会带上部署时的 context path保证重定向链接不依赖硬编码路径。如果项目部署在/下这个值是空字符串URL 就是/post/list如果部署在/forum下它会自动补上/forum。密码校验方面数据库里存的是加盐哈希不要用明文比对。最简单的方案是注册时生成随机 salt登录时按SELECT * FROM user WHERE username ? AND password MD5(CONCAT(?, salt))查SQL 里的?全部走 PreparedStatement 绑定防止注入。4.2 帖子分页LIMIT 用 PreparedStatement 绑定分页是论坛里最值得写完整的模块。前端传 page 和 pageSize后端返回当前页数据和总页数。常见的实现是 Service 层查两次一次 count 总数一次查当前页数据。public PageResultPostVO getPostPage(int categoryId, int page, int pageSize) { Connection conn null; try { conn JDBCUtils.getConnection(); int offset (page - 1) * pageSize; long total postDao.countByCategory(conn, categoryId); ListPostVO list postDao.selectPageByCategory(conn, categoryId, offset, pageSize); PageResultPostVO result new PageResult(); result.setList(list); result.setTotal(total); result.setPage(page); result.setPageSize(pageSize); result.setTotalPage((int) ((total pageSize - 1) / pageSize)); return result; } catch (SQLException e) { throw new RuntimeException(分页查询失败, e); } }分页核心 SQL 是这条 JOINString sql SELECT p.id, p.title, p.view_count, p.reply_count, u.nickname AS author_name, c.name AS category_name, p.created_at FROM post p JOIN user u ON p.user_id u.id JOIN category c ON p.category_id c.id WHERE p.category_id ? ORDER BY p.created_at DESC LIMIT ?, ?;这条语句一次拿到帖子、作者昵称、版块名三个数据完全避免了 N1。注意LIMIT ?, ?是可以参数绑定的我见过不少人误以为 LIMIT 后面必须拼接整数这其实是 MySQL PreparedStatement 支持的参数类型。分页条的总页数计算用(total pageSize - 1) / pageSize保证 total 恰好整除时不会多出一页。前端上一页、下一页按钮用 JSTL 的c:if判断当前页是否为 1 或 totalPage不要在 JSP 里写 scriptlet。4.3 回帖事务ThreadLocal 连接必须在过滤器里清理回帖操作涉及三个写动作插入 reply 记录、更新 post 表的 reply_count、更新 last_reply_at。任何一步失败都需要整体回滚否则会出现有回复内容但没有计数的情况。事务边界放在 Service 层不能放在 DAO 层。public void replyToPost(int postId, int userId, String content) { Connection conn null; try { conn JDBCUtils.getConnection(); conn.setAutoCommit(false); replyDao.insert(conn, postId, userId, content); postDao.increaseReplyCount(conn, postId); postDao.updateLastReplyTime(conn, postId); conn.commit(); } catch (SQLException e) { try { if (conn ! null) conn.rollback(); } catch (SQLException ex) { // 记录日志 } throw new RuntimeException(回帖失败, e); } finally { try { if (conn ! null) { conn.setAutoCommit(true); conn.close(); } JDBCUtils.remove(); } catch (SQLException e) { // 记录日志 } } }这个模式的辅助类是 JDBCUtils用 ThreadLocal 保证同一线程内共享同一个 Connectionpublic class JDBCUtils { private static final ThreadLocalConnection TL new ThreadLocal(); public static Connection getConnection() throws SQLException { Connection conn TL.get(); if (conn null || conn.isClosed()) { conn DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); TL.set(conn); } return conn; } public static void remove() { TL.remove(); } }ThreadLocal 保存的连接必须在请求结束时清除否则容器复用的线程会拿到上一个请求残留的连接出现连接状态错乱。最稳妥的方案是在过滤器里统一处理过滤器的 finally 块里关闭连接再调JDBCUtils.remove()。这样业务代码不用关心连接释放也不会漏关。回帖事务里 commit 和 rollback 的时机要明确commit 放在所有 DAO 调用成功之后rollback 放在 catch 里finally 里只做恢复 autoCommit 和关闭连接不要在 finally 里 commit。4.4 管理员功能URL 通配符拦截的边界管理员删帖、删回复、管理版块这些接口如果每个 Servlet 里复制粘贴一段登录校验迟早漏一个。正确做法是单独建一个 AdminFilter在 web.xml 里按 URL pattern 拦截filter filter-nameadminFilter/filter-name filter-classcom.example.forum.filter.AdminFilter/filter-class /filter filter-mapping filter-nameadminFilter/filter-name url-pattern/admin/*/url-pattern /filter-mapping/admin/*的含义是匹配所有以 /admin/ 开头的请求。AdminFilter 内部从 session 取当前用户判断 role 是否等于 1不是就重定向到登录页。这里有一个 Servlet 规范的通配符边界/admin/*不会匹配/admin这个没有斜杠的路径。如果管理相关有两个入口需要写两条 filter-mapping或者在路径设计时统一成/admin/前缀。业务代码里的管理员操作仍然建议在 Service 层再校验一次角色避免只靠 URL 拦截造成安全漏洞。5. 部署与排错从 IDEA 到独立 Tomcat 的最后一公里5.1 部署前必调的三个参数本地开发能跑通不代表放到服务器上没问题。从 IDEA 里跑 Tomcat 切换到独立 Tomcat 时我一般先检查三个参数。第一个是 Tomcat 的 server.xml 里的 Connector 配置maxParameterCount默认是 10000论坛发帖表单里的字段不多但如果有批量操作接口可能要放宽。第二个是禁用 Tomcat 默认的 8005 关闭端口避免公网环境被人直接发送 SHUTDOWN 指令。第三个是 JVM 内存参数在 catalina.sh 里设置。参数位置推荐值说明maxThreadsserver.xml Connector200控制并发请求线程数连接池不用过大acceptCountserver.xml Connector100等待队列长度防瞬间流量打崩session-timeoutweb.xml session-config60论坛用户写长帖场景时间短了会丢内容maxParameterCountserver.xml Connector10000防止参数数量超限报 400发布时打成 WAR 包是最省事的做法。IDEA 里 Maven 执行mvn clean package把生成的 forum.war 丢到 Tomcat 的 webapps 目录启动容器会自动解压。如果线上用了 Nginx 做静态资源转发注意 JSP 不能被 Nginx 直接处理必须把.jsp的请求回源到 Tomcat。5.2 编码与 sql_mode最常碰到的两类 500部署后最常见的报错有两类。一类是中文乱码或者插入数据库直接报错另一类是 SQL 执行到一半报字段问题。前者的根源通常是三级编码不一致JSP 的 pageEncoding、数据库连接 URL 的 characterEncoding、MySQL 表本身的字符集。连接 URL 里必须要写?useUnicodetruecharacterEncodingutf8mb4注意是 utf8mb4 而不是 UTF-8否则 emoji 存不进去。报错现象根因处理方式插入中文变???连接 URL 没指定字符集补characterEncodingutf8mb4emoji 报 UTF-8 无法存储表字符集是 utf8ALTER TABLE 改 utf8mb4Incorrect string value字段级别字符集不对修改列字符集sql_mode 报 ONLY_FULL_GROUP_BYMySQL 5.7 默认开启按业务调整 group by别直接关掉第二类问题是 DISTINCT 或 GROUP BY 查询在高版本 MySQL 上报Expression #1 of SELECT list is not in GROUP BY clause。这是 MySQL 5.7 默认开启ONLY_FULL_GROUP_BY导致的。正确的做法是改 SQL把 group by 需要的字段全部列全。为了兼容老代码去改全局 sql_mode 是下策会掩盖真实问题。5.3 启用 Tomcat 压缩一个见效最快的响应优化论坛页面的内容大多是 HTML 文本和 JSON文本压缩率很高。Tomcat 自带压缩开关不需要改代码配在 server.xml 的 Connector 上就行Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 compressionon compressionMinSize1024 compressableMimeTypetext/html,text/xml,text/css,text/plain,application/json,text/javascript/compression有三个取值off 关闭on 强制开启force 对任意大小都压缩。建议用 on 并配合compressionMinSize1024小于 1KB 的响应不压缩因为压缩本身有 CPU 开销。compressableMimeType要写全漏掉application/json会导致前端 Ajax 接口没有压缩效果。配好后用浏览器的开发者工具看响应头出现Content-Encoding: gzip就算生效。如果前面挂了 Nginx 做了 Gzip这层配不配都行但直接访问 Tomcat 端口调试时这层能帮你确认瓶颈不在应用代码本身。本文还有配套的精品资源点击获取
RELATED

相关推荐

PlcGateway 多品牌 PLC 通信,用 TaoToken 接入的 Codex 怎么排查?

PlcGateway 多品牌 PLC 通信,用 TaoToken 接入的 Codex 怎么排查?

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

📅 2026/9/19 0:21:41
Postman批量发送请求最佳实践:从数据驱动到CI集成全攻略

Postman批量发送请求最佳实践:从数据驱动到CI集成全攻略

直接用 Postman 发单个请求,是大多数接口调试场景里的日常操作。可一旦变成需要验证 50 个用户的订单状态、给 30 个不同参数的商品详情接口做回归、或者把一批线上数据拿回来重新造数,鼠标点到手酸不说,还特别容易漏掉中间某一条。这时候真正…

📅 2026/9/19 0:16:41
从古法编程到现代交付:自评模型与8-12周转行路线

从古法编程到现代交付:自评模型与8-12周转行路线

前两天在一个老同事群里,有人甩了张截图,配文是"2026年了还手写一整个CRUD,这不就是古法编程哥本人"。群里笑成一片,笑完之后有个人说了句实话:我们组今年新招的两个年轻人,一个人一周出的活比我…

📅 2026/9/19 0:16:41
MORE NEWS

更多资讯

📰

【大数据毕业设计】基于 Web 的班级与个人学业质量对比分析系统 智能化学业预警的学生质量分析 Web 可视化系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

📰

多机器人协同编队控制:领航-追随法Matlab实现与优化

1. 项目概述多机器人协同编队控制是当前机器人研究领域的热点方向之一。我在工业自动化项目中曾遇到这样一个需求:需要让6台AGV小车在狭窄仓库通道中保持菱形队形移动,同时要实时避让突然出现的工作人员。这个实际案例让我深刻认识到,可靠的编…

📰

IATF 16949五大核心代表职责与能力验证全解析

1. 为什么“IATF 16949核心职位”不是一张岗位清单,而是一套动态责任系统很多人第一次看到“IATF 16949核心职位”这个词,下意识就去翻标准条款,或者直接搜“IATF 16949 岗位职责模板”,结果下载了十几份Excel表格,填完…

📰

Harness 要生成 .claude/agents,Claude Code 的 Base URL 改到 TaoToken

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

📰

Keras回归实战:波士顿房价预测的标准化、Pipeline与网格搜索调参

简介:这是一份聚焦回归问题实战的深度学习案例教程PDF,面向已掌握Python基础、希望用Keras搭建神经网络处理连续值预测的初学者与算法爱好者。内容以波士顿房价数据集为主线,先讲清14个特征的含义与量纲差异,再演示用StandardScal…

📰

Trae 做 EXCEL 数据整合,模型通道改走 TaoToken 行不行?

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

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬