绪论:先容本系统开拓的背景,意义;

开拓环境:先容本系统的配置环境以及开拓技能;

系统剖析:先容本系统的功能,性能以及可行性;

宿舍卫生管理系统jsp基于SSM框架的宿舍治理体系的 AJAX

系统设计:先容本系统的数据库的设计以及功能构造的设计;

系统实现:先容本系统的实现界面以及实现的功能;

系统测试:先容本系统的功能测试以及测试结果;

第二章 开拓环境

开拓本系统须要配置开拓环境,除了须要开拓者安装相应的软件外,也须要对开拓中利用的技能进行理解和节制。
## 2.1 Java措辞 Java措辞是目前最盛行的措辞之一,不仅可以做桌面窗口形式的程序,还可以做浏览器访问的程序,目前最盛行的便是用Java措辞作为根本,做各种程序的后台处理。
Java措辞是操作变量的措辞,而变量则是Java对付数据存在形式的定义,变量用来操作内存,而内存则牵扯到打算机安全问题,这样Java措辞反而有了免疫直接针对用Java措辞开拓出来的程序的病毒,有效的提高了Java措辞开拓出来程序的生存能力。
Java是具有动态运行能力的一种措辞,Java的类不仅仅可以用Java核心供应的根本类,还可以进行重写,这样会让Java的功能变得更加丰富,乃至可以编写一些功能模块进行封装,然后其他项目如果须要用到这些可以复用的功能,完备可以直接引用,然后在用得地方调用方法即可。
Java是一种开源的措辞,可以对Java里面的各种类以及引用方法进行追溯,乃至可以对已经编译过的措辞进行反编译,这样不仅仅提高学习的效率,并且可以学习其他从业者供应的优雅的编程办法。
Java措辞发展到现在,已经在各个行业扎根,学习Java可以从事的行业很多,并且学习的方法很多,网上有很多免费的教程,乃至有些博识的知识也只须要付费就可以进行学习,而不是像Java措辞之初,每一个编程职员都须要用记事本进行手动编码,现在有很多集成开拓环境帮助Java从业者。
选择Java措辞进行编程,是一种很好的办理问题的办法。
## 2.2 MYSQL数据库 一样平常学习程序开拓的职员如果学习数据库的话,肯定是要学习MySQL数据库,MySQL数据库通过这么多年的不断发展,社区版本都是免费的,最主要的是小巧,占用电脑空间比较小,让更多的开拓职员可以不须要改换更高等的电脑就可以进行学习。
学习只是一个方面,最主要的是MySQL市场霸占率是天下第一,基本上十个公司就有七八个用得MySQL数据库。
MySQL的优点不但是这么粗浅,MySQL首先是开源的,只要不是商用就不用费钱,并且大型的数据也是支持的,只假如市情上存在的操作系统,MySQL都可以有对应的版本可供给用。
由于MySQL是开源的,如果有对MySQL有分外需求的乃至可以自己修正源码,达到符合自己利用的目的。
MySQL数据库好处多多,最主要的一点符合本设计的开拓需求,可以说本设计只用到了MySQL的一些根本功能,而这点根本功能就完备够用。
MySQL学习的教程网上很多,许多关于入门的教程就完备可以达到普通程序员的开拓水平,只须要把基本的知识学会了,到公司里面也只是根据不同的业务逻辑进行不同的语句编写而已。
## 2.3 Eclipse开拓工具 Eclipse是开源免费的,仅仅这样理解大概会给人一种免费没有好货的觉得,实在不是这样的。
Eclipse是一个开拓源代码的开拓工具,这样会很安全,由于是开源的,如果对利用者的电脑有害,肯定能找到缘故原由所在,以是这一点安全方面是不用担心的。
Eclipse是不用安装的,这样就不用对系统盘增加压力,可以放到任何一个盘里,利用的时候打开,不用的时候关闭,不会静静的在后台运行,不须要增加注册表包袱,启动还必须依赖Java的JDK才可以启动,有效的避免了一些病毒入侵,如果病毒入侵改变了源代码,就不能运行了,只能重新删除文件夹重新解压一份新的Eclipse即可,用起来很安全。
Eclipse发展到现在,已经可以支持其他的开拓措辞了,家族越来越强大,功能越来越多,最主要的还是没有收费,这一点就让新手开拓者省下很多的资金用来培养自己的学习,而不用费钱买了开拓软件才创造自己不适宜进行开拓,永久免费的策略可以永久让人有想利用的机会。
最主要的是Eclipse并不是免费功能就不足用,正好相反,不仅功能强大,用起来完备符合本设计的开拓需求,以是选用了Eclipse作为开拓工具。
## 2.4 SSM框架 首先SSM框架是指的三个框架,第一个S是Spring MVC的首字母,紧张是作为掌握视图层的一种框架,第二个S是Spring框架的意思,紧张是用来作为Web层,这一层紧张是用来获取浏览器提交的一些信息并且把提交的信息处理后反馈给Spring MVC来掌握不同的显示页面和内容;第三个M是的意思是MyBatis框架,紧张是做为持久层用得,把数据工具转换成数据库表里的值,或者从数据库获取相应的数据转换成对应的Java工具让程序可以有效的进行转换和处理。
三个框架可以有效的进行结合,实现不同的浸染,起到了承上启下的浸染。

