信息学院本科生创新项目总结报告

研究目的与意义

基于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

浙江理工大学信息学院本科生创新项目总结报告——简单的后台用户管理项目相关推荐

  1. 浙江理工大学信息学院本科生创新项目总结报告——云水诗踪-西湖旅游后台管理系统

    信息学院本科生创新项目总结报告 研究目的与意义 中华文化博大精深,源远流长,在五千多年文明发展中孕育的中华优秀传统文化,积淀着中华民族最深沉的精神追求,代表着中华民族独特的精神标识,是中华民族生生不息 ...

  2. 潭州课堂25班:Ph201805201 django 项目 第四十三课 后台 用户管理前后功能实现 (课堂笔记)...

    用户的展示,编辑,删除, 把用户显示出来,用户名,员工(是,否), 超级用户(是, 否) 活跃状态,(非活跃示为删除) 在前台要显示该用户所属的用户组,在前台代码中是调用类的属性,所以在 user 的 ...

  3. 浙江理工大学计算机学院招生,浙江理工大学信息学院(专业学位)计算机技术保研夏令营...

    考研真题资料优惠价原价选择 浙江理工大学信息学院(专业学位)计算机技术保研夏令营信息,是考研之前需要获取相应的考研信息,比如考试大纲.招考专业.招考目录等等基本信息,这些内容是进行考研前期工作的必要准 ...

  4. 项目干系人是什么?如何有效管理项目干系人?

    项目干系人是指对项目具有利益关系或影响力的个人.团体或组织.他们可能会对项目的目标.范围.进度.成本.质量等方面产生影响,因此,有效地管理项目干系人是项目管理成功的关键之一. 一.干系人识别和分类 项 ...

  5. 【VUE项目实战】68、使用pm2管理项目

    接上篇<67.上线-开启gzip和配置HTTPS服务> 上一篇我们学习了如何开启gzip配置来减少文件访问体积,并配置HTTPS服务.本篇我们讲解一下如何使用pm2管理项目. 本篇是该系列 ...

  6. 听书项目开发过程及重难点总结(用户管理)

    文章目录 一.需求分析 二.前后端交互 1. 注册 **前端** **后端** 2.登录 前端 后端 三.项目开发重难点 1.编写一个Servlet 2.session和session会话机制 1)S ...

  7. 并购数据库_项目团队的并购:如何有效地管理项目数据和流程?

    并购数据库 mergers and acquisitions is complicated and requires much more effort than most business owner ...

  8. 浙江理工c语言复试试题,2016年浙江理工大学信息学院C语言程序设计复试笔试最后押题五套卷...

    一.选择题 1. 以下叙述中错误的是( ). A.C 程序必须由一个或一个以上的函数组成 B. 函数调用可以作为一个独立的语句存在 C. 若函数有返回值,必须通过return 语句返回 D. 函数可以 ...

  9. 浙江理工考研c语言程序设计,2016年浙江理工大学信息学院C语言程序设计考研复试题库...

    一.选择题 1. 以下叙述错误的是( ). A. 未经赋值的全局变量值不确定 B. 未经赋值的auto 变量值不确定 C. 未经赋值的register 变量值不确定 D. 未经赋值的静态局部变量值为0 ...

最新文章

  1. C语言格式控制符和转义字符
  2. GUN Global + Vim及其插件 打造Android源码阅读器
  3. 性能测试工具—JMeter分布式启动
  4. C++学习系列笔记(四)
  5. Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶/高并发
  6. RPC 框架之 Goole protobuf
  7. 计算机excel函数lookup,详细介绍数据查找VLookup函数在Excel中的应用举例
  8. C++多线程编程(真实入门)
  9. rp文件转换成html,Axure产品原型在手机上运行的方法
  10. 微型计算机常常采用三种线结构,2016年河海大学929地理信息系统之地理信息系统概论考研复试题库...
  11. 8-思科防火墙:Cisco ASA uRPF运用
  12. HTTP并发测试工具
  13. java读取word目录
  14. oracle bpm 集成erp,我们已经执行了ERP系统,为什么还要使用BPM系统?
  15. 程序员爬取 5000+ 口红商品数据,差点比女朋友更懂口红?
  16. 互联网产品运营管理知识一网打尽
  17. 使用OpenCV实现Halcon算法(4)OpenCV实现边缘模板匹配算法
  18. 微端和网站可以放同一台服务器吗,微端放云服务器可以吗
  19. 腾讯云运维工程师认证模拟题
  20. 手机验证码、图片验证码的实现

热门文章

  1. soapui返回值类型都有哪些_货架的类型都有哪些呢
  2. 湘源控规8.0_湘源控规8.0新版本发布
  3. 【数据结构与算法】递归
  4. SpringMVC_2.搭建SpringMVC
  5. 科学计算机怎么算坐标,用科学计算器fx-5800算坐标怎么按
  6. sql 转html 中文乱码问题,SqlServer中文乱码问题的解决方法
  7. python编写ftp客户端_用Python写FTP客户端程序
  8. 计算机一级access考试题库,‎App Store 上的“计算机二级access-全国计算机等级考试题库”...
  9. java redirect 跨域_碰到了跨域问题, Redirect is not allowed for a preflight request
  10. 困难动态规划系列、经典的正则表达式和通配符匹配问题(难题)