本科学士毕业论文
基于 Java Web 的智能二维码门禁管理系统的设计与实现
- 姓 名: 刘臻
- 学 号: 20151104689
- 院 系:计算机科学技术学院
- 年 级: 2015 级
- 专 业: 计算机科学与技术
- 指导教师: 朝力萌
摘要 我们身边的很多事物都已悄然接入互联网,由此本文提出基于 Java Web 和微信小程序的一套门禁系统的设计。设计是由 SSM(Spring-springMVC-Mybatis)框架构建成的 n 层架构二维码门禁管理系统,使用 MySQL 作为数据库,Eclipse 平台进行后端开发,微信 Web 开发者工具对小程序页面进行开发。
关键词 :微信小程序;门禁系统;SSM 框架;二维码
一、引言
一般门禁系统使用 RFID 卡或指纹、人脸识别等生物身份识别技术方法对用户身份的识别。RFID 卡容易丢失,卡片成本高且通用性低,生物身份识别技术存在识别率低,识别设备昂贵等缺点。智能 手机现已成为人们生活中必不可少的一部分,作为生活中信息的主要载体,日常生活中的一些功能都可以通过智能手机来实现。智能二维码门禁系统是基于物联网和动态二维码技术开发的门禁系统,通过微信小程序生成动态二维码,对持码用户微信小程序二维码扫描进行身份验证,进而根据用户权限实现相应授权门禁、实验室设备开启等工作。具有不需安装专门 APP、安卓和 iOS 系统兼容、安全可靠性高、授权灵活等诸多优点。
二、系统需求分析
基于对智能手机现阶段普及度的认知,结合门禁系统实际情况,设计了一套智能二维码门禁系统。系统主要用于后端管理,致力于简化需要随身携带的必要物件,将现代技术更加广泛的应用到日常生活中去。
系统用户主要为实验室学生、实验室管理员与后台管理员等三大角色。学生部分需要的功能有:个人信息录入提交审核,门禁资源申请,以及个人信息审核通过之后生成的二维码扫描开启门锁。实验室管理员主要的职责是审核学生提交审核的个人信息,授予用户申请的对应门禁资源的权限等。后台管理员职责是对后台进行管理,查看所有用户的信息,对用户状态、信息进行管理,其中包括用户实验室管理员用户的权限分配,数据库的定期维护、导出维护等。
三、系统设计
3.1 功能概述
智能二维码门禁系统主要由软件和硬件部分组成,其中软件部分包括 Java 后端部分与微信小程序部分,硬件部分包括联网二维码扫描器、服务器以及监狱门锁,使用由 Java 后端提供的接口。在 Eclipse 平台上完成 Java 后端开发实现,后端采用了 MAVEN+SSM 框架,在微信官方开发者平台上对小程序进行开发。Java 后端主要功能是对资源进行管理,用户间依据角色权限不同进入不同的页面,管理员进入页面之后可以在页面对相应的数据进行修改、增加、删除以及模询等操作。普通用户进入主页面之后可以查看网站统计图表,以及对自己的个人信息进行查看、管理和修改。微信小程序可以生成二维码,之后可在二维码扫描器前扫码开启门锁。
主要功能:
- 统计信息表:通过图表对网站统计公开数据查看
- 用户信息:登入后对自己信息进行查看并进行相应的管理操作
- 实验室管理:管理员审核用户申请,对机房列表进行管理操作
- 系统结构如图 1 所示。
- 图 1 基于 Java Web 的智能二维码门禁管理系统总功能结构图
3.2 维码门禁系统后台
3.2.1 用户信息录入模块
由于后台管理系统需要微信 Id 这样特殊的属性,因而后台系统不设置注册功能。普通用户如想通过后台的管理系统登陆,首先需要通过微信小程序端绑定自己的学号/教工号以及姓名,登入的密码默认为学号/教工号,登入之后可以进行相应的操作。
3.2.2 用户登录模块
后台用户登录使用与前台用户不同的用户数据库,主要是为了区别前端与后端的用户作用。页面使用 bootstrap 模板,对模板进行功能的修改,应用于自己的系统之中。[1]
3.2.3 信息统计
数据库中添加了对登录次数的统计,每有一个用户登录就会自增一次,统计信息用以在主页上显示图表,以一种更友好更直观的方式展示给用户,后期如果有其他可以公开调查统计的结果,可以直接使用此图表的模板展示。微信获取用户的隐私信息需要额外授权,为了对用户的个人隐私进行保护,遂不统计涉及到用户隐私的内容。除了姓名之外,并未获取到微信端用户可以以图表形式展现的数据,所以统计用户登录次数来进行图表展示。
3.2.4 用户信息管理模块
登陆后跳转到相应的界面,用户可以修改自己的登陆密码。用户输入旧密码和两次新密码之后,js 会先验证两次新密码输入是否一致,如果不一致,则把 button 的 disable 属性设为 true,反之则设置成 false。点击提交之后使用 AJAX 技术首先进入数据库中查询对应的用户名密码,如果查询成功,则返回成功信息并更新页面;如果失败,则返回失败信息。
3.2.5 门禁管理模块
以管理员身份登入后台页面,而后对实验室的信息进行一系列的增删改操作。门禁信息包括实验室 ID、实验室名称和实验室编号,管理员进入实验室资源管理页面后,可对实验室门禁资源进行基本的增删改查。ID 用于后台验证当前用户是否有通过此门的权限。
3.3 维码门禁系统小程序的设计
3.3.1 小程序功能部分简介
小程序使用了微信 Web 开发者工具,开发微信小程序使用的语言为 WXML、WXSS、JS、JSON,其中 WXML 类似 HTML 语言,WXSS 与 CSS 作用几乎一样,只是在 HTML 和 CSS 基础上对语言结构稍有改变,大体上还是保留着原来的用法相差不多。一个规范的页面里包括四个文件,上边介绍过的四种语言即为文件拓展名,其中 WXML 就是小程序前端显示给用户的页面,WXSS 就是页面样式设置,JS 作用就是管理当前页面的逻辑,JSON 主要是对数据进行操作,用来传递数据。根目录下的带有.app 的文件为全局配置文件,如果子目录下的样式等未进行配置,默认会使用根目录下.app 后缀,同一目录下的文件名必须一致,比如 helloworld.wxml 对应的 wxss 文件必须为 helloworld.wxss,此举也是为了减少开发者需要进行的配置,减少项目复杂程度。主页显示的内容为二维码,逻辑上右边的页面为门禁系统申请,用户信息页面。
3.3.2 维码页面
小程序二维码作为智能二维码门禁系统中最主要的部分,二维码需要通过二维码扫描器读取二维码中的字符串,使用服务器接口调用数据库进行数据比对,验证信息之后进行接下来的操作。
3.3.3 用户权限管理
进入小程序之后,用户可以在可用资源界面中查看自己可以申请的门禁,在已获得权限的页面查看自己已经可以通过的门禁。使用中用户首先需要申请实验室门禁的权限,待管理员审核通过之后即获得申请的门禁的权限。[2]
3.4 数据库分析
本系统使用 MySQL 作为数据库,所有模块都需要操作数据库。共建立五张表:门禁用户表、后端用户表、门禁资源列表、用户门禁权限表、门禁记录表。
3.4.1 数据库设计
- 门禁用户表 dm_user 如表 3.1 所示[3]
表 3.1 dm_user 表
- 后端用户表 dm_manager 如表 3.2 所示
表 3.2 dm_manager 表
- 门禁资源表 dm_room 如表 3.3 所示
表 3.3 dm_room 表
- 门禁用户权限表 dm_user_room 如表 3.4 所示
表 3.4 dm_user_room 表
- 门禁记录表 dm_record 如表 3.5 所示
表 3.5 dm_record 表
3.4.2 数据库 E-R 图
图 3.1 后台管理系统 E-R 图
四、关键技术实现
智能二维码门禁系统使用 Java 语言开发,工具为 Eclipse,为当前时下最流行的 Java 编程工具之一,以其强大的拓展性为人所熟知。小程序前端使用微信 Web 开发者工具进行开发。采用腾讯云主机进行 Tomcat 服务器的搭建,申请了 graduationprogram.cn 的域名,在内蒙古进行域名备案,在域名备案审核通过之绑定至腾讯云主机 ip 地址,通过 Eclipse 将源代码导出到 WAR 文件, 复制到之前在腾讯云搭好的服务器中, 在部署的服务器 webapp 中放入项目。修改服务配置文件, 将相关参数修改,绑定之后便实现了后台网站的云搭建,通过微信提供的 API 调用后台接口操作数据库即可实现前后端通信。[4]
图 4.1 系统运行环境
4.1 小程序录入用户
在微信小程序中首次打开小程序需要用户授权正常使用小程序所需要的权限。绑定用户信息页面包括学工号/教工号与姓名,学工号/教工号作为将来数据库中唯一标识用户的信息需要用户真实填写,所以对 input 输入框增加了必须为 11 位数字的限制。点击提交按钮会先通过 wx.login()获取一个 code,成功获取之后调用 wx.request()发送一个请求到服务器,即向登录 API 发送 code,换取微信中的 openid 和 sessionkey。最后获取到的 id 就可以和学号/教工号、姓名一并存入数据库当中了。
4.2 维码验证流程
在小程序读取时通过小程序 wx.request 中 url 向后端服务器接口发起请求,请求成功之后在数据库放入一份生成字符串并传一段字符串回微信小程序中,在微信小程序页面的图片容器中根据字符串绘制二维码图片。生成二维码之后在二维码读头前扫描二维码,读头读取二维码中的字符串后将字符串通过服务器后端接口上传与数据库中生成的字符串进行比对,如果比对结果一致,则可以进行接下来的动作。
4.3 后台登录
登陆页面使用 bootstrap 模板进行二次开发,页面中使用了常用的前端开发技术。用户登录,首先使用 form 表单中 action 的“#”将用户名密码值通过 button 按钮提交给本页,在不需要跳转其他页面的情况下刷新页面并且通过 AJAX 访问数据库查验用户名密码的真实性,这样既保证对数据库占用的最小化,又保证了用户访问页面的友好性。如果输入数据库中查询不到相应的信息,则返回错误,如果用户信息验证正确无误,则定位到主页中并放行。
4.4 硬件实现
用户由微信小程序二维码页面向服务器发送请求,请求一串字符串返回至小程序页面并绘制为二维码,之后由二维码门禁扫描器读取二维码字符串信息,将字符串上传服务器接口进行用户身份权限验证,验证成功之后向控制器发送指令,通过网络远程控制硬件设备进行开门操作。
五、总结
本文对智能二维码门禁管理系统的需求进行分析,并对总体设计与实现进行了阐述。开发实现智能二维码门禁系统的过程中学习使用了各种技术,在上手本项目之前并未想过能开发一个流程如此复杂的系统,需要对后台进行访问,访问到数据之后对数据进行处理,返回处理过之后的数据,并在硬件端实现相应的操作。虽然最终实现了需要的功能,但是过程中还是有一些不尽如人意的地方,希望以后可以避免类似的情况。总结从本次开发过程中吸取到的教训,积累下次开发的经验。
时光荏苒,日月如梭,转眼间,我在内蒙古师范大学的学习生涯已经结束。
感谢我的导师朝力萌,朝力萌老师在我大学四年中不仅在学业中给予了我许多指导,更是在人生道路上给予我启迪。朝力萌老师总是主动帮助我解决我学业上的的问题,提出解决方案,是我人生道路上的灯塔,为我照亮前方的路,为我指点迷津,答疑解惑。
- 感谢昭耐老师在技术上对我提供的支持与帮助,让我得以顺利完成该项目。
- 感谢父母默默的付出,培养我二十余载,我将用优异的成绩和今后的所作所为来回报他们。
- 感谢我的室友和同学们,给予我诸多陪伴,默默支持着我,做我坚强的后盾。
六、参考文献
- 黄琳,林国钦.基于 Java Web 的宠物店管理系统的设计.桂林理工大学信息学院
- Bruce Eckel 计算机科学丛书:Java 编程思想(第 4 版) 机械工业出版社
- 赵璞.基于 JavaWeb 的汽车后市场信息搜索系统的设计与实现.中国地质大学,2017
- 秦保成.基于 Java Web 的就业信息管理系统设计与实现.大连理工大学,2018
参考文献
- 基于J2EE架构的超市综合管理信息系统(电子科技大学·尹伟伟)
- 智慧门禁(居所出入)系统的设计与实现(江西财经大学·许敏)
- 基于J2EE架构的超市综合管理信息系统(电子科技大学·尹伟伟)
- 智能云门禁系统的设计与实现(南昌大学·付志梅)
- 基于加密二维码的智能手机酒店门禁管理系统开发与设计(太原科技大学·黄勇)
- 智能云门禁系统的设计与实现(南昌大学·付志梅)
- 基于Struts架构的J2EE教学管理系统(电子科技大学·王春)
- 基于Android系统的校园安全门禁系统的设计与实现(湖北工业大学·金松)
- 基于J2EE架构的超市综合管理信息系统(电子科技大学·尹伟伟)
- 智能云门禁系统的设计与实现(南昌大学·付志梅)
- 基于J2EE架构的智能化小区管理系统的设计与实现(电子科技大学·王越)
- 政府物业管理系统的设计与实现(电子科技大学·郭新玉)
- 基于J2EE架构的智能化小区管理系统的设计与实现(电子科技大学·王越)
- 智慧门禁(居所出入)系统的设计与实现(江西财经大学·许敏)
- 基于Struts架构的J2EE教学管理系统(电子科技大学·王春)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计工坊 ,原文地址:https://bishedaima.com/yuanma/35668.html