摘要: 学习进度3/12 所花时间:1小时 代码量(行):152 博客:4 原生 Java Web 基础(底层核心) Servlet 核心 (1)定义与作用 Servlet 是运行在服务器端的 Java 程序,是 Java Web 的核心组件,用于接收和处理客户端(浏览器)的 HTTP 请求,并返回响应。 阅读全文
posted @ 2026-03-13 22:09 muyuxiaxing 阅读(2) 评论(0) 推荐(0)
摘要: 所花时间:1小时 代码量(行):152 博客:4 Servlet 1. 处理 HTTP 请求的核心组件,继承 HttpServlet; 2. 核心方法:doGet()/doPost(); 3. 生命周期:init()→service()→destroy() Session/Cookie 1. Ses 阅读全文
posted @ 2026-03-12 21:11 muyuxiaxing 阅读(2) 评论(0) 推荐(0)
摘要: 所花时间:1小时 代码量(行):104 博客:2 4. 数据库操作(MyBatis) 接口 + @Mapper @Select 查询 @Insert 新增 @Update 修改 @Delete 删除 5. 登录核心(JWT) 登录成功 → 生成 token 前端保存 token,每次请求放在请求头 阅读全文
posted @ 2026-03-11 20:40 muyuxiaxing 阅读(2) 评论(0) 推荐(0)
摘要: 我是一名石家庄铁道大学计算机软件工程专业的学生,这是我这学期博客园记录学习的开始。我愿意坚持、肯花时间、做事踏实。我平时把学到的知识整理成笔记,遇到问题会一点点查资料、调试,直到弄明白为止。这种习惯不是天生的,而是从高中到大学,一点点练出来的:遇到不会的不逃避,遇到复杂的不急躁,我认同老师说的:写博 阅读全文
posted @ 2026-03-11 00:04 muyuxiaxing 阅读(2) 评论(0) 推荐(0)
摘要: 所花时间:1小时 代码量(行):125 博客:1 知识点:三层架构 Controller:接收请求、返回结果 Service:写业务逻辑、处理规则 Mapper/Dao:操作数据库 请求方式 @GetMapping:查询 @PostMapping:新增 / 提交 @PutMapping:修改 @De 阅读全文
posted @ 2026-03-10 21:57 muyuxiaxing 阅读(1) 评论(0) 推荐(0)
摘要: 优化 2:Token 刷新机制(避免频繁登录) 用户登录后生成访问 token(短期,2 小时) + 刷新 token(长期,7 天),访问 token 过期后,前端用刷新 token 获取新的访问 token,无需重新登录。 扩展 JwtUtil(支持生成刷新 token) java 运行 imp 阅读全文
posted @ 2026-03-01 12:59 muyuxiaxing 阅读(4) 评论(0) 推荐(0)
摘要: 企业级必备的优化点:BCrypt 密码加密(替代 MD5)、Token 刷新机制、前端整合 JWT 请求,同时完善全局异常处理,让整个登录体系更安全、更符合生产环境标准。 一、优化 1:BCrypt 密码加密(安全级别更高) MD5 是不可逆加密,但存在彩虹表破解风险;BCrypt 是自适应哈希函数 阅读全文
posted @ 2026-03-01 12:59 muyuxiaxing 阅读(2) 评论(0) 推荐(0)
摘要: 一、JWT 核心概念(新手友好版) JWT(JSON Web Token)是一种无状态的身份认证方式,替代传统的 Session: 登录成功后,服务器生成一个加密的 token 返回给前端; 前端后续请求都在请求头中携带这个 token; 服务器通过拦截器校验 token 的合法性,无需存储用户状态 阅读全文
posted @ 2026-02-28 17:54 muyuxiaxing 阅读(2) 评论(0) 推荐(0)
摘要: JDBC 是 Java 操作数据库的基础,也是 MyBatis 框架的底层核心。 前置准备 安装 MySQL,创建数据库和表: 在 Maven 的pom.xml中添加 MySQL 驱动依赖: 实战:封装 JDBC 工具类(简化数据库操作) 创建com.example.util.JDBCUtil.ja 阅读全文
posted @ 2026-02-28 17:19 muyuxiaxing 阅读(5) 评论(0) 推荐(0)
摘要: ResultSet 使用步骤 游标向下移动一行,并判断该行是否有数据:调用 next() 方法 获取数据:调用 getXxx(参数) 方法:000 // 循环判断游标是否到达最后一行末尾 while (rs.next()) { // 获取数据 rs.getXxx(参数); } PreparedSta 阅读全文
posted @ 2026-02-27 16:10 muyuxiaxing 阅读(3) 评论(0) 推荐(0)