第三章 系统剖析

这个阶段,须要依赖大量的资料作为研究本系统的根本数据,除了剖析系统开拓可行问题之外,还要再通过调查本系统针对的目标人群的需求来确定本系统功能,并在本系统的性能上做出进一步剖析。
## 3.1可行性剖析 在项目进行开拓之前,必须要有可行性剖析报告,分别从技能角度,经济角度,操作角度上面进行剖析,经由可行性剖析是实现科学开拓的必要步骤。
### 3.1.1技能可行性 从技能的角度出发,目前采取开拓的技能完备能知足系统开拓须要。
目前市场上有现成的软件开拓工具和开拓技能,这些可以担保系统开拓的顺利进展。
### 3.1.2操作可行性 宿舍管理系统是根据用户常常利用的页面操作流程来进行设计的,并且页面担保统一,从视觉角度和操作角度上都能达到利用哀求。
### 3.1.3经济可行性 在本次开拓过程中,由于须要通过电脑来进行配置开拓的环境,通过对技能的剖析,创造目前正在利用的电脑是可以知足开拓须要的,并不须要太多的金钱对电脑进行改换。
以是,从经济角度上剖析,可以知足开拓哀求。

从以上三个角度来进行剖析论证,证明了宿舍管理系统是可以正常开拓并且利用的。
## 3.2系统流程剖析 从系统的角色上剖析,每个用户角色都代表了不同的账号身份,而不同的身份则代表着功能的异同,以是首先要区分用户的角色身份问题。
设置用户登录须要输入账号和密码,输入的信息必须与数据库里已经存在的账号密码信息进行比对,只有精确的账号和密码才可以进行下一步的页面显示操作,如果禁绝确的账号密码,则谢绝用户登录,也代表着用户没有连续访问的权限,系统是无法连续供应做事的。

图3-1 操作流程图

任何一个别系都有一个操作流程,本设计里面,对付任何数据的存储都有一定的合法哀求,只有符合设定哀求的数据才可以进行存储。
详细步骤参考下图。

图3-2 添加信息流程图

数据的存储并不是一成不变的,当须要对已经存在的数据进行改变的时候,同样也遵照着操作流程,想变动数据首先要确定变动之前的数据是什么,然后输入新的数据是否合法,都要符合流程,只有合法数据才可以被更新到数据库里存储。
详细步骤参考下图。

图3-3 修正信息流程图

删除操作,在数据存储方面是一件比较慎重的事宜,很有可能会产生失落误操作,以是一样平常删除操作的时候都要提示是否删除,确定删除才会更新数据库内容,实现删除目的。
详细步骤参考下图。

