图书管理系统(6)强制登陆(前端实现)

图书管理系统(6)强制登陆(前端实现)

图书管理系统(6)强制登陆(前端实现)

文章目录

观前提醒:

这个图书管理系统,非常的简陋,仅作为练习使用。不建议大家使用我介绍的 图书管理系统 ,去作为 课程设计。

如果你是第一次点击这篇博客的,需要你将我 图书管理系统 的博客列表中,从这篇开始看:
图书管理系统(1)项目准备,用户登录接口,添加图书接口

无Mybatis版本获取:

这个 图书管理系统 的实现,需要你从我的 gitee上,将 无Mybatis版本 的图书管理系统源代码下载下来。
gitee链接:https://gitee.com/mrbgvhbhjv/java-ee-course/tree/master/%E5%90%8E%E7%AB%AF%E4%BB%A3%E7%A0%81/springboot_bookManage_System

在这里插入图片描述

基于 Mybatis版本 的获取:

如果你想直接获取 基于 Mybatis 完全实现了增删查改功能的图书管理系统,就从我的 gitee 上面获取,下载源代码。
gitee链接:https://gitee.com/mrbgvhbhjv/java-ee-course/tree/master/%E5%90%8E%E7%AB%AF%E4%BB%A3%E7%A0%81/Book_System_20251107

在这里插入图片描述

目录结构:

以防大家会乱,或者我博客写的不详细,各种类的存放位置,我放个目录结构在这里:

在这里插入图片描述


在这里插入图片描述

个人建议:

这篇博客的代码,建议自己敲一下。
跟着我的步骤,使用 无Mybatis版本 的图书管理系统源代码 ,一步一步的将代码实现出来。

这里使用的数据库是 MySQL。
图形化工具:Navicat

虽然,截止到 2026年,cursor,TRAE等 AI工具,能够一键编写代码,甚至一个系统。
但是,如果你不会基础知识,只会让 ai 生成代码,不会看代码,不会修改代码,代码运行报错,你不会解决问题等等。其实,你都不算是一个 Java开发者。

如果我们将 AI工具,对我们的工作效率提升,有巨大的帮助,它一定是一个乘法结算的结果。
你的基础开发能力 × AI工具效率 == 工作效率。

如果你的基础开发能力不行,约等于 0,那么,无论 AI工具效率多高,99倍也好,0 * 99 == 0
所以,只有将我们自己的基础开发能力提升了,使用 AI工具提升效率,才是事半功倍的效果。

1. 前端代码编写

由于加入 强制登录 功能之后,后端返回给前端的数据,也发生了响应的变化:

在这里插入图片描述


所以,前端代码,需要做出相应的调整。

后端开发,不关注前端是如何设计的,所以,前端代码,不进行讲解,需要掌握的是:学会如何使用 ajax发送请求。

1.1 后端 code 的值:

用户未登录,code = -1

在这里插入图片描述

用户登录,code = 200

在这里插入图片描述

1.2 book_list.html:

getBookList方法代码:

