浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目
信息學院本科生創新項目總結報告
?
研究目的與意義
基于Spring Boot框架等技術實現一個簡單的后臺用戶管理系統項目,具有良好的用戶交互體驗、良好的信息反饋能力、安全防護措施,包括用戶登錄、用戶注冊、信息反饋、用戶信息查詢、管理員用戶管理、權限控制與管理等功能。
通過對Spring Boot、Spring MVC、MyBatis、Spring Security等框架和相關技術的應用,了解掌握原理并實現功能——將理論轉化為實踐。運用Cookie、Session、分頁操作、文件上傳下載等Java Web基礎知識。掌握Servlet封裝、JDBC封裝等基本能力。加深對MVC設計模式、三層架構、DAO模式的掌握和理解。同時完成一個簡單的后臺管理項目系統,解決Web應用基本的登錄系統設計和用戶管理問題。
?
研究內容與總體方案
基于Spring Boot、Spring MVC、MyBatis、Spring Security等技術實現一個簡單的后臺用戶管理系統項目,具有良好的用戶交互體驗、良好的信息反饋能力、安全防護措施。包括用戶登錄、用戶注冊、信息反饋、用戶信息查詢、管理員用戶管理、權限控制與管理等功能。
將所有賬號分為管理員賬號與用戶賬號兩個大類。
管理員主要權限在于管理用戶。
管理員擁有查看、更改用戶信息、提升用戶權限、凍結用戶賬戶等權限。
本項目分為用戶模塊和管理模塊。
用戶模塊,用戶可以查看用戶信息、修改用戶的基本資料。
管理模塊只有管理員能夠進行使用,管理員可以修改用戶的權限,也可以凍結或刪除用戶賬號。該部分的權限不對其他用戶進行開放,這部分模塊含有系統的基礎設置與初始化數據庫等高風險性操作。
總體方案
項目前端采用Bootstrap框架簡單美化并通過AJAX和后端進行交互。
項目后端采用Spring Boot框架,用java語言編寫。
采用Bootstrap作為前端UI框架
Bootstrap 是基于 HTML、CSS、JavaScript 的,簡潔靈活,能夠跨設備,跨瀏覽器、還可以進行響應布局、CSS可以模塊化、同時內置JavaScript插件、還有豐富的組件,使得 Web 開發更加快捷。
為了提供良好的用戶體驗,項目整體采用AJAX實現前后端交換,實現局部內容刷新,避免不必要的訪問請求。
采用Maven作為項目管理工具。
Maven 是一個項目管理工具,可以對 Java 項目進行構建、依賴管理。
后端接口采用RESTful的API接口
Spring Boot整合Spring MVC。
M即Model,模型層,創建了實體類User,實現登錄、注冊功能。同時采用RBAC權限模式,對每個對象類分為用戶實體,角色實體和權限實體,三者之間都是多對多的映射關系。
V即View,視圖層,摒棄后端冗雜的jsp文件,采用Spring Boot官方推薦的Thymeleaf作為模板渲染模型,同時利用Bootstrap進行簡單美化。
C即Controller,控制層,通過控制器實現網站的具體功能。
為了實現用戶的持久化,本項目采用MySQL作為數據庫,使用Spring Boot整合的HikariCP作為數據庫連接池,并用MyBatis作為數據持久化的API,MyBatis-Plus作為MyBatis擴展工具。通過Spring Boot整合的Hibernate接口和Spring Data的約定方法命名來實現對數據的增刪查改和分頁操作。
使用Flyway管理數據庫SQL腳本,實現數據庫創建、管理、同步。
安全技術方面采用了Spring Boot內帶的Spring Security來實現用戶登錄時的用戶名和密碼檢查,同時實體對象采用RBAC權限模型來控制訪問權限問題,開啟了Spring Security自帶的CSRF防御,防止CSRF跨站攻擊。對用戶的密碼使用了BCrypt技術加密,對所有密碼進行加密,同時對敏感路徑和方法進行權限限制和管理。
相關技術
前端:HTML、CSS、JavaScript、jQuery、AJAX、Thymeleaf、Bootstrap等
后端:Spring Boot、Spring、Spring MVC、Spring Security、MyBatis、MySQL、Flyway等。
?
研究方法
文獻資料法
主要采用相關技術和原理學習、實踐、整合開發出簡單模型,發布測試,然后學習相關技術替換、模型升級優化,使項目更完善,更高效,更完整。
為了解當前企業對用戶權限管理的主要需求,先登錄一些大型Web應用項目,記錄目前用戶權限管理的基本方法。對用戶權限管理有一個大致的了解,然后分析這個過程中可能存在的權限隱患,加以分析。再查閱相關論文,了解目前解決權限分級問題的主要方法,對這些方法進行研究,看是否存在著漏洞或可以改進的地方,并歸納這些方法是為解決什么類型的權限模型而產生的,并思考根據不同類型的應用,這些方法應該做出哪些修改。
行動研究法
結合實際,在實際的學習環節中,通過個案分析和作品分析等,實現具體的功能,反復測試,及時改進研究措施。
依靠已知的相關技術開發出簡單的Java Web登錄注冊項目,并通過簡單的邏輯處理防止未登錄用戶使用功能,并用AJAX完善了用戶體驗。將項目以war打包發送到服務器上進行發布并測試。
經驗總結法
在實踐和研究的基礎上,根據課題研究重點,隨時積累素材,探索有效措施,總結得失,尋找有效的提高效率和提高實際運用、實踐能力的方法。
結合用戶反饋和相關知識儲備的提升,對項目進行重構,采用Spring Boot框架來實現。掌握JPA的增刪查改和分頁技術基本掌握。重構Java Web項目為Spring Boot項目并實現用戶信息持久化。掌握和理解MVC設計模式、三層架構、DAO模式等設計模式,采用Spring MVC重構項目的控制層。進一步學習了JPA持久層和MyBatis框架,實現對持久層的優化。掌握Spring Security用戶信息驗證原理,優化用戶登錄和權限控制。
?
研究結果
DEMO地址:https://www.shentuzhigang.top:8443/MyZSTU/
權限管理
對于權限分級,研究得到的權限解決方案為:使用Spring Security框架,對訪問路徑和方法進行保護,并在建立五張表,分別為resource、role、users、resource_role、user_role。
其中resource表儲存受保護的訪問路徑和方法、role表儲存角色、users表儲存所有人員resource_role表儲存路徑和方法和角色的對應關系,user_role表儲存用戶和角色的對應關系。
當用戶或管理員(user)在訪問一個受保護的路徑和方法時,Spring Security先從user_role中得到該賬號所擁有的角色的所有權限,再對比所訪問的路徑方法是否在的權限集中,若user攜帶有可以訪問改路徑的角色,則訪問通過,否則訪問被攔截。
管理員不可修改和其同等權限或具有比其更高權限的賬號,也不可將低權限賬號的權限提高到和其同一權限或更高權限。
對于權限的修改操作,只需在user_role中,為賬號添加、修改、刪除相應角色即可。
?
參考文獻
[1] Java從入門到精通(第4版).明日科技著.清華大學出版社
[2] Java Web從入門到精通(第3版).明日科技著.清華大學出版社
[3] 龍中華.Spring Boot實戰派.電子工業出版社
[4] 王松.Spring Boot+Vue全棧開發實戰.清華大學出版社
[5] 朱要光.Spring MVC+MyBatis開發從入門到項目實戰.電子工業出版社
[6] [美] 凱·S.霍斯特曼著.Java核心技術卷2高級特性(原書11版).陳昊鵬譯.機械工業出版社
[7] [美] 梁勇.Java語言程序設計(進階篇).阿姆斯特丹亞特蘭大州立大學著.戴開宇.復旦大學譯.機械工業出版社
[8] 楊開振.《深入淺出Spring Boot 2.x》.人民郵電出版社.2018
[9] 張琪.基于角色的權限管理系統的設計與實現.電子科技大學
[10] Bootstrap 官網 https://getbootstrap.com/
[11] Spring Boot官網 https://spring.io/projects/spring-boot
總結
以上是生活随笔為你收集整理的浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue——项目部署到非根目录下的解决方案
- 下一篇: MyBatis + MyBatis Pl