图3-4 删除信息流程图 ## 3.3系统性能剖析 系统在利用过程中,用户会享受到系统带来的便利。
那么如何保持在永劫光的利用过程中,不涌现乱七八糟的问题,让利用系统变成一种操作上的享受,利用上的便捷,这便是须要考虑的问题。
以下紧张从系统的性能剖析上面进行描述,从数据完全以及数据安全,包括系统的可扩展等方面进行先容。
### 3.3.1系统安全性 注册用户与游客用户的差异就在于是否有账号,如果有账号,那么就有干系的注册用户权限,有账号就有密码,密码是担保账号安全性的条件,游客只能浏览一些公共性信息,如果须要用户登录才能不雅观看的信息,那么也须要利用账号登录的。
对付系统安全性上面,紧张考虑角色的密码加密问题,这样可以防止有效的密码数据拦截后的破解事情。
一样平常密码如果有安全性哀求的话,是可以考虑加密存储。
密码的加密存储大致有两种设计方法,一种是密码在前台提交后就用Java Script进行MD5加密,然后直接提交密文,这样的好处是密文传输的安全性,另一种是提交密码后在后台处理的过程中对密码进行加密或者解密,这样会增加后台的处理包袱。
一样平常都居中考虑,如果登录的话会把密码在后台进行加密与数据库密码进行比拟。
目前常用的加密办法是MD5加密办法。
### 3.3.2数据完全性 系统进行开拓的最主要的目的便是数据的处理,打算机有其善于数据的存储以及处理事情,以是数据的完全性是必须担保的,不然系统的存在是没有必要的。
数据不管是设计还是存储,都必须完全,从数据的输入就从各个方面担保数据的合法性,违规数据不能直接提交的。
数据处理逻辑也会担保数据的加工正常,进而进行数据存储,也会担保数据设计的合理,这些都是有数据设定哀求的。
目前对数据的存储采取的关系型数据库,关系型数据库有多年的历史,功能强大,迁移备份以及无人值守都可以进行自动备份的。
### 3.3.3系统可扩展性 系统是有必要存在扩展性的。
在设计之初就要考虑可能存在的业务,以是对系统的设计就要模块化设计,这样须要进行扩展的时候,只要在对应模块进行增加,对应逻辑进行调试即可。
系统可扩展性的提升会让系统增加不必要的事情量,让程序设计更加符合规范。
## 3.4系统功能剖析 本系统在功能剖析上,紧张是根据目标用户群的角度进行剖析,为了便于展示剖析结果,这里就利用用例图进行功能展示。

管理员用例图的绘制结果见图3-5。
管理员登录进入本系统操作的功能包括管理宿舍信息,管理学生评分信息,管理宿舍评分信息,管理来访登记信息,管理维修登记信息,管理班级与学生信息等。

图3-5 管理员用例图

学生用例图的绘制结果见图3-6。
学生登录进入本系统操作的功能包括查看学生评分,查看宿舍评分信息,查看宿舍信息,登记宿舍维修信息,管理宿舍维修信息,查看公告等。

图3-6 学生用例图 # 第四章 系统设计 到目前为止,市情上已经存在了各种各样的软件系统,从系统的分类动手,紧张运用范围方向于办公系统,娱乐系统,社交系统,然后下面有很多比较细的分支系统。
很多系统已经经由了市场的磨练,针对不同的业务场景已经开始涌现了业务模块化,程序员减代码化的各种设计办法。
到目前为止,当要设计一个别系的时候,首先根据业务模型基本上都可以在网上找到类似的模板,然后根据详细业务详细剖析,进而实现详细功能,大众的便是最好的,毕竟符合市场主流的就代表着肯定符合常规操作流程。
## 4.1 系统设计目标 系统设计的时候,就要制订须要达成的目标。
在功能上,要严格符合设计需求,不仅仅要减少操作步骤,也要符合预期。
因此,在规范化的本日设计出符合项目哀求的系统,必须要达到下面设定的目标。

第一个目标便是友好性:友好性紧张表示在用户利用过程中,不会对系统的操作产生一种不满,减少操作者的愤怒,这是相称主要的一个体现。
前几年好多软件在这个友好性方面失落去了市场,便是由于在友好性这方面没有做好。
海内互联网发展初期,软件设计的目的便是能用就行,至于友好性的比拟,那是不存在的,由于硬件效率比较低,打算机属于新兴行业,以是大哥不说二哥,都是不友好的。
随着打算机硬件的提升,很多开拓者开始把稳到要捐躯一定的打算器性能来提升友好性,由于打算机发展到现在,第一印象很主要,一个软件设计的不好看,会让大部分人对其产生质疑,以是要在友好性上面下很大功夫进行雕琢。

第二个目标便是安全性:安全性实在贯穿着全体软件行业的发展史,打算机便是为办理人类重复性打算以及数据存储的目的而出身的,很多行业都须要打算机来进行打算,减少出错几率,并且把数据保留,可以实时查询,以是数据的安全性也很主要。

