分类号:TP311
单位代码:
学士学位毕业设计(论文)
基于javaweb的校园宿舍管理系
姓 名 XXXX 学 号 年 级 专 业 软件工程 系(院) XXX 指导教师
2016年 3月
统
BASED JAVAWEB CAMPUS DORMITIORY MANAGEMENT
SYSTEM
by
XXX
Supervisor: XXX
March 2016
诚 信 声 明
本人呈交给临沂师范学院的这篇毕业论文,除了所注参考文献和世所公认的文献外,全部是本人在指导老师指导下的设计成果。
学生签名: 日 期:
经检查该毕业设计(论文)为独立完成,不存在抄袭现象。
指导老师签名: 日 期:
基于JavaWeb校园宿舍管理系统
摘 要
宿舍管理是学校管理工作中重要的一环,尤其是大学宿舍,随着计算机技术的普及和市场上相应的管理技术的成熟,现在有条件利用相关技术为学校设计一款相应的管理软件,以简化学校日常管理的流程,为师生提供周到的服务。
开发的系统依据实际需求,从宿管和学生的角度进行考虑,在满足现有的需求之外,还添加一些其他的功能,例如,快件领取功能,离校管理功能,发布公告功能等。本系统是一款B/S架构的Web系统,在开发模式上选择目前最流行的SpringMVC,主要使用JSP技术和数据库技术来实现。
在开发之初,将用户体验放在首位,界面设计本着简洁大方,易于操作的理念,设计出来的效果能达到用户的需求。
关键词:宿舍管理;B/S架构;用户体验;SpringMVC
基于JavaWeb校园宿舍管理系统
Abstract
Dormitory management is an important part of the school management, especially in college dorms, with the popularization of computer technology on the market and the corresponding management technology matures, now conditional use of relevant technology for schools to design a corresponding management software to simplify the daily management of the school process for students and teachers to provide good service.
Systems developed in accordance with the actual needs, from the perspective of the student and housemaster consideration, to meet the existing management processes, but also add some others services, such as express mail receive functions. This system is a B / S structure of the Web system, in the development of the mode selection of the most popular SpringMVC, the main use of JSP technology and database technology.
In the early stage of development, will give top priority to the user experience, interface design in a simple and elegant, easy to operate concept, designed to achieve the effect of the user's needs.
Key Words:Dormitory management;B / S structure;User Experience;SpringMVC
基于JavaWeb校园宿舍管理系统
目 录
前 言 .................................................................. 1 第1章 绪论 ............................................................. 2 1.1 课题研究的背景 ................................................... 2 1.2开发的意义 ........................................................ 2 1.3本文研究内容 ...................................................... 2 1.4 文档结构图 ....................................................... 3 第2章 系统分析 ......................................................... 4 2.1 系统功能需求 ..................................................... 4 2.2 系统开发功能 ..................................................... 4 2.3 可行性分析 ....................................................... 4 2.3.1 经济可行性 .................................................. 4 2.3.2 技术可行性 .................................................. 5 2.3.3 法律可行性 .................................................. 5 2.3.4管理员用例图 ................................................. 5 2.3.5学生用例图 ................................................... 6 2.4 业务流程 ......................................................... 6 第3章 总体设计 ......................................................... 9 3.1 功能划分 ......................................................... 9 3.1.1 管理员功能模块 .............................................. 9 3.1.2 学生功能模块 ............................................... 10 3.2 数据流图 ........................................................ 11 3.2.1 管理员数据流图 ............................................. 11 3.2.2 学生数据流图 ............................................... 12 3.3 ER图 ............................................................ 13 3.3.1 管理员ER图 ................................................ 13 3.3.2 学生ER图 .................................................. 14 第4章 详细设计 ........................................................ 15 4.1 SQL SERVER数据库的介绍 .......................................... 15 4.2 数据库的设计 .................................................... 15 第5章 系统实现 ........................................................ 18 5.1 开发平台和技术介绍 .............................................. 18 5.2 登录功能 .................................................................................................................. 19
基于JavaWeb校园宿舍管理系统
5.3 管理员 .......................................................... 20 5.3.1 添加用户界面 ................................................ 21 5.3.2 添加学生 .................................................... 22 5.3.3 宿舍管理 .................................................... 23 5.3.4 寝室评分 .................................................... 23 5.3.5 夜归管理 .................................................... 25 5.3.6 离校记录 .................................................... 27 5.3.7 快件管理 .................................................... 29 5.4 学生 ............................................................. 30
5.4.1 修改密码 .................................................... 30 5.4.2 我的夜归记录 ................................................ 32 5.4.3 报修申请 ....................................................................................................................... 33
第6章 综合测试 ............................................................ 35
6.1 软件测试的目标 ..................................................... 35 6.2 软件测试的准则 ..................................................... 35 6.3 软件测试的方法 ..................................................... 35 6.4 系统用例测试 ....................................................... 36
6.4.1 登录用户名用例测试 ............................................ 36 6.4.2 测试密码登陆 .................................................. 36 6.4.3 增加用户用例表 ................................................ 36
结 论 ..................................................................... 38 参考文献 ................................................................... 39 谢 辞 ..................................................................... 40
基于JavaWeb校园宿舍管理系统
前 言
宿舍几乎是每个学子在求学的经历中,必不可少的生活场所。在进入大学后,学生们几乎都要住宿了,但是现在有些学校宿舍的管理远不能满足师生的住宿需求,尤其是管理上的滞后性,虽然有些高等院校采取了电子化的管理方式,当时管理的模式还是沿用原来的方式,在管理方式上没有创新。在当下,需要利用当代的计算机科学技术,为宿舍管理助力,改进管理方式。例如在以前的管理软件上,大多只有学生和宿舍的相关信息,没有快递、晚归、离校等学生信息,这些多半是靠人力来等级完成的,在管理和统计上,存在诸多的问题,这对于建设信息化校园极为不方便。基于这样的需求,笔者结合实际需求,在原有的宿舍管理基础上,进行了创新,添加了许多贴近实际需求的功能,对于方便宿舍的管理和师生的生活做出了贡献。
开发的基于JavaWeb的校园宿舍管理系统是一款B/S(browse/Server)架构的web系统。系统按照调研的结果,可以分为两种角色,管理员和学生。管理员是宿舍的管理员担任,主要的工作是对学生的信息录入,快件收取,离校登记,和报修管理等组成,该角色拥有系统最高的权限。此外,另一种角色是学生,学生可以报修,查看和自己相关的信息和公告等。系统使用最新的SpringMVC技术开发,该技术在企业开发中收到广泛的推崇,不仅是由于其核心开发语言Java在近几年蝉联了世界编程语言排行榜榜首的位置,更是由于这种开发模式在技术上,相对于以前,在客户体验和响应上,都具有良好的性能。本系统开发采用软件工程要求的软件开发的标准模式,先进行需求分析,可行性分析,系统设计,详细设计和软件测试组成。在功能上力争做全面。
1
基于JavaWeb校园宿舍管理系统
第1章 绪论
1.1 课题研究的背景
在当下的时代,信息充斥着人们的整个生活,不管是什么职业和行业都离不开信息。而这些信息传播的媒介就是手机和计算机。在处理信息方面,计算机相对于手机而言,它有着巨大的优势,它有着强大的编辑和处理信息的功能。使用计算机对信息进行管理,一方面提升了工作的效率,另一方面也确保了信息的安全性。而本系统就是利用计算机去设计校园宿舍管理系统,设计的目的就是为了更好的对学生的宿舍信息进行管理。
宿舍作为学生睡觉休息的地方,大量的信息都需要进行管理。根据调查,现在大部分的学校对宿舍的信息处理都停留在纸质方面的手工处理。但是由于需要处理的信息非常多,这就导致在处理信息的时候必然会出现许多错误,并且会浪费大量的时间,也容易导致很多信息丢失,不便于宿舍管理员对信息进行管理。基于上面的这些问题,所以非常的有必要建立一个校园宿舍管理系统,这样可以使宿舍管理工作规范化,才能更高效的处理好宿舍信息。保证信息的安全高效的处理,从而更好的保护学生的个人信息,学生的个人安全才能得到保障。随着时代的发展,计算机已经普及到各个角落,使用计算机管理校园宿舍的信息,势必成为大时代下的趋势,校园宿舍管理系统将来也会被更多学校接受。
1.2开发的意义
基于JavaWeb的校园宿舍管理系统,在系统的调研之处,都是由笔者自主完成的,整个系统将在学校试运行,为宿舍的管理和师生的生活做出贡献。在开发这个系统的时候使笔者对于软件开发的整体流程有一个更深层次的认知,为将来布上软件开发这个行业奠定基础。开发出来的软件可能在功能上还不够完善,但是这是一次由笔者独立自主完成一个项目的经历,是将书本上的理论转化为实际应用软件的过程。对于笔者而言,在开发软件的过程中,即提高了编写代码的能力,更提升了将实际问题模块化分析,用抽象的方式实现的能力,在调研的过程中,更是提升了笔者与人沟通的能力,在编写整个系统文档的过程中,对于如何编写一个合格的论文和技术文档有了更深的理解和感悟。
1.3本文研究内容
本系统的主要目的就是开发一个基于Java Web的校园宿舍管系统,让宿舍管理员可以高效的处理宿舍的信息内容。它是一款B/S(browse/Server)架构的web系统,它的要求就是技术要先进,主要实现对宿舍管理员和学生的信息进行一系列的处理,它的主要工作是对学生的信息录入,快件收取,离校登记,和报修管理等信息进行处理。主页面非常简洁,并且容易上手操作,管理员可以通过登陆功能,进入主页面对每一个功能模块进行操作。
它的主要功能模块有以下几点:
1.添加学生。它主要是对学生信息的采集,主要信息包括学生的姓名、学号、性别、电话以及专业等。
2
基于JavaWeb校园宿舍管理系统
2.宿舍管理。它主要对学生用户的管理,主要是对学生信息进行查看,以及修改和删除。
3.寝室评分。为管理员对宿舍检查的情况,进行打分。 4夜归管理。记录学生晚上回宿舍的情况。
5.离校记录。页面里主要有创建新的离校记录,查看和修改操作。
6.快件管理。在这个界面上,可以对从快递员哪里接受学生的快件,代收,在填写完快件信息后,保存在数据库中,此时,这快件的状态为未领用,学生在自己的界面上,“领用”该快件后,就可以修改这个快件记录的状态,这个是通过一个状态位来标识的,一般的是用0和1来标识。
1.4 文档结构
第一章 绪论,介绍了课题的来源及研究的意义。
第二章 系统分析,介绍了系统的功能需求,系统开发的功能、可行性分析和业务流程
第三章 总体设计,系统功能划分,数据流图,开发技术和平台和系统ER图 第四章 详细设计,数据库的建立和系统的用例图。 第五章 系统实现,界面设计和代码设计。 第六章 综合测试,对开发出来的软件进行测试。
3
基于JavaWeb校园宿舍管理系统
第2章 系统分析
2.1 系统功能需求
本系统的设计目的是为了更好的为师生服务,系统的功能要涵盖日常宿舍管理的所有流程,为了使软件的受众扩大,可以设置不同角色的权限,每个用户都有自己的宿舍信息等,在设计的时候。现在网上购物成为一种时尚,大学生更是网购的主力军,如果快递员频繁的进出宿舍,对于宿舍的管理极为不方便,因此要添加领用快递的功能,即使的将快件信息推送给对应的收件方;此外,宿管对学生的晚归和放假登记等,都是通过手写的方式,这样不便于记录,效率低下,且容易丢失,使用电子登记的方式显得尤为重要。
系统实现的主要功能是宿舍管理员对各个模块的管理,其中有用户管理、信息管理、离校记录等。
另一个功能则是学生的模块功能,包括系统信息、账户管理。保修记录、我的离校记录等是这个模块的主要功能。
2.2 系统开发功能
系统中主要可以实现管理员和学生对系统的操作。 管理员:
管理员在这个系统中有最高的权限,学生信息和对系统的业务等管理是管理员在这个系统中的最高权限。
1. 用户管理
主要包括对系统的管理员的管理,学生信息的管理。 2. 宿舍管理
包括寝室管理,宿舍评分,保修查询和管理,夜归管理等。 3. 系统管理
包括系统公告管理和公告的发布。 学生:
学生在系统中只具有一部分权限,可以查看和自己相关的宿舍信息和保修信息等。 1. 系统信息
主要实现保修申请、快件、公告等信息。 2. 账户管理
主要实现对用户账户信息和密码的修改。
2.3 可行性分析
2.3.1 经济可行性
经济可行性主要研究的是在开发一款软件的时候,需要耗费的人力和物力是否在先期
4
基于JavaWeb校园宿舍管理系统
预定的预算之内。本次开发,所使用的软件由于非商业用途,所以都是免费的,开发软件所需的环境,都可以在本地PC上搭建,不需要购置额外的硬件,在人力开销上,主要的开发人员是笔者自己,所以,综合分析,该款软件在经济上是可行的。 2.3.2 技术可行性
技术可行性研究的是开发软件所需的技术是否在开发者自身的能力和掌握的知识范围内。这款系统使用的SpringMVC开发模式,这款技术虽然较新,但是在网络上都有相应的范例供参考,利用到的网页前端技术和数据库技术都是在学校教授的,在使用的时候,查阅相关的文献和数据,没有问题。在实际开发的过程中,遇到问题也可以向周围的老师和同学求助,综上技术上可行。 2.3.3 法律可行性
法律可行性研究的是开发的软件对国家和他人的安全是否会造成伤害。该软件开发的目的是为了改善学校宿舍管理方式,不会造成信息泄露和造成其它的伤害,再开发的过程中,也遵守相关法律法规。所以,该软件在法律上是可行的。 2.3.4管理员用例图
系统用户管理< 图2-1,系统管理员的用例图,管理的用例有系统管理,寝室管理和信息管理。系统管理可以拓展为用户管理和学生管理;寝室管理可以拓展为宿舍楼管理,寝室管理,寝室添加,寝室评分,报修查询,夜归管理和离校管理。信息管理可以拓展为系统公告管理,系统公告发布。 5 基于JavaWeb校园宿舍管理系统 2.3.5学生用例图 图2-2所示,学生的用例图,学生的用例有系统信息和账户信息两个用例。账户用例可以拓展为修改密码,账户信息和修改信息。系统信息可以拓展为保修申请,我的报修记录,我的离校记录,我的夜归记录,我的快件和系统公告。 系统< 2.4 业务流程 系统的功能是通过深入调查开发的,它主要是满足用户的要求。 6 基于JavaWeb校园宿舍管理系统 宿管登入系统用户信息宿舍评分分数学生信息学生登入查看评分业务完成图2-3 评分流程图 1.宿舍评分流程 如图2-3所示,在为学生宿舍进行评分的时候,用户成功登入系统后会相应的获取学生的信息,依据查宿舍的情况进行评分,对应到宿舍信息,相关的同学在登入这个系统,就可查看到查宿的情况,其它人没有权限查看。 2.快件管理业务流程 宿管收到快件更新录入快件信息快件状态,快件信息等学生快件信息修改快件状态学生信息业务完成修改快件领用状态领用日期等信息领用快件图 2-4 快件管理业务流程 如图2-4所示,为快件管理业务流程图,在图中,当有快递员送来快递的时候,宿管进行接收,在系统里面录入收件人的信息,在系统中产生一条快件信息,学生在登入自己的系统的时候,就可以查看到自己的快件信息,在自己的界面领用快件,系统自动的修改快件状态,这个快件领用流程就完成。 3.用户登录业务流程 如图2-5所示,这是一个用户成功登陆的页面。用户进入首页之后,完成对信息的正确填写,就可以进入能够操作的页面,就可以完成登陆。 7 基于JavaWeb校园宿舍管理系统 进入系统首页键入用户信息键入的信息验证码输入错误选择用户类型用户类型进入相应进入验证用户输入验证的系统完毕业务完成 信息验证码、用码户信息和用户类型2-5 用户登录业务 8 图 基于JavaWeb校园宿舍管理系统 第3章 总体设计 3.1 功能划分 本系统主要可以实现两个功能模块,一个是管理员功能模块,另一个则是学生模块。管理员可以实现的具体功能是宿舍管理,信息管理。而学生只有对账户的管理和对系统信息的处理权限。如图3-1所示。 宿舍管理系统管理员学生宿舍管理信息管理用户管理系统信息账户管理图 3-1 系统层次图 3.1.1 管理员功能模块 对系统的业务和学生信息等进行管理是管理员在校园宿舍管理系统中的最高权限。主要包括对系统的管理员的管理,学生信息的管理。 1. 系统管理 (1) 用户管理 包括对系统的管理者进行管理。 (2) 学生管理 包括对学生信息的增加,修改删除和查看的操作。 2. 寝室管理 (1) 宿舍楼管理 添加和修改宿舍楼的信息。 (2) 寝室管理 删除,修改和查看寝室的详细信息。 (3) 添加寝室 编辑寝室信息添加到对应的宿舍楼信息下。 (4) 寝室评分 可以录入寝室检查卫生和纪律的评分等信息。 9 基于JavaWeb校园宿舍管理系统 (5) 寝室评分记录 查看寝室评分的详细记录。 (6) 保修查询 查看学生的保修情况,并做处理。 (7) 夜归管理 编辑学生夜归的信息。 (8) 离校登记 登记学生的离校时间等信息。 (9) 快件管理 管理员录入快件信息到系统。 3. 信息管理 (1) 系统公告管理 管理系统已有的公告。 (2) 发布公告 添加新的公告到系统中。 管理员系统管理寝室管理信息管理用户管理学生管理宿舍楼管理寝室管理添加寝室寝室评分寝室评分记录保修查询夜归管理离校记录快件管理系统公告管理发布公告图 3-2 管理员功能模块图 3.1.2 学生功能模块 如图3.3所示,学生的操作有系统管理和账户管理。 1. 系统管理 (1) 保修申请 可以提交需要保修的内容到管理员界面。 (2) 我的保修申请 查看自己的保修申请 (3) 我的离校记录 10 基于JavaWeb校园宿舍管理系统 查看自己的离校记录 (4) 我的夜归记录 查看自己的夜归记录。 (5) 我的快件信息 查看是否有自己的快件 (6) 系统公告 查看管理员是否发布了公告,发布了什么样的公告。 2. 账户管理 (1) 账户信息 方便查看用户个人信息。 (2) 修改信息 方便修改用户信息。 (3) 修改密码 出于系统安全的考虑,用户可以随时修改密码。 学生系统信息账户管理保修申请我我我我的的的的系账保离夜快统户修校归件公信记记记信告息录录录息图 3-3 学生功能模块图 修改信息修改密码 3.2 数据流图 数据流图,简称DFD,这是用户在操作的时候,会有数据的流向,然后显示了不同的操作,因此产生的不同数据。 3.2.1 管理员数据流图 图3-4所示,是管理员的数据流图,首先,管理员在界面登入系统中,在登陆的时候产生会产生用户信息的数据流,管理员登陆系统后,有公告管理,评分管理,快件管理,离校管理,账户管理等可供选择。公告管理的主要操作有查看现有的公告,添加新的公告,主要操作的是系统的公告表,将产生的数据都保存在里面;评分管理,可以录入评分和查 11 基于JavaWeb校园宿舍管理系统 看已有的评分,操作的是学生表和评分表;快件管理,宿管录入快件信息到快件表中,快件表关联学生表;离校管理,宿管将学生的离校信息保存到离校表中,关联学生表。账户管理,主要的操作有修改密码和个人信息等操作,这些操作的数据流都保存在管理员数据表中。 开始管理员公告数据表查看,编辑和删除公告信息输入用户名、密码选择用户类型登入系统公告管理选择选择选择选择学生信息评分管理表,评分表快件管理离校管理账户管理录入评分评分查看快件录入录入离校信息离校信息表,学生信息表修改密码、管理后台用户录入查看宿舍的分值评分数据表快件表,学生表管理员数据表 图3-4 管理员数据流图 3.2.2 学生数据流图 3-5所示,为学生的数据流图,在进入时读取学生表的信息,验证输入的信息是否正确,进入新后,可以选择的操作有保修管理;查看操作;和个人信息管理;报修管理主要是查看自己的保修记录和录入报修信息,操作的是报修的数据表;学生的查看操作有查看离校记录和快件信息等,分别是离校记录表和快件信息表;信息管理有查看自己的个人信息,修改自己的个人信息和修改密码,数据的写入和读取都是操作的学生信息表。 12 基于JavaWeb校园宿舍管理系统 开始学生数据表学生输入用户名、密码选择用户类型登入系统选择选择选择保修信息表保修管理查看个人信息管理录入表现信息查看保修信息离校记录快件信息账户信息修改信息修改密码编辑保修的内容保修信息表填写商品销售的详细信息单离校记录表快件信息表学生数据表图3-5 学生数据流图 图 3-6 修改密码流程图 图3-6是学生登陆系统修改密码的流程图,首先需要填写正确的账号和密码,成功进入系统之后,填写新的密码,并且需要二次验证,当两次密码一样时,便可以成功修改密码。 3.3 ER图 3.3.1 管理员ER图 如图3-7所示,是本软件的ER图,管理员和学生、快递、报修等实体之间存在关联(relationship)。管理员的属性有用户名,密码,创建时间,登录次数,邮箱和电话。管理 13 基于JavaWeb校园宿舍管理系统 员可以管理多个学生,他们之间的关系是1:N,管理员也可以管理学生的保修,他们之间的关系是1:N,也可以代收快递。学生的属性有ID,学号,姓名,班级,宿舍号等;快递的属性有代收时间,ID,代收人,所属人,类型和状态;保修实体的属性有,ID,报修人,描述,报修时间,宿舍号,和楼号。 用户名密码创建时间登陆次数邮箱电话ID学号姓名班级宿舍号11管理员ID报修人描述学生N管理代收1管理N报修报修时间宿舍号楼号领取1快递代收时间ID代收人所属人类型状态 图 3-7 管理员ER图 3.3.2 学生ER图 如图3-8所示,为学生的ER图,学生的属性有ID,学号,姓名,班级,和宿舍号等,学生和夜归实体,寝室评分和保修实体等之间存在关联。一个学生可以查看和自己相关的夜归记录,之间的关系为1:1;学生可以查看自己宿舍的寝室评分,他们之间的关联为1:1,学生可以录入保修信息,他们之间的关系为1:1。夜归实体的属性有ID,记录人,姓名,日期,类型和描述;寝室评分实体的属性有ID,打分,楼号,打分时间,打分人和寝室号;保修实体的属性有报修人,保修内容,保修时间,楼号和宿舍号等。 ID学号姓名班级宿舍号1ID登记人学生报修人1报修内容姓名夜归日期类型1查看查看1录入1报修1报修时间楼号宿舍号描述寝室评分ID打分楼号打分时间打分人寝室号 图3-8 学生实体ER图 14 基于JavaWeb校园宿舍管理系统 第4章 详细设计 4.1 SQL SERVER数据库的介绍 SQL server数据库是微软的一款商业数据库,主要的服务对象是企业用户和部分中小型用户,此外,在学校的日常教学过程中,也得到了广泛的使用。其和Windows操作系统有良好的兼容性,此外,市场上微软的IDE,例如Visual Studio等,对于SQL Server都有很好的兼容性。SQL server提供了方便操作的图形操作界面,这也符合微软的一贯风格,对于一般的developer而言,这种图形化的界面,加速了他们学习数据库相关技术的速度。 SQL Server 在安装方面十分方便,用户可以方便的在本地搭建环境。其提供的功能十分强大,其完备的数据保护机制和安全特性,使其在市场上的使用率逐渐得到提升。 4.2 数据库的设计 这个系统的数据库名是susheguanli2015jsp,一共有十二张表组成。 1.用户数据表 表名:user, 用户数据表是用来保存系统用户的信息,具体表的结构如表4-1所示。 表4-1 用户数据表 列名 ID UserName Password Cretetime logtimes remark email Phot0 tel desc 数据类型 Int varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) 是否允许空 否 否 否 否 否 否 否 否 否 否 描述 ID 用户名 密码 创建时间 登陆次数 备注 邮箱 照片 电话 描述 2.报修数据表 表名:Baoxiu,修改信息,具体的表的结构见表4-2所示 表4-2 报修数据表 列名 ID bxren bxtime ddno 数据类型 Int varchar(50) varchar(50) varchar(50) 是否允许空 否 否 否 否 描述 ID 保修人 时间 宿舍号 3.快件 15 基于JavaWeb校园宿舍管理系统 表名:KuaiJian,用来存储快件的信息,具体的见表4-3 表4-3 快件数据表 列名 ID daishouren ljdate ljren name shdate status xtype xuehao 数据类型 Int varchar(50) Datetime varchar(50) varchar(50) Datetime Into varchar(50) varchar(50) 是否允许空 否 否 否 否 是 是 否 描述 ID 代收人 时间 接收人 名称 接收日期 状态 类型 学号 4.离校数据表 表名:liXiao,用来存储学生的离校信息,见表4-4所示。 表4-4 离校数据表 列名 ID dengjiren lxdate lxdes name sxuehao 数据类型 Int varchar(50) DateTime varchar(50) varchar(50) varchar(50) 是否允许空 否 否 否 否 否 否 描述 ID 登记人 时间 描述 名称 学号 5.寝室数据表 表名:QinShi,用来存储寝室的信息,具体的表的结构见表4-5所示。 表4-5 寝室数据表 列名 ID belonglouno des qsno remark 数据类型 Int varchar(50) varchar(50) varchar(50) varchar(50) 是否允许空 否 否 否 否 否 描述 ID 楼号 描述 寝室数量 标注 6.寝室评分表 表名:QspingFen,用来存储寝室评分的详细信息,具体的见表4-6。 表 4-6 寝室评分表 列名 ID defen des louno 数据类型 Int varchar(50) varchar(50) varchar(50) 是否允许空 否 否 否 否 描述 ID 分数 描述 楼号 16 基于JavaWeb校园宿舍管理系统 pfren pftime qsno zhou varchar(50) varchar(50) varchar(50) varchar(50) 否 否 否 否 评分人 时间 寝室号 第几周 17 基于JavaWeb校园宿舍管理系统 第5章 系统实现 5.1 开发平台和技术介绍 MyEclipse简介 MyEclipse是一种功能强大的IDE,其在JSP和Android开发方便,给developer提供了极大的便利,其集成了编译器,调试器等功能,界面友好,受到程序员的青睐,在市场上众多的IDE中脱颖而出,肯定有其独特的特点,目前开发基于Java语言的程序,还有一种开发环境Eclipse,它们几乎占据了java程序开发的全部,其有很多的插件技术,也是其受欢迎的原因。 Tomcat简介 它是一个Apahce服务器,主要是和HTML页面的访问想呼应。 JSP简介 JSP主要是Java语言编写的。处理网页时还会用到AML类。它实现了设计和显示的分离,并且使WEB的相关软件,实现实现起来更加的简单和快速。 Java语言简介 Java语言完全面向对象的,主要通过面向来实现,同时java中的所有系统内置类都是通过继承Object类来调用的。 面向对象 在当下企业的开发中,用的最多的就是面向对象技术,为什么面向对象技术如此的受市场欢迎呢,原因是其的实现的思想和现实世界中的物体相似,利用面向对象技术开发的软件,层次清晰,容易维护;在软件工程中,面向对象开发技术受到推崇,原因在其满足,低耦合高内聚的特性。按照面向对象的思想,世间万物都是对象,在三层架构和MVC开发模式中,对象的作用是用来传递数据,不同层次之中,都对这个有所引用,当做数据承载的工具进行利用。具体的面向对象如图5-1所示。 18 基于JavaWeb校园宿舍管理系统 图 5-1面向对象 三层架构 三层架构技术将系统分为表示层、逻辑层和数据存储层三个层次,最成熟和使用范围最广的一种三层架构技术在目前的软件工程的研究领域内是下图5-2所示。 图 5-2 三层架构 5.2 登录功能 如图所示,为系统的登录界面,用户在登录的时候,在用户名,密码和验证码框输入对应的信息,选择用户的类型,点击“登录”,首先利用JS验证验证码是否正确,验证存在的意义就是为了防止撞库的出现,验证码在现在的网站上都在使用,再验证对应的用户名,密码和用户类型组合,这些都是在后台实现的,在用户登录成功后,将用户的登录信息保存在session对象里面,在用户打开别的页面的时候,首先验证session对象,否则重 19 基于JavaWeb校园宿舍管理系统 新登录,这里也可以设置session对象的过期时间,用户多长时间没有操作,就会自动的退出。 图 5-3 用户登录界面 代码: private void login(HttpServletRequest request, HttpServletResponse response) { // 分发请求参数 dispatchParams(request, response); String usertype = request.getParameter(\"usertype\"); String validcode=(String)request.getSession().getAttribute(\"validcode\"); String inputvalidcode=request.getParameter(\"validcode\"); if(validcode!=null&&!validcode.equals(inputvalidcode)){ System.out.println(\"系统验证错误\"); request.setAttribute(\"errmsg\系统验证码错误\"); try { request.getRequestDispatcher(\"/admin/login.jsp\").forward(request, response); } catch (ServletException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { } // TODO Auto-generated catch block e.printStackTrace(); return; 20 基于JavaWeb校园宿舍管理系统 5.3 管理员 5.3.1 添加用户界面 如图5-4所示,为管理员对用户进行管理的界面,客户添加用户,在编辑界面,输入用户名,密码,创建人,电话,真名,邮件,选择性别和图片,在输入完整后,点击提交,就可以添加用户到数据库,退出后,就可以用注册的用户名登录系统。 图 5-4 添加用户界面 代码: HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter(\"username\"); String password = request.getParameter(\"password\"); String rolename = request.getParameter(\"rolename\"); String creator = request.getParameter(\"creator\"); String createtime = request.getParameter(\"createtime\"); String email = request.getParameter(\"email\"); String tel = request.getParameter(\"tel\"); String realname = request.getParameter(\"realname\"); String nickname = request.getParameter(\"nickname\"); String sex = request.getParameter(\"sex\"); String xiangpian = request.getParameter(\"xiangpian\"); SimpleDateFormat sdfusers = new SimpleDateFormat(\"yyyy-MM-dd\"); Users users = new Users(); users.setUsername(username == null ? \"\" : username); users.setPassword(password == null ? \"\" : password); users.setCreator(creator == null ? \"\" : creator); users.setCreatetime(new Date()); users.setEmail(email == null ? \"\" : email); 21 基于JavaWeb校园宿舍管理系统 users.setTel(tel == null ? \"\" : tel); users.setLogtimes(0); users.setRealname(realname == null ? \"\" : realname); users.setNickname(nickname == null ? \"\" : nickname); users.setSex(sex == null ? \"\" : sex); users.setXiangpian(xiangpian == null ? \"\" : xiangpian); DALBase.save(users); 5.3.2 添加学生 如图5-5所示,为管理员添加学生的界面,在输入学号,姓名,性别,籍贯政治面 貌等信息后,保存,添加到数据库中,生成对应的一条记录,同样的,学生可以使用这个账号,在选择学生的用户类型后,就可以登入系统,看到自己的个人信息和相应的操作。 图 5-5 添加学生界面 代码: public static Boolean save(Object o){ Session s=HibernateSessionFactory.getSession(); Transaction t=s.beginTransaction(); boolean status=true; try { s.save(o); s.flush(); t.commit(); s.close(); 22 基于JavaWeb校园宿舍管理系统 } }catch(HibernateException e){ } return status; e.printStackTrace(); status=false; 5.3.3 宿舍管理 如图5-6所示,为宿舍管理的界面,管理员可以对宿舍进行的操作有添加,删除,查看和修改的操作,在操作这些信息后,通过http协议传递到后台,利用数据库语句对数据库里面的数据进行操作,这里使用了hibernate技术,映射了数据库的结构,在不同的操作层之间,使用Json字符串进行传递。 图5-6 宿舍管理界面 5.3.4 寝室评分 如图 5-7所示,为管理员对宿舍检查的情况,进行打分,在填写完相应的信息后,提交到数据库,添加一条数据库。在提交到数据库之前,要对输入的数据进行验证,主要利用JS框架进行验证,没有满足验证,就不会触发提交操作,不会有数据的传递,自然不会保存数据。 图 5-7 寝室评分 代码: 23 基于JavaWeb校园宿舍管理系统 public void save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String forwardurl=request.getParameter(\"forwardurl\"); String louno=request.getParameter(\"louno\"); String qsno=request.getParameter(\"qsno\"); String zhou=request.getParameter(\"zhou\"); String pfren=request.getParameter(\"pfren\"); String pftime=request.getParameter(\"pftime\"); String defen=request.getParameter(\"defen\"); String des=request.getParameter(\"des\"); SimpleDateFormat sdfqspingfen=new SimpleDateFormat(\"yyyy-MM-dd\"); Qspingfen qspingfen=new Qspingfen(); qspingfen.setLouno(louno==null?\"\":louno); qspingfen.setQsno(qsno==null?\"\":qsno); qspingfen.setZhou(zhou==null?\"\":zhou); qspingfen.setPfren(pfren==null?\"\":pfren); if(pftime!=null) { try { qspingfen.setPftime(sdfqspingfen.parse(pftime)); } catch (ParseException e) { } e.printStackTrace(); }else{ qspingfen.setPftime(new Date()); } qspingfen.setDefen(defen==null?(double)0:new Double(defen)); qspingfen.setDes(des==null?\"\":des); DALBase.save(qspingfen); //保存附件 // attachements(request,response,new Integer(qspingfen.getId()).toString()); if(forwardurl==null){ } try { forwardurl=\"/admin/qspingfenmanager.do?actiontype=get\"; 24 基于JavaWeb校园宿舍管理系统 } response.sendRedirect(SystemParam.getSiteRoot()+forwardurl); } catch (Exception e) { } e.printStackTrace(); 5.3.5 夜归管理 如图5-8所示为管理对学生夜归进行登记的界面,在界面上填写完相关的信息,单击提交,就可以添加一条晚归记录,保存在数据库中,该学号的学生,就可查看自己的晚归记录,这页面上呈现的时候,筛选学号为自己的晚归记录,在页面$(function())或者,onload函数里面载入。 图 5-8 夜归管理界面 代码: public void save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String forwardurl = request.getParameter(\"forwardurl\"); // 验证错误url String errorurl = request.getParameter(\"errorurl\"); String xeuhao = request.getParameter(\"xeuhao\"); String name = request.getParameter(\"name\"); String ygdate = request.getParameter(\"ygdate\"); String ygtime = request.getParameter(\"ygtime\"); String xtype = request.getParameter(\"xtype\"); String dengjiren = request.getParameter(\"dengjiren\"); String fuyan = request.getParameter(\"fuyan\"); SimpleDateFormat sdfyegui = new SimpleDateFormat(\"yyyy-MM-dd\"); Yegui yegui = new Yegui(); 25 基于JavaWeb校园宿舍管理系统 yegui.setXeuhao(xeuhao == null ? \"\" : xeuhao); yegui.setName(name == null ? \"\" : name); if (ygdate != null) { try { yegui.setYgdate(sdfyegui.parse(ygdate)); } catch (ParseException e) { } e.printStackTrace(); } else { } yegui.setYgtime(ygtime == null ? \"\" : ygtime); yegui.setXtype(xtype == null ? \"\" : xtype); yegui.setDengjiren(dengjiren == null ? \"\" : dengjiren); yegui.setFuyan(fuyan == null ? \"\" : fuyan); // 产生验证 Boolean validateresult = saveValidate(\"where xeuhao='\" + xeuhao + \"'\"); if (validateresult) { } DALBase.save(yegui); // 保存附件 // attachments(request,response,new Integer(yegui.getId()).toString()); if (forwardurl == null) { forwardurl = \"/admin/yeguimanager.do?actiontype=get\"; try { request.setAttribute(\"errormsg\ \"\"); yegui.setYgdate(new Date()); request.setAttribute(\"yegui\request.setAttribute(\"actiontype\ request.getRequestDispatcher(errorurl).forward(request, response); } catch (Exception e) { } return; e.printStackTrace(); 26 基于JavaWeb校园宿舍管理系统 } } try { response.sendRedirect(SystemParam.getSiteRoot() + forwardurl); } catch (Exception e) { } e.printStackTrace(); 5.3.6 离校记录 如图5-9 所示,为管理员管理学生离校记录的界面,主要操作有创建新的离校记录,查看和修改操作,同样的,学生在自己的界面可以看到自己的离校记录,这个和夜归的原理一样。 图 5-9 离校记录管理界面 代码: public void save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String forwardurl=request.getParameter(\"forwardurl\"); //验证错误url String errorurl=request.getParameter(\"errorurl\"); String xuehao=request.getParameter(\"xuehao\"); String name=request.getParameter(\"name\"); String lxdate=request.getParameter(\"lxdate\"); String dengjiren=request.getParameter(\"dengjiren\"); String lxdes=request.getParameter(\"lxdes\"); SimpleDateFormat sdflixiao=new SimpleDateFormat(\"yyyy-MM-dd\"); Lixiao lixiao=new Lixiao(); lixiao.setXuehao(xuehao==null?\"\":xuehao); lixiao.setName(name==null?\"\":name); 27 基于JavaWeb校园宿舍管理系统 if(lxdate!=null) { try { lixiao.setLxdate(sdflixiao.parse(lxdate)); } catch (ParseException e) { } e.printStackTrace(); }else{ lixiao.setLxdate(new Date()); } lixiao.setDengjiren(dengjiren==null?\"\":dengjiren); lixiao.setLxdes(lxdes==null?\"\":lxdes); //产生验证 Boolean validateresult=saveValidate( \"where xuehao='\"+xuehao+\"'\"); if(validateresult){ try { request.setAttribute(\"errormsg\class='error'>已经录入了该生离校信 息\"); } request.setAttribute(\"lixiao\request.setAttribute(\"actiontype\ request.getRequestDispatcher(errorurl).forward(request, response); } catch (Exception e) { } return; e.printStackTrace(); DALBase.save(lixiao); //保存附件 // attachments(request,response,new Integer(lixiao.getId()).toString()); if(forwardurl==null){ } try { response.sendRedirect(SystemParam.getSiteRoot()+forwardurl); forwardurl=\"/admin/lixiaomanager.do?actiontype=get\"; } catch (Exception e) { 28 基于JavaWeb校园宿舍管理系统 } } e.printStackTrace(); 5.3.7 快件管理 如图5-10所示,为官员对快件管理的界面,在这个界面上,可以对从快递员哪里接受学生的快件,代收,在填写完快件信息后,保存在数据库中,此时,这快件的状态为未领用,学生在自己的界面上,“领用”该快件后,就可以修改这个快件记录的状态,这个是通过一个状态位来标识的,一般的是用0和1来标识。 图 5-10 快件管理界面 代码: public void save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { SimpleDateFormat sdfkuaijian = new SimpleDateFormat(\"yyyy-MM-dd\"); Kuaijian kuaijian = new Kuaijian(); kuaijian.setXuehao(xuehao == null ? \"\" : xuehao); kuaijian.setName(name == null ? \"\" : name); kuaijian.setXtype(xtype == null ? \"\" : xtype); kuaijian.setStatus(1); if (shdate != null) { try { kuaijian.setShdate(sdfkuaijian.parse(shdate)); } catch (ParseException e) { } e.printStackTrace(); } else { kuaijian.setShdate(new Date()); 29 基于JavaWeb校园宿舍管理系统 } } kuaijian.setDaishouren(daishouren == null ? \"\" : daishouren); kuaijian.setLjren(ljren == null ? \"\" : ljren); if (ljdate != null) { try { kuaijian.setLjdate(sdfkuaijian.parse(ljdate)); } catch (ParseException e) { } e.printStackTrace(); } else { } DALBase.save(kuaijian); if (forwardurl == null) { } try { response.sendRedirect(SystemParam.getSiteRoot() + forwardurl); forwardurl = \"/admin/kuaijianmanager.do?actiontype=get\"; kuaijian.setLjdate(new Date()); } catch (Exception e) { } e.printStackTrace(); 5.4 学生 5.4.1 修改密码 如图5-11所示,为学生修改密码的界面,在修改密码的时候,为了保障账户的安全,在流程设计上,先要输入“原始密码”,在修改密码的时候,要首先验证原始密码是否正确,否则修改密码失败,在验证密码正确后,再前台验证两次输入的密码是否一致,否则提示“两次输入密码不一致”,在修改密码成功后,下次用户在登录的时候,必须使用新的密码。 30 基于JavaWeb校园宿舍管理系统 图 5-11 修改密码界面 代码: private void modifyPw(HttpServletRequest request, HttpServletResponse response) { String password1=request.getParameter(\"password1\"); String repassword1=request.getParameter(\"repassword1\"); String repassword2=request.getParameter(\"repassword2\"); String forwardurl=request.getParameter(\"forwardurl\"); String errorpageurl=request.getParameter(\"errorpageurl\"); String id = request.getParameter(\"id\"); if (id == null||id==\"\") return; Student student = (Student) DALBase.load(Student.class, new Integer(id)); if(student!=null) { if(!student.getPassword().equals(password1)) { try { request.setAttribute(\"errormsg\\"\"); request.getRequestDispatcher(errorpageurl).forward(request, response); } catch (Exception e) { } e.printStackTrace(); }else { 31 基于JavaWeb校园宿舍管理系统 student.setPassword(repassword1); DALBase.update(student); request.getSession().setAttribute(\"studentry { if(forwardurl!=null) response.sendRedirect(SystemParam.getSiteRoot()+forwardurl); } } } catch (IOException e) { } e.printStackTrace(); } 5.4.2 我的夜归记录 如图5-12所示,为学生查看自己的夜归记录的界面,选中记录后,点击“查看”就可以查看夜归的详细信息,这个记录的入口在管理员的夜归记录管理界面。 图 5-12 夜归界面 代码: public void load(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id = request.getParameter(\"id\"); String actiontype = \"save\"; dispatchParams(request, response); if (id != null) { Yegui yegui = (Yegui) DALBase.load(\"yegui\if (yegui != null) { } actiontype = \"update\"; request.setAttribute(\"yegui\ 32 基于JavaWeb校园宿舍管理系统 } } request.setAttribute(\"id\ request.setAttribute(\"actiontype\ List