浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目
信息学院本科生创新项目总结报告
研究目的与意义
基于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
浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目相关推荐
- 浙江理工大学信息学院本科生创新项目总结报告——云水诗踪-西湖旅游后台管理系统
信息学院本科生创新项目总结报告 研究目的与意义 中华文化博大精深,源远流长,在五千多年文明发展中孕育的中华优秀传统文化,积淀着中华民族最深沉的精神追求,代表着中华民族独特的精神标识,是中华民族生生不息 ...
- 潭州课堂25班:Ph201805201 django 项目 第四十三课 后台 用户管理前后功能实现 (课堂笔记)...
用户的展示,编辑,删除, 把用户显示出来,用户名,员工(是,否), 超级用户(是, 否) 活跃状态,(非活跃示为删除) 在前台要显示该用户所属的用户组,在前台代码中是调用类的属性,所以在 user 的 ...
- 浙江理工大学计算机学院招生,浙江理工大学信息学院(专业学位)计算机技术保研夏令营...
考研真题资料优惠价原价选择 浙江理工大学信息学院(专业学位)计算机技术保研夏令营信息,是考研之前需要获取相应的考研信息,比如考试大纲.招考专业.招考目录等等基本信息,这些内容是进行考研前期工作的必要准 ...
- 项目干系人是什么?如何有效管理项目干系人?
项目干系人是指对项目具有利益关系或影响力的个人.团体或组织.他们可能会对项目的目标.范围.进度.成本.质量等方面产生影响,因此,有效地管理项目干系人是项目管理成功的关键之一. 一.干系人识别和分类 项 ...
- 【VUE项目实战】68、使用pm2管理项目
接上篇<67.上线-开启gzip和配置HTTPS服务> 上一篇我们学习了如何开启gzip配置来减少文件访问体积,并配置HTTPS服务.本篇我们讲解一下如何使用pm2管理项目. 本篇是该系列 ...
- 听书项目开发过程及重难点总结(用户管理)
文章目录 一.需求分析 二.前后端交互 1. 注册 **前端** **后端** 2.登录 前端 后端 三.项目开发重难点 1.编写一个Servlet 2.session和session会话机制 1)S ...
- 并购数据库_项目团队的并购:如何有效地管理项目数据和流程?
并购数据库 mergers and acquisitions is complicated and requires much more effort than most business owner ...
- 浙江理工c语言复试试题,2016年浙江理工大学信息学院C语言程序设计复试笔试最后押题五套卷...
一.选择题 1. 以下叙述中错误的是( ). A.C 程序必须由一个或一个以上的函数组成 B. 函数调用可以作为一个独立的语句存在 C. 若函数有返回值,必须通过return 语句返回 D. 函数可以 ...
- 浙江理工考研c语言程序设计,2016年浙江理工大学信息学院C语言程序设计考研复试题库...
一.选择题 1. 以下叙述错误的是( ). A. 未经赋值的全局变量值不确定 B. 未经赋值的auto 变量值不确定 C. 未经赋值的register 变量值不确定 D. 未经赋值的静态局部变量值为0 ...
最新文章
- C语言格式控制符和转义字符
- GUN Global + Vim及其插件 打造Android源码阅读器
- 性能测试工具—JMeter分布式启动
- C++学习系列笔记(四)
- Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶/高并发
- RPC 框架之 Goole protobuf
- 计算机excel函数lookup,详细介绍数据查找VLookup函数在Excel中的应用举例
- C++多线程编程(真实入门)
- rp文件转换成html,Axure产品原型在手机上运行的方法
- 微型计算机常常采用三种线结构,2016年河海大学929地理信息系统之地理信息系统概论考研复试题库...
- 8-思科防火墙:Cisco ASA uRPF运用
- HTTP并发测试工具
- java读取word目录
- oracle bpm 集成erp,我们已经执行了ERP系统,为什么还要使用BPM系统?
- 程序员爬取 5000+ 口红商品数据,差点比女朋友更懂口红?
- 互联网产品运营管理知识一网打尽
- 使用OpenCV实现Halcon算法(4)OpenCV实现边缘模板匹配算法
- 微端和网站可以放同一台服务器吗,微端放云服务器可以吗
- 腾讯云运维工程师认证模拟题
- 手机验证码、图片验证码的实现
热门文章
- soapui返回值类型都有哪些_货架的类型都有哪些呢
- 湘源控规8.0_湘源控规8.0新版本发布
- 【数据结构与算法】递归
- SpringMVC_2.搭建SpringMVC
- 科学计算机怎么算坐标,用科学计算器fx-5800算坐标怎么按
- sql 转html 中文乱码问题,SqlServer中文乱码问题的解决方法
- python编写ftp客户端_用Python写FTP客户端程序
- 计算机一级access考试题库,App Store 上的“计算机二级access-全国计算机等级考试题库”...
- java redirect 跨域_碰到了跨域问题, Redirect is not allowed for a preflight request
- 困难动态规划系列、经典的正则表达式和通配符匹配问题(难题)