只要担保数据安全性的条件,开拓出符合功能需求的友好界面操作,那么就达到了系统设计的目的。
## 4.2功能构造设计 本系统紧张是基于数据的增加,修正,删除等操作,利用者能够通过提前设定的登录功能进入指定的操作区,这里对利用者设计的功能进行构造展示。

管理员功能构造图的绘制结果见图4-1。
管理员登录进入本系统操作的功能包括管理宿舍信息,管理学生评分信息,管理宿舍评分信息,管理来访登记信息,管理维修登记信息,管理班级与学生信息等。

图4-1 管理员功能构造图

学生功能构造图的绘制结果见图4-2。
学生登录进入本系统操作的功能包括查看学生评分,查看宿舍评分信息,查看宿舍信息,登记宿舍维修信息,管理宿舍维修信息,查看公告等。

图4-2 学生功能构造图 ## 4.3数据库设计 如果说设计系统的功能很主要,那么设计该系统的数据库将更主要,毕竟系统做事于用户,数据库做事于系统,用户访问系统,操作系统的所有数据都要依赖于数据库,而系统的数据险些都是保存在数据库中的,以是,一个高质量的程序,一定拥有一个安全,快速相应,稳定可靠的数据库。
本系统的MySQL数据库可以通过SQL措辞来实现对系统数据的管理,包括在指定表中插入数据,在规定的表中变动数据,以及删除指定表中的部分数据等操作。
一样平常来说,像MySQL这样的关系型数据库,对付构造化查询措辞SQL都能很好的进行支持。
在编程中,通过合理利用SQL措辞便能操作数据库的各种数据,真是非常方便快捷!
### 4.3.1 数据库观点设计 本节内容紧张是利用图形的办法来描述数据库中的实体,每个实体的相应属性,还有实体之间的相互联系,常用的Visio工具即可知足绘制E-R图的需求。
E-R图是由矩形,椭圆,菱形等图形元素组成,矩形框中紧张写实体的名称,椭圆框中紧张是登记该实体的属性,而菱形框中紧张是登记实体之间的联系名称,末了利用实心线段把这些图形元素进行连接,即可完成E-R图的绘制。
当初步得到一个E-R图时,须要进行检讨,利用剖析的办法去修正,重构E-R图,以达到肃清数据冗余,或者是肃清实体间联系冗余的目的。
从而保持数据库的完全性,以及降落数据库掩护上面的难度。

(1)利用Visio这样的常用的实体属性图绘制工具来绘制学生实体属性图,绘制结果见图4-3。

图4-3 学生实体属性图

(2)利用Visio这样的常用的实体属性图绘制工具来绘制管理员实体属性图,绘制结果见图4-4。

图4-4 管理员实体属性图

(3)利用Visio这样的常用的实体属性图绘制工具来绘制宿舍评分实体属性图,绘制结果见图4-5。

图4-5 宿舍评分实体属性图

(4)利用Visio这样的常用的实体属性图绘制工具来绘制宿舍信息实体属性图,绘制结果见图4-6。

图4-6 宿舍信息实体属性图

(5)绘制的上述实体间存在的联系见图4-7。

图4-7 实体间关系E-R图 ### 4.3.2 数据库物理设计 本系统数据在数据库中都是通过各种二维表进行记录保存的,在数据库中设计这样的二维表也是比较主要的内容,由于它影响着数据的存储效率。
在设计二维表也便是关系模型之前,一些有关二维表方面的常用观点须要进行充分理解。

关系:一张详细的数据表即表示关系,关系的名称与数据表的名称保持同等;

元组:数据表中,每行显示的数据即代表元组;

属性:数据表中,每列表示的数据即代表属性;

关键字:数据表中,为了与其他数据表进行区分,则须要在每张表中进行主键的设置;

通过上节内容可以知晓数据库中的各个实体,并通过一定办法把这些实体表示的内容进行数据表的转换,常日来说,每个实体都会对应一张详细的数据表,在本系统指定的数据库中创建命名好的数据库,才可以对数据表进行创建与设计。
宿舍管理系统数据表设计结果展示如下:

表4-1 班级表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

banjihao

班级号

varchar(200)

banjimingcheng

班级名称

varchar(200)

banjirenshu

班级人数

int(11)