function getBookList () { $.ajax({ type: "get", url: "/book/getListByPage" + location.search, success: function (result) { if (result == null || result.code == -1) { alert("用户未登录,请先登录"); location.href = "login.html"; } // 其他情况判断,此处省略 if (result == null || result.data == null){ return; } var data = result.data; var books = data.records; var; for (var book of books) { // 拼接列表 wholeHtml += '<tr>'; wholeHtml += '<td><inputtype="checkbox"name="selectBook"value="' + book.id + '"id="selectBook"class="book-select"></td>'; wholeHtml += '<td>' + book.id + '</td>'; wholeHtml += '<td>' + book.bookName + '</td>'; wholeHtml += '<td>' + book.author + '</td>'; wholeHtml += '<td>' + book.count + '</td>'; wholeHtml += '<td>' + book.price + '</td>'; wholeHtml += '<td>' + book.publish + '</td>'; wholeHtml += '<td>' + book.statusCN + '</td>'; wholeHtml += '<td><divclass="op">'; wholeHtml += '<ahref="book_update.html?bookId=' + book.id + '">修改</a>'; wholeHtml += '<ahref="javascript:void(0)"onclick="deleteBook(' + book.id + ')">删除</a>'; wholeHtml += '</div></td></tr>'; } $("tbody").html(wholeHtml); //翻页信息 $("#pageContainer").jqPaginator({ totalCounts: data.total, //总记录数 pageSize: 10, //每页的个数 visiblePages: 5, //可视页数 currentPage: data.pageRequest.currentPage, //当前页码 first: '<liclass="page-item"><aclass="page-link">首页</a></li>', prev: '<liclass="page-item"><aclass="page-link"href="javascript:void(0);">上一页<\/a><\/li>', next: '<liclass="page-item"><aclass="page-link"href="javascript:void(0);">下一页<\/a><\/li>', last: '<liclass="page-item"><aclass="page-link"href="javascript:void(0);">最后一页<\/a><\/li>', page: '<liclass="page-item"><aclass="page-link"href="javascript:void(0);">{{page}}<\/a><\/li>', //页面初始化和页码点击时都会执行 onPageChange: function (page, type) { if (type == "change") { location.href = "book_list.html?currentPage=" + page; } } }); } }); } 

1.3 测试:

未登录:

在这里插入图片描述

登录:

在这里插入图片描述

登陆后:

在这里插入图片描述

2. 总结:

目前,仅仅是 图书列表展示 页面,进行了强制登录功能的实现,后续,学完 统一功能 这个知识后,再对 图书管理系统,进一步进行完善。

所以,想要实现整个图书管理系统,我们就需要学习 统一功能处理 这个知识点。

最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢!
下一篇博客:统一功能处理(1)拦截器

Read more

Flutter for OpenHarmony: Flutter 三方库 sanitize_html 彻底杜绝 XSS 注入风险(鸿蒙 Web 内容安全净化)

Flutter for OpenHarmony: Flutter 三方库 sanitize_html 彻底杜绝 XSS 注入风险(鸿蒙 Web 内容安全净化)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在开发 OpenHarmony 应用时,如果我们需要在 UI 中渲染来自后端的 HTML 内容(例如文章正文、用户评论),或者使用 flutter_html 等库,一个致命的安全风险就是 XSS (跨站脚本攻击)。恶意代码可能会通过 <script> 标签或 onerror 属性在你的 App 内执行非法逻辑。 sanitize_html 是一个轻量级且极高效的 HTML 净化库。它采用白名单机制,能瞬间过滤掉所有不安全的标签和属性,确保你在鸿蒙 App 内渲染的每一行 Web 内容都是绝对安全的。 一、核心防御机制解析 sanitize_html 遵循“默认拒绝”

By Ne0inhk
【AI深究】随机森林(Random Forest)全网最详细全流程详解与案例(附Python代码演示)|集成学习|数学原理、案例流程、代码演示及结果解读|参数与调优、工程启示、单棵决策树的对比、优缺点

【AI深究】随机森林(Random Forest)全网最详细全流程详解与案例(附Python代码演示)|集成学习|数学原理、案例流程、代码演示及结果解读|参数与调优、工程启示、单棵决策树的对比、优缺点

大家好,我是爱酱。本篇将会系统地讲解随机森林(Random Forest)的原理、核心思想、数学表达、算法流程、代码实现与工程应用。内容适合初学者和进阶读者,配合公式和可视化示例。 注:本文章含大量数学算式、详细例子说明及大量代码演示,大量干货,建议先收藏再慢慢观看理解。新频道发展不易,你们的每个赞、收藏跟转发都是我继续分享的动力! 注:随机森林(Random Forest)与决策树(Decision Tree)息息相关,因此不了解决策树的同学建议先去了解一下,爱酱也有文章深入探讨决策树,这里也给上链接。 传送门: 【AI深究】决策树(Decision Tree)全网最详细全流程详解与案例(附Python代码演示)|数学原理、案例流程、代码演示及结果解读|ID3、C4.5、CART算法|工程启示、分类、回归决策树-ZEEKLOG博客 一、随机森林是什么?

By Ne0inhk

如何用Hunyuan-MT-7B-WEBUI解决民汉翻译难题?

如何用Hunyuan-MT-7B-WEBUI解决民汉翻译难题? 在新疆、西藏、内蒙古、广西、云南等多民族聚居地区,基层政务、教育、医疗、司法一线每天产生大量需要双向转换的文本:村委公告要译成维吾尔语张贴在社区公告栏,藏语病历需转为汉语供上级医院会诊,哈萨克语政策解读材料要同步生成汉语简明版下发……这些不是“锦上添花”的需求,而是关乎信息可达性、服务公平性与治理有效性的刚性要求。 传统机器翻译工具常在此类场景中失能——要么不支持少数民族语言,要么仅支持单向翻译(汉→民),要么输出生硬拗口、术语错乱、文化失当。而 Hunyuan-MT-7B-WEBUI 的出现,第一次让“高质量、低门槛、可部署”的民汉互译能力真正下沉到县乡一级的技术人员手中。它不是又一个云端API调用接口,而是一套开箱即用、本地运行、无需代码基础的完整推理环境。 更重要的是,它专为真实语境而生:支持藏语、维吾尔语、哈萨克语、蒙古语、彝语五大民族语言与中文之间的双向互译,且全部基于真实平行语料微调,而非简单语言对齐或零样本迁移。这意味着,你输入一句“请于本周五前提交年度帮扶计划表”

By Ne0inhk

Android WebView 版本升级方案详解

Android WebView 版本升级方案详解 目录 1. 问题背景 2. WebViewUpgrade 项目介绍 3. 升级方法详解 4. 替代方案对比 5. 接入与使用步骤 6. 注意事项与限制 7. 总结与建议 问题背景 WebView 版本差异带来的问题 Android 5.0 以后,WebView 升级需要去 Google Play 安装 APK,但即使安装了也不一定能正常工作。像华为、Amazon 等特殊机型的 WebView 的 Chromium 版本一般比较低,只能使用它自己的 WebView,无法使用 Google 的 WebView。 典型问题场景 H.265 视频播放问题:

By Ne0inhk