fudaoyuan

辅导员

varchar(200)

xueshengmingdan

学生名单

longtext

表4-2 来访登记表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

laifangbianhao

来访编号

varchar(200)

fangkexingming

访客姓名

varchar(200)

laifangrenshu

来访人数

int(11)

shenfenzheng

身份证

varchar(200)

laifangxuesheng

来访学生

varchar(200)

xueshengxingming

学生姓名

varchar(200)

sushehao

宿舍号

varchar(200)

laifangmude

来访目的

longtext

laifangshijian

来访韶光

datetime

表4-3 公告信息表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

title

标题

varchar(200)

introduction

简介

longtext

picture

图片

varchar(200)

content

内容

longtext

表4-4 宿舍评分表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

xuehao

学号

varchar(200)

xueshengxingming

学生姓名

varchar(200)

sushehao

宿舍号

varchar(200)

shifouzhengjie

是否整洁

varchar(200)

shifouweigui

是否违规

varchar(200)

jianchaneirong

检讨内容

varchar(200)

weishengpingfen

卫生评分

int(11)

jianchajieguo

检讨结果

varchar(200)

jianchariqi

检讨日期

date

表4-5 宿舍信息表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

sushehao

宿舍号

varchar(200)

tupian

图片

varchar(200)

susheleixing

宿舍类型

varchar(200)

loudong

楼栋

varchar(200)

louceng

楼层

varchar(200)

xuehao

学号

varchar(200)

xueshengxingming

学生姓名

varchar(200)

sushechengyuan

宿舍成员

longtext

表4-6 管理员表

字段

注释

类型

id (主键)

主键

bigint(20)

username

用户名

varchar(100)

password

密码

varchar(100)

role

角色

varchar(100)

addtime

新增韶光

timestamp

表4-7 维修登记表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

sushehao

宿舍号

varchar(200)

loudong

楼栋

varchar(200)

louceng

楼层

varchar(200)

weixiubiaoti

维修标题

varchar(200)

weixiuneirong

维修内容

longtext

baoxiushijian

报修韶光

date

xuehao

学号

varchar(200)

表4-8 学生表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

xuehao

学号

varchar(200)

mima

密码

varchar(200)

xueshengxingming

学生姓名

varchar(200)

zhaopian

照片

varchar(200)

xingbie

性别

varchar(200)

yuanxi

院系

varchar(200)

banjimingcheng

班级名称

varchar(200)

sushehao

宿舍号

varchar(200)

lianxifangshi

联系办法

varchar(200)

表4-9 学生评分表

字段

注释

类型

id (主键)

主键

bigint(20)

addtime

创建韶光

timestamp

xuehao

学号

varchar(200)

xueshengxingming

学生姓名

varchar(200)

yuanxi

院系

varchar(200)

banjimingcheng

班级名称

varchar(200)

qingjieweisheng

清洁卫生

int(11)

wenmingjuzhi

文明举止

int(11)

zongdefen

总得分

int(11)

pingyu

评语

longtext

pingfenshijian

评分韶光

date

第五章 系统实现

这里紧张是对系统设计实现进行描述,通过系统的设计和数据库的设计,通过编码后变成了可以进行操作的界面,让统统想法变成了却果,通过笔墨和详细程序操作界面的截图之间的合营,可以把功能更直不雅观的描述起来。
## 5.1管理员功能实现 ### 5.1.1 宿舍信息管理 管理员进入如图5-1所示的宿舍信息管理界面之后,管理员点击信息显示栏中最右侧的宿舍评分,修正,删除按钮可依次完成宿舍信息的宿舍评分查看,修正,删除操作。

图5-1 宿舍信息管理界面 ### 5.1.2 来访登记管理 管理员进入如图5-2所示的来访登记管理界面之后,管理员点击信息显示栏中最右侧的修正,删除按钮可依次完成来访登记信息的修正,删除等操作,管理员在当前界面也能添加来访登记信息,查询来访登记信息。

图5-2 来访登记管理界面 ### 5.1.3 学生评分管理 管理员进入如图5-3所示的学生评分管理界面之后,管理员点击信息显示栏右侧的修正,删除按钮可依次完成学生评分信息的修正,删除等操作。
学生评分信息包括清洁卫生,文明举止,总得分以及评分韶光等信息。

图5-3 学生评分管理界面 ### 5.1.4 宿舍评分管理 管理员进入如图5-4所示的宿舍评分管理界面之后,管理员点击信息显示栏中最右侧的修正,删除按钮可依次完成宿舍评分信息的修正,删除等操作。
在宿舍评分管理界面,管理员点击统计按钮可以查看宿舍评分的统计信息,管理员可以根据检讨结果,宿舍号来查询宿舍评分信息。

图5-4 宿舍评分管理界面 ## 5.2学生功能实现 ### 5.2.1 宿舍信息管理 学生进入如图5-5所示的宿舍信息管理界面之后,学生可以点击信息显示栏右侧的维修登记按钮可以登记宿舍的维修信息,可以在宿舍信息管理界面查询,查看宿舍信息等。

图5-5 宿舍信息管理界面 ### 5.2.2 维修登记管理 学生进入如图5-6所示的维修登记管理界面之后,学生可以查询维修登记信息,查询时,须要供应宿舍号或学号才能查询维修登记信息,在维修登记管理界面,学生也能删除维修登记信息。

图5-6 维修登记管理界面 ### 5.2.3 公告信息查看 学生进入如图5-7所示的公告信息查看界面之后,学生查看公告详细内容,当公告信息比较多时,学生可以利用查询功能来查询公告,查询前须要在查询框中登记标题才可以实现对公告信息的查询。

图5-7 公告信息查看界面

LaifangdengjiServiceImpl.java

package com.service.impl;import org.springframework.stereotype.Service;import java.util.Map;import java.util.List;import com.baomidou.mybatisplus.mapper.Wrapper;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.plugins.Page;import com.baomidou.mybatisplus.service.impl.ServiceImpl;import com.utils.PageUtils;import com.utils.Query;import com.dao.LaifangdengjiDao;import com.entity.LaifangdengjiEntity;import com.service.LaifangdengjiService;import com.entity.vo.LaifangdengjiVO;import com.entity.view.LaifangdengjiView;@Service(&#34;laifangdengjiService")public class LaifangdengjiServiceImpl extends ServiceImpl<LaifangdengjiDao, LaifangdengjiEntity> implements LaifangdengjiService { @Override public PageUtils queryPage(Map<String, Object> params) { Page<LaifangdengjiEntity> page = this.selectPage( new Query<LaifangdengjiEntity>(params).getPage(), new EntityWrapper<LaifangdengjiEntity>() ); return new PageUtils(page); } @Override public PageUtils queryPage(Map<String, Object> params, Wrapper<LaifangdengjiEntity> wrapper) { Page<LaifangdengjiView> page =new Query<LaifangdengjiView>(params).getPage(); page.setRecords(baseMapper.selectListView(page,wrapper)); PageUtils pageUtil = new PageUtils(page); return pageUtil; } @Override public List<LaifangdengjiVO> selectListVO(Wrapper<LaifangdengjiEntity> wrapper) { return baseMapper.selectListVO(wrapper); } @Override public LaifangdengjiVO selectVO(Wrapper<LaifangdengjiEntity> wrapper) { return baseMapper.selectVO(wrapper); } @Override public List<LaifangdengjiView> selectListView(Wrapper<LaifangdengjiEntity> wrapper) { return baseMapper.selectListView(wrapper); } @Override public LaifangdengjiView selectView(Wrapper<LaifangdengjiEntity> wrapper) { return baseMapper.selectView(wrapper); }}CommonUtil.java

package com.utils;import java.util.Random;import org.springframework.stereotype.Component;import org.apache.commons.lang3.StringUtils;import org.apache.poi.ss.usermodel.Cell;import java.text.DecimalFormat;import java.util.Objects;@Componentpublic class CommonUtil { / 获取随机字符串 @param num @return / public static String getRandomString(Integer num) { String base = "abcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < num; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } / 获取随机验证码 @param num @return / public static String getRandomNumber(Integer num) { String base = "0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < num; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } public static String getCellValue(Cell cell) { String resultValue = ""; // 判空 if (Objects.isNull(cell)) { return resultValue; } // 拿到单元格类型 int cellType = cell.getCellType(); switch (cellType) { // 字符串类型 case Cell.CELL_TYPE_STRING: resultValue = StringUtils.isEmpty(cell.getStringCellValue()) ? "" : cell.getStringCellValue().trim(); break; // 布尔类型 case Cell.CELL_TYPE_BOOLEAN: resultValue = String.valueOf(cell.getBooleanCellValue()); break; // 数值类型 case Cell.CELL_TYPE_NUMERIC: resultValue = new DecimalFormat("#.######").format(cell.getNumericCellValue()); break; // 取空串 default: break; } return resultValue; }}MD5Util.java

package com.utils;import cn.hutool.crypto.digest.DigestUtil;public class MD5Util { / @param text明文 @param key密钥 @return 密文 / // 带秘钥加密 public static String md5(String text) { // 加密后的字符串 String md5str = DigestUtil.md5Hex(text); return md5str; }}menu.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>var menus = [{"backMenu":[{"child":[{"appFrontIcon":"cuIcon-circle","buttons":["新增","查看","修正","删除","导出","学生评分"],"menu":"学生","menuJump":"列表","tableName":"xuesheng"}],"menu":"学生管理"},{"child":[{"appFrontIcon":"cuIcon-vip","buttons":["新增","查看","修正","删除"],"menu":"班级","menuJump":"列表","tableName":"banji"}],"menu":"班级管理"},{"child":[{"appFrontIcon":"cuIcon-pic","buttons":["新增","查看","修正","删除","宿舍评分"],"menu":"宿舍信息","menuJump":"列表","tableName":"sushexinxi"}],"menu":"宿舍信息管理"},{"child":[{"appFrontIcon":"cuIcon-pay","buttons":["查看","修正","删除"],"menu":"维修登记","menuJump":"列表","tableName":"weixiudengji"}],"menu":"维修登记管理"},{"child":[{"appFrontIcon":"cuIcon-form","buttons":["查看","修正","删除","报表"],"menu":"宿舍评分","menuJump":"列表","tableName":"sushepingfen"}],"menu":"宿舍评分管理"},{"child":[{"appFrontIcon":"cuIcon-rank","buttons":["查看","修正","删除"],"menu":"学生评分","menuJump":"列表","tableName":"xueshengpingfen"}],"menu":"学生评分管理"},{"child":[{"appFrontIcon":"cuIcon-camera","buttons":["新增","查看","修正","删除"],"menu":"来访登记","menuJump":"列表","tableName":"laifangdengji"}],"menu":"来访登记管理"},{"child":[{"appFrontIcon":"cuIcon-news","buttons":["新增","查看","修正","删除"],"menu":"公告信息","tableName":"news"}],"menu":"系统管理"}],"frontMenu":[],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"否","hasFrontRegister":"否","roleName":"管理员","tableName":"users"},{"backMenu":[{"child":[{"appFrontIcon":"cuIcon-pic","buttons":["查看","维修登记"],"menu":"宿舍信息","menuJump":"列表","tableName":"sushexinxi"}],"menu":"宿舍信息管理"},{"child":[{"appFrontIcon":"cuIcon-pay","buttons":["查看","删除"],"menu":"维修登记","menuJump":"列表","tableName":"weixiudengji"}],"menu":"维修登记管理"},{"child":[{"appFrontIcon":"cuIcon-form","buttons":["查看","删除","报表"],"menu":"宿舍评分","menuJump":"列表","tableName":"sushepingfen"}],"menu":"宿舍评分管理"},{"child":[{"appFrontIcon":"cuIcon-rank","buttons":["查看","删除"],"menu":"学生评分","menuJump":"列表","tableName":"xueshengpingfen"}],"menu":"学生评分管理"},{"child":[{"appFrontIcon":"cuIcon-camera","buttons":["查看"],"menu":"来访登记","menuJump":"列表","tableName":"laifangdengji"}],"menu":"来访登记管理"},{"child":[{"appFrontIcon":"cuIcon-news","buttons":["查看"],"menu":"公告信息","tableName":"news"}],"menu":"系统管理"}],"frontMenu":[],"hasBackLogin":"是","hasBackRegister":"否","hasFrontLogin":"否","hasFrontRegister":"否","roleName":"学生","tableName":"xuesheng"}];var hasMessage = '';声明

本博客适用于广泛的学术和教诲用场,包括但不限于个人学习、开拓设计,产品设计。
仅供学习参考,旨在为读者供应深入理解和学术研究的材料。

java系统设计,毕设辅导