基于JSP的会员管理系统设计实现
摘要
随着科学技术的发展,尤其是IT互联网的发展,使信息化时代逐渐代替了上世纪的工业化时代,互联网的高速发展,改变了众多行业的格局,使人们的生活进入高速、方便快捷的节奏,会员管理也不例外。近年来,随着会员的发展以及会员管理范围的增广无疑增加了会员管理机构与工作人员的压力。通过几年的资料收集以及调查研究,会员管理部门已经拥有了非常丰富的会员数据,但以前的管理都是通过人工的去巡查、管理等,这种传统的管理方法与现在高速发展的互联网状况已经严重不能适应,在目前的会员管理中已经显得困难重重,没有发挥应有的作用。近年为了健全和完善我校会员的管理体制,充分发挥会员的优势,提高社团发展水平,促进会员活动向健康、文明、向上的方向发展,特制定本管理办法。实现信息化建设,使管理手段逐步走向数字化、智能化、现代化。依靠信息化建设的现代化管理系统是会员管理系统逐步完善、规范和成熟应用的必然发展趋势。
本社团管理系统是针对目前会员管理的实际需求,从实际工作出发,在分析以前会员管理系统中存在问题的基础上,结合管理信息系统开发的概念、结构及系统开发的基本原理和方法,并利用计算机运算速度快、存储信息容量大、处理逻辑问题强、功能强大的优势,采用目前最流行的B/S结构和JSP中流行的MVC三层设计模式。本会员管理系统主要包括“登录模块”、“系统用户管理模块”、 “会员等级管理模块”、 “会员信息管理模块”、 “消费项目管理模块”、“订单管理模块”、“系统管理模块”等多个模块。它帮助&会员管理实现了信息化、网络化,通过测试,实现了系统设计目标,相比传统得管理模式,本系统合理的利用了会员会员数据资源,有效的减少了会员会员管理的经济投入,大大提高了会员会员管理的效率。
关键词:会员管理;B/S;现代化管理;JSP
The Design and implementation of expressway infrastructure management system based on JSP
Abstract
With the development of science and technology, especially the development of the Internet, IT make the information age gradually instead of the last century era of industrialization, the rapid development of Internet, changed the pattern of numerous industry, make people's life into the high speed, convenient and quick rhythm, student community management is no exception. In recent years, with the development of the students and the student community management scope of augmented undoubtedly increased the pressure of student community management organization and staff. Through several years of data collection and investigation and study, the student community management has a very rich students student community data, but the previous management is through the artificial to search, management, etc., the traditional management methods and the rapid development of Internet has serious now can not adapt to, in the present student community management is difficult, not play a proper role. In recent years, in order to improve and perfect the management system of the students in our school community, give full play to the advantages of students, improve the level of community development, promote the student club activities to develop in the direction of healthy, civilized, and progressive, formulates this management approach. Implement information construction, make management step by step towards digitalization, intellectualization and modernization. Relying on the information construction of modern management system is gradually improve students management system, standardize the inevitable development trend and mature application.
The community management system is in light of the actual needs of the student community management, starting from the actual work, before the analysis of existed problems in the students management system, on the basis of combining the concept of management information system development, structure and basic principle and method of system development, and use the information stored in the computer operation speed, large capacity, strong processing logic problem, the advantage of powerful, by far the most popular B/S structure and JSP in popular MVC three layer design model. This student community management system mainly includes \"login module\", \"the system user management module\", \"student information module\", \"community information management module\", \"community activities module\", \"corporate registration module\", \"enrollment module\" multiple modules, etc. It help & student community management to realize the informatization and networking, through testing, and realized the system design goal, compared with the traditional management mode, the system data resources reasonable use of the student community student associations, effectively reduce the students student community management of economic investment, greatly improve the efficiency of the student community student community management.
Key words: student community management; B/S; Modern management; The JSP
摘要
Abstract
1 绪论
1.1研究背景
1.2研究目的及意义
1.3主要研究内容
2 相关技术知识介绍
2.1 JSP相关技术介绍
2.2MVC开发模式介绍
2.3 sqlserver相关知识介绍
2.4 三层结构体系
3 系统分析
3.1可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3操作可行性
3.2 功能需求分析
3.3 数据需求分析
3.4性能需求分析
3.5数据流分析
4 系统设计
4.1系统总体设计
4.2系统功能设计
4.3数据库的设计
4.3.1 概念模型的设计
4.3.2 数据库表的设计
5 系统实现
5.1登录模块
5.2密码修改模块
5.3系统用户管理模块
5.4管理员模块
5.5系统管理
6 系统测试
6.1测试概述
6.2数据库测试
6.3测试用例
7 总结
参考文献
致 谢
1 绪论
1.1研究背景
通过几年的资料收集以及调查研究,会员管理部门已经拥有了非常丰富的会员会员数据,但以前的那种传统的管理方法与现在高速发展的会员状况已经严重不能适应,在目前的会员规划和管理中已经显得困难重重,没有发挥应有的作用。加上近年来会员事故的频繁发生,会员监控、会员维护、巡查、数据分析等花费的成本也是非常必要的,在这些情况的综合因素下,为了节省不必要的人力物力,有效的利用资源,并有效提高工作效率,使会员会员管理工作简化,本文设计了智能信息化管理系统——基于JSP的会员管理系统。实现会员信息化建设,使会员管理手段逐步走向数字化、智能化、现代化。
1.2研究目的及意义
通过会员管理系统的设计与实现,应用会员管理法规,保障会员系统的完整性;提高了会员会员整体的会员环境;使用监督会员的维护,保障它的使用质量与年限;保障会员收费事宜正常秩序,确保收费管理工作有序进行;提高监督使用者的自觉性,达到宣传教育的作用。使用本系统极大的提高了管理监督的方便性、会员车辆的使用者的自觉性、会员资源的节约性、会员维护的及时性。本系统实施后,使会员管理提升到了一个新的台阶,跟上社会发展的水平。
1.3主要研究内容
本系统结合&会员会员管理现状,对&会员路网现状进行分析,分析系统平台的总体框架设计,为了在于整合现有会员资源的基础上,建立一套满足于会员管理系统的维护、管理、&监控和决策分析的综合型信息系统,实现&会员管理工作的全面信息化。
具体研究内容包括:
1) 不同用户的登录问题:根据用户的类别(管理员、会员)实现用户操作权限的区分并显示不同的操作界面。
2) 数据库的连接问题:数据库连接为系统中的关键技术。
3) 数据的一致性和安全问题:本系统必须保证数据的一致性和安全,才能实现有效的管理。不能让没有权限的用户对数据进行操作并且定期对数据库进行备份。
4) 界面开发:系统界面的设计很重要,要使界面具有亲和力。
5) 多表之间的条件查询:本系统涉及到很多查询,对一些复杂的查询必须经过严谨的分析后再写出查询的SQL语句并且要优化查询方法。
6) 分析会员路网信息化现状;
7) 研究会员管理系统的现状及存在的问题;
8) 研究系统平台的总体架构、总体设计、数据库设计、数据库安全设计及功能设计;
9) 研究平台各个子系统的功能及实现的方法、信息技术的融合、信息安全技术的维护;
10) 进行会员管理系统的功能设计。
2 相关技术知识介绍
基于JSP的会员管理系统。运用Zend Studio 10.5.0编译器进行编写,运用MVC开发模式和前端html+div+css等相关技术对sqlserver数据库进行操作,前台主要使用到HTML进行布局,使用CSS和Javascript/JQuery进行页面修饰,客户端与服务器采用Internet相关技术进行数据传输,系统的用户采用JSP编写,并结合apache服务器来完成对数据库的操作,下面为本系统的开发技术介绍。
2.1 JSP相关技术介绍
JSP是一种开放动态网站的编程语言,它能嵌入在html中使用,也能单独使用,同时具有多种有优点,可以说,JSP已经成为Web脚本技术的先驱。它融合了现代编程语言(如C,Java和Perl)的一些最佳特性。Linux、JSP、Apache和sqlserver的组合已经成为Web服务器的一种配置标准。使用JSP的最大的好处是它对于初学者来说极其简单,同时也给专业的程序员提供了各种高级的特性。JSP可以用来:收集表单数据、生成动态网页、字符串处理、动态输出图片、处理服务器端文件系统、编写数据库支持的网页、会话跟踪控制、处理XML文件、支持利用大量的网络协议、服务器端的其他相关操作。目前能够用在所有的主流操作系统上,包括Linux、UNIX的各种变种、Microsoft Windows等。今天,JSP已经支持了大多数的Web服务器,包括Apache、IIS、PWS、Netscape等。JSP提供了一个模块;还有一些JSP支持CGI标准,使得JSP能够作为CGI处理器来工作。
JSP5版本的发布,标志着一个全新的JSP时代的到来,它最大的特点就是引入了面向对象的全部机制,并保留了向下的兼容性。综上所述,使用JSP,可以自由的选择操作系统、Web服务器以及合适的数据库管理系统。同时,还可以在开发时选择使用面向过程和面向对象,或者两者混合的方式开发。相对于微软的ASP与SUN公司的JSP 等相比,LAMP是目前最流行的Web开发组合。
2.2MVC开发模式介绍
软件的设计模式是一套被反复使用、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。MVC是一种重要的设计模式,它从根本上强制的将程序分为三层进行管理,避免了在大部分Web开发中将数据库查询语句这样的数据层和HTML这样的表示层代码混合在一起,实现了Web系统的职能分工,可以各司其职,MVC代表:模型(Model)、视图(View)、控制器(Controller)。Model层实现系统中的业务逻辑处理,View层用于与用户的交互,Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择适当的视图层来显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。MVC的优点是将设计系统分层,使产品的结构清晰,产品的应用通过模型可以得到更好的体现。对于多订单一个订单模型,MVC减少了代码的冗余,增强代码的牢固性,同时MVC也有缺点,要求开发人员需要会运用MVC,还要有详细的软件设计规划,MVC将视图、模型、控制器分开,意味着代码文件大量增多,这对管理来说就相对麻烦了。MVC将代码逻辑处理与代码显示分离,增加了应用的可拓展性,使得应用更加强壮,更加有弹性,更加个性化。
2.3 sqlserver相关知识介绍
现在的Web动态网站都是基于数据库的,一直以来,sqlserver数据与JSP技术的组合都备受开发者们的亲赖,sqlserver是最受欢迎的开源SQL数据库管理系统,它由sqlserver开发、发布和支持。在2008年1月6日被微软公司收购。sqlserver是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。sqlserver的SQL“结构化查询语言”。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了sqlserver作为网站数据库。许多中小型公司为了降低开发成本而选择sqlserver作为企业的网站数据库,JSP结合Apache服务器、sqlserver数据库、Linux操作系统,由于四大软件都是开源免费的,使企业除人工成本外不用花一分钱就可以建立一个稳定、免费的网站系统。
2.4 三层结构体系
随着软件工程的不断进步和规范以及面向对象编程思想的应用,原本的双层架构已经不能满足开发者的效率上需求,因为在代码上的封装、移植、扩展、复用等操作使得双层架构难以招架,因此才有三层架构的出现,问题迎刃而解。什么叫三层架构呢?指的是表示层、组件层、数据访问层。组件层是双层架构没有的,它的加入,把复杂的问题分解得更简单、明了,通过组件层,实现控制数据访问层,这样达到功能模块易于管理、易于访问等目的,例如在一个网站的登录功能上,开发者可以分为登录界面模块,登录控制器模块、登录数据访问查询模块等三个模块,登录界面指的是表示层,登录控制器就是组件层,它将开发者的逻辑思想实现出来,然后调用数据访问层,登录数据访问查询模块就是数据访问层。
3 系统分析
3.1可行性分析
系统需要做什么、分析什么,先进行用户、数据需求分析,得到一个方案,然后设定系统的开发方案,为每个功能模块设计出物理设计方案,开发本系统的是否可行?本文从技术上、操作上和经济上对本系统的开发进行可行性分析。
3.1.1 技术可行性
该系统所需硬件设备,如PC机、手机终端设备等,这些设备在性能上已经有了很大提高,价格又相对较低,能满足系统功能需求。软件上,操作系统采用Windows 7,数据库管理系统采用sqlserver数据库,服务器采用Apache服务器,这些软件在Web开发中已被大量应用,技术上都比较成熟。本系统采用WEB技术来实现,使用JSP可以创建动态、交互的Web服务器应用程序,页面可以使用脚本语言(如JSP、Javascript/JQuery、HTML/CSS等)因此技术上是可行的。
3.1.2 经济可行性
会员管理系统属于一个工具型的系统,它可以节省工作人员大量数据收集、录入、整理、查询、修改等手工操作,而且迅速准确、方便快捷,能够极大地提高工作效率,最大限度的管理员的工作量,使管理尽量简便,同时促进&会员会员管理的信息化、现代化,及时给各部门提供必要的信息统计。因为整个系统采用Apache+sqlserver+JSP组合,这几个软件都是免费开源的,系统开发所需的费用是比较低的,由于系统并不复杂,其运行与培训费用也不会占用很多资金,可以预见系统完成后可以带来较大的经济效益。
3.1.3操作可行性
本系统使用的是现流行的开发语言,即JSP技术。同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统,系统管理员只需要懂得基本的计算机操作知识即可操作管理系统。系统布局较简单,功能操作不复杂,完全符合现代市场需求。因此本系统具有操作可行性。
综上所述,整个系统在技术上、经济上都是可行的,因此,开发会员管理系统是可行的。
3.2 功能需求分析
随着信息技术以及会员管理工作量的增多,人工的管理已经严重落后,各部门对数据的实时性要求不同,而且人工的处理很可能在过程中出错,精确度不够,传统的管理方式具有严重缺陷,大大降低了信息的利用价值和管理的实用价值。因此,发展以电子计算机为基础的会员管理系统已是十分迫切和必要。
针对现存的问题和需要,通过对数据的分析,特建立了数字化、信息化的会员管理系统。
本系统主要包含了“登录模块”、“系统用户管理模块”、 “会员等级管理模块”、 “会员信息管理模块”、 “消费项目管理模块”、“订单管理模块”、“系统管理模块”等多个功能模块。下面分别简单阐述一下这几个功能模块需求。
1) 登录模块:
管理员的登录:管理员登录系统对本系统其他管理模块进行管理,
以及客户端应用管理员登录后向服务器传输数据。
会员的登录:社员登录本系统,对个人的信息等进行查询。
2) 系统用户管理模块:包管理员账号管理、修改密码等功能。
3) 会员等管理模块:
等级信息添加:管理员向本系统中添加更多的会员。
等级信息查询:呈现本系统中的管理员,可查询会员信息。
4) 会员信息管理模块:
会员信息添加:实现管理员添加会员信息,应该包括名称等信息。
会员信息查询:实现管理员查询会员信息,包括修改会员的等信息。
5) 消费项目管理模块:
添加消费项目:管理员对消费项目在系统中添加。
消费项目查询:管理员在系统中查询消费项目。
6) 订单管理:管理员可以在系统中查看订单情况。
7) 系统管理:数据备份。
3.3 数据需求分析
通过对系统功能需求的分析,可以了解到会员管理系统主要实现的功能,会员管理系统所涉及的主要数据包括社团信息数据、社员信息数据、社团活动数据、社团报名数据、管理员的数据添加和删除,下面分别分析这些数据需求。
1. 用户留言数据、用户评论数据、新闻展示数据是本系统中最主要的数据来源,通过POST方法接收到表单传送过来的信息后,将这些数据必须进行处理入库,以便后续的操作应用。
2. 管理员的数据添加和删除
3. 系统登入必须是管理员身份,所以在系统对管理员的添加和删除数据也是进入本系统的前提条件,若某管理员离职,需要对相应的管理员数据表进行操作。
3.4性能需求分析
根据毕业设计会员管理系统的需求进行开发设计,主要实现如下目标:依靠HTML/CSS、Javascript/JQuery等设计界面友好、美观,通过信息化管理&会员,数据准确、安全、可靠。强大查询功能,方便管理员以及各用户管理自己相关信息。设计用户登录、验证功能,保证系统信息的安全性。实现对信息的添加、修改,便于维护。系统最大限度地实现易维护性和易操作性。操作简易,实用性强。因此操作的简易实用性就体现的尤其重要,在此系统的开发中就很好的体现了这一点。本系统的界面美观、充满了人性化,用户操作起来也容易上手。对于一个会员管理系统而言管理好信息是十分必要的,而且存储量大,所以对系统的安全性有比较高的要求;对于数据库,要设置不同用户的权限,数据的修改必须由合法用户操作;数据的添加、修改必须是合法的、有效的。
3.5数据流分析
根据系统的数据流画出系统数据流程图0层图,如下所示。
图3.1系统数据流程图0层
根据系统的0层数据流分解得到系统数据流程图1层图,如下所示。
图3.1系统数据流程图1层
根据系统的1层数据流分解得到管理员数据流程图2层图和会员管理数据流程2层图,如下所示。
图3.1 管理员数据流程图2层
图3.1 社团管理数据流程图2层
4 系统设计
4.1系统总体设计
系统主要是分为用户设计与管理员设计。用户模块主要是系统中普通用户在登录系统后可以看到自己的基本信息,维护自己的信息,可以查看自己是否违章,以到相关部门处理事务;管理员模块主要是管理员登录后对整个系统相关操作进行处理,可进行管理员的添加和删除,可对会员进行损坏判断、添加和删除,可对系统中的用户进行管理,系统管理员可对车辆进行判断是否违章等操作管理。
在对本系统进行了需求分析,以及功能模块的分析,如下图所示是本系统的系统功能模块图。
图4.1系统功能模块图
4.2系统功能设计
1.登录模块:在用户登录过程中,系统首先判断系统设置中用户登录是否使用验证码,若用户登录使用了验证码,则用户登录时除了需要输入用户名和密码外,还要输入验证码。在判断验证码为正确后,判断用户名及密码,由于用户密码是用MD5加密过的,所以在对用户密码判断时应先对密码进行MD5转换后再进行判断,当用户名或密码不正确时,返回登录页面显示错误信息。
登录模块活动图如下图所示。
图4.2登录模块活动图
2.会员信息管理模块:管理员可以选择某个会员然后给该会员添加信息,管理员对会员进行审核,删除、修改,输入完信息并提交后,先利用JavaScript进行判断输入的合法性,判断合法后,如果格式正确,则往信息表中插入订单数据。
订单登记模块活动图如下图所示。
图4.3会员信息模块活动图
3.会员等级管理模块:管理员对会员等级进行添加,删除、修改,输入完客户信息并提交后,先利用JavaScript进行判断输入的合法性,判断合法后,如果格式正确,则往客户信息表中插入客户数据。
会员等级模块活动图如下图所示。
图4.4会员等级模块活动图
4.消费项目管理模块:管理员可以选择消费项目然后管理员进行审核,删除、修改,输入完信息并提交后,先利用JavaScript进行判断输入的合法性,判断合法后,如果格式正确,则往订单信息表中插入订单数据。
社团活动模块活动图如下图所示。
图4.5消费项目模块活动图
4.3数据库的设计
4.3.1 概念模型的设计
根据需求分析,系统中涉及到的实体主要有:用户,管理员,会员。得到下图的总体ER图如下所示。
图4.3总体ER图
会员实体有,会员号、密码、会员姓名、性别、会员等级、折扣、出生日期、照片、住址、联系电话、备注,
从而得到如下的用户实体属性图,如下图4.2所示。
图4.2 会员实体属性图
管理员实体有用户名、密码、权限,如下是管理员实体的属性图,如下图4.3所示。
图4.3 管理员实体属性图
订单信息有订单编号、消费项目、编号、简介、价格、数量、会员姓名、会员号、折扣、合计等属性,如下是订单信息实体属性图,如下图4.4所示。
图4.4 订单信息实体属性图
4.3.2 数据库表的设计
本系统的数据库名称为,并设计如下几张表。
1)allusers表:结构如下表4.1所示。
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | username | VarChar | 50 | 是 | 255 | |
3 | pwd | VarChar | 50 | 是 | 255 | |
4 | cx | VarChar | 50 | 是 | 255 | |
5 | addtime | DateTime | 8 | 是 | 23 |
表4.1用户表
2)dingdan表:结构如下表4.2所示。
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | dingdanbianhao | VarChar | 50 | 是 | 255 | |
3 | xiaofeixiangmu | VarChar | 50 | 是 | 255 | |
4 | bianhao | VarChar | 50 | 是 | 255 | |
5 | jianjie | VarChar | 50 | 是 | 255 | |
6 | jiage | VarChar | 50 | 是 | 255 | |
7 | shuliang | VarChar | 50 | 是 | 255 | |
8 | huiyuanxingming | VarChar | 50 | 是 | 255 | |
9 | huiyuanhao | VarChar | 50 | 是 | 255 | |
10 | zhekou | VarChar | 50 | 是 | 255 | |
11 | heji | VarChar | 50 | 是 | 255 | |
12 | addtime | DateTime | 8 | 是 | 23 |
表4.2 订单表
3)huiyuandengji表:结构如下表4.3所示。
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | huiyuandengji | VarChar | 50 | 是 | 255 | |
3 | zhekou | VarChar | 50 | 是 | 255 | |
4 | addtime | DateTime | 8 | 是 | 23 |
表4.3 会员订单表
4)shourumingxi表:结构如下表4.4所示。
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | huiyuanhao | VarChar | 50 | 是 | 255 | |
3 | mima | VarChar | 50 | 是 | 255 | |
4 | huiyuanxingming | VarChar | 50 | 是 | 255 | |
5 | xingbie | VarChar | 50 | 是 | 255 | |
6 | huiyuandengji | VarChar | 50 | 是 | 255 | |
7 | zhekou | VarChar | 50 | 是 | 255 | |
8 | chushengriqi | VarChar | 50 | 是 | 255 | |
9 | zhaopian | VarChar | 50 | 是 | 255 | |
10 | zhuzhi | VarChar | 300 | 是 | 255 | |
11 | lianxidianhua | VarChar | 50 | 是 | 255 | |
12 | beizhu | VarChar | 500 | 是 | 255 | |
13 | addtime | DateTime | 8 | 是 | 23 |
表4.4 收入明细表
5)xiaofeixiangmu表:结构如下表4.5所示。
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 自增编号 | 10 | |
2 | bianhao | VarChar | 50 | 是 | 255 | |
3 | xiaofeixiangmu | VarChar | 50 | 是 | 255 | |
4 | jianjie | VarChar | 300 | 是 | 255 | |
5 | jiage | VarChar | 50 | 是 | 255 | |
6 | addtime | DateTime | 8 | 是 | 23 |
表4.5 消费项目表
5 系统实现
5.1登录模块
1.描述:
登录界面是本系统的用户进入管理界面的唯一通道,输入正确的验证码、用户名、密码确认无误后点击登入按钮,即可跳转到相应的界面。如果管理员、用户信息输入错误,则给出提示,重新输入正确信息登录系统。实现过程如下图5.1所示。
图5.1登录流程图
2.核心代码:
//login
public function login(){
//判断是否有数据提交
if (!empty($_POST)){
//创建对象
$usermodel = D("User");
//编写规则,在数据模型层M进行规则编写,此时是对User表进行操作
//压入数据进行验证
if($usermodel->create($_POST,5)){
//验证成功,执行登录
session('username',$_POST['username']);
session('isLogin',1);
if (isset($_POST['isMobile']) && $_POST['isMobile']=='1') {
echo "1";
}else {
$this->success('恭喜您,登录成功',U('Index/index'),3);
}
}else {
//验证失败,提示错误
if (isset($_POST['isMobile']) && $_POST['isMobile']=='1') {
echo "0";
}else {
$this->error($usermodel->getError());
}
}
}
//加载模板不用加载布局
//C('LAYOUT_ON',false);
//var_dump(C('LAYOUT_ON'));//Config
layout(false);
$this->display("login");
}
if(ac.equals("adminlogin"))
{
String username = request.getParameter("username");
String password = request.getParameter("pwd");
String utype = request.getParameter("cx");
String pagerandom = request.getParameter("pagerandom")==null?"":request.getParameter("pagerandom");
String random = (String)request.getSession().getAttribute("random");
if(!pagerandom.equals(random)&&request.getParameter("a")!=null)
{
request.setAttribute("random", "");
go("/login.jsp", request, response);
}
else{
String sql1 = "select * from allusers where username='"+username+"' and pwd='"+password+"' ";
List<HashMap> userlist1 = dao.select(sql1);
if(userlist1.size()==1)
{
request.getSession(). setAttribute("username", userlist1.get(0).get("username"));
request.getSession(). setAttribute("cx", userlist1.get(0).get("cx"));
gor("main.jsp", request, response);
}else{
request.setAttribute("error", "");
go("/login.jsp", request, response);
}
}
}
3.界面:
管理员登录界面如下所示。
图5.3登录界面
管理员进入登录界面后,会清楚地看到管理给出的各个功能模块。该管理员登录后的界面及其功能实现如下图5.4所示。
图5.4管理员登录后的主界面
用户进入登录界面后,会清楚地看到系统给出的各个功能模块。该用户登录后的界面及其功能实现如下图5.5所示。
图5.5用户登录后的界面
5.2密码修改模块
1.描述:
用户登录成功后进入管理界面,在此可以进行用户安全的管理,通过密码的修改来实现。
图5.6密码修改流程图
2.核心代码:
$sql="select * from allusers where username='".$_SESSION['username']."'";
$query=sqlserver_query($sql);
$rowscount=sqlserver_num_rows($query);
if($rowscount>0)
{
if(sqlserver_result($query,0,"pwd")==$pwdy)
{
$sql="update allusers set pwd='$pwd' where username='".$_SESSION['username']."'";
$query=sqlserver_query($sql);
echo "<script language='javascript'>alert('修改成功!');history.back();</script>";
}
else
{
echo "<script language='javascript'>alert('对不起,原密码不正确!');history.back();</script>";
}
}
else
{
echo "<script language='javascript'>alert('对不起,原密码不正确!');history.back();</script>";
}
}
if(ac.equals("adminuppass"))
{
String olduserpass = request.getParameter("ymm");
String userpass = request.getParameter("xmm1");
String copyuserpass = request.getParameter("xmm2");
//println(Info.getUser(request).get("id").toString());
HashMap m = dao.getmaps("username",(String)request.getSession().getAttribute("username"), "allusers");
if(!(((String)m.get("pwd")).equals(olduserpass)))
{
request.setAttribute("error", "");
go("mod.jsp", request, response);
}else{
//String id = (String)user.get("id");
String sql = "update allusers set pwd='"+userpass+"' where username='"+(String)request.getSession().getAttribute("username")+"'";
dao.commOper(sql);
request.setAttribute("suc", "");
go("mod.jsp", request, response);
}
}
3.界面:
进入本系统后,可以点击修改密码按钮,进入修改密码界面,如下图所示:
图5.7密码修改界面
5.3系统用户管理模块
1.描述:
系统用户管理主要实现对管理员的添加、删除、列表显示等,即是对管理员信息表的数据插入、删除、修改、查询。
2.核心代码:
//管理员添加
public function add(){
//判断是否有数据提交
if (!empty($_POST)){
//创建对象
$usermodel = D("User");
//编写规则
//压入数据并验证
if ($usermodel->create($_POST,6)){
//验证成功,执行添加
$data = array(
'username'=>$_POST['username'],
'password'=>md5($_POST['password']),
);
$uid = $usermodel->add($data);
if ($uid){
if (isset($_POST['isMobile']) && $_POST['isMobile']=='1') {
echo "1";
}else {
$this->success('恭喜您,添加成功');
}
}else {
if (isset($_POST['isMobile']) && $_POST['isMobile']=='1') {
echo "0";
}else {
$this->error('对不起,添加失败');
}
}
}else {
//验证失败,显示错误信息
$this->error($usermodel->getError());
}
}
$this->display('useradd');
}
<%
new CommDAO().delete(request,"allusers");
HashMap ext = new HashMap();
ext.put("cx","普通管理员");
new CommDAO().insert(request,response,"allusers",ext,true,false,"");
%>
5.4管理员模块
1.描述:
系统主要让管理员使用,主要包括等模块。
会员信息管理主要实现会员信息列表显示、会员信息的添加、会员信息的修改和删除等。
管理员成功登录本系统的管理系统后,可点击会员信息管理模块下的会员信息列表,可以查看本系统中会员信息,如下图所示:
图5.13会员信息列表显示界面
点击添加会员信息,添加后同时更新会员信息列表,如下图所示:
图5.14会员信息添加界面
订单管理模块下的订单信息列表,可以查看本系统中订单信息,如下图所示:
图5.13会员信息列表显示界面
点击添加订单信息,添加后同时更新订单信息列表,如下图所示:
图5.14会员信息添加界面
核心代码:
//会员信息添加
<?JSP
session_start();
include_once 'conn.JSP';
$ndate =date("Y-m-d");
$addnew=$_POST["addnew"];
if ($addnew=="1" )
{
$shipinbianhao=$_POST["shipinbianhao"];
$shipinmingcheng=$_POST["shipinmingcheng"];
$leibie=$_POST["leibie"];
$shipinjietu=$_POST["shipinjietu"];
$shipinwenjian=$_POST["shipinwenjian"];
$jianjie=$_POST["jianjie"];
$faburen=$_POST["faburen"];
//lixandonxgjixelxb
//qiuji
//qiuhe
//ischongfu("select id from shipinxinxi where trjrtjtrjrtj");
$sql="insert into shipinxinxi(shipinbianhao,shipinmingcheng,leibie,shipinjietu,shipinwenjian,jianjie,faburen) values('$shipinbianhao','$shipinmingcheng','$leibie','$shipinjietu','$shipinwenjian','$jianjie','$faburen') ";
sqlserver_query($sql);
//danjuzhixi;sqlserver_query($sql);
echo "<script>javascript:alert('添加成功!');history.back();</script>";
}
?>
<%
HashMap ext = new HashMap();
if(request.getParameter("f")!=null){
//wxfladd
//qiuji
//youshenhe
//youzhifu
//jitihuan
}
new CommDAO().insert(request,response,"tushuxinxi",ext,true,false,"");
%>
5.5系统管理
1.描述:
系统管理包括数据备份、批量删除、系统公告设置、系统简介设置、友情连接管理,系统公告设置用来决定系统的系统公告显示,系统包含友情链接,用户点击后,调至相应的链接,如百度,搜狐,新浪等知名系统,批量删除则让用户选择要情况数据库哪个表的数据,而一些重要的表则没法进行批量删除,如管理员表和权限表等。
图5.6数据备份流程图
图5.6数据备份界面
图5.6批量删除流程图
图5.6批量删除界面
2.核心代码:
//数据备份
<%
if (request.getSession().getAttribute("cx").equals("超级管理员"))
{
String sql="";
sql="backup database JSPlyqfwzlpjxt1434 to disk='D:/JSPlyqfwzlpjxt1434.dat'";
connDbBean.executeUpdate(sql);
out.print("<script>alert('操作成功!!,您的数据库已成功备份于D:/jsptJSPlyqfwzlpjxt1434emp.dat');location.href='sy.jsp';</script>");
}
else
{
out.print("<script>alert('对不起,您没有该权限');location.href='sy.jsp';</script>");
}
%>
//批量删除
<?JSP
error_reporting(0);
session_start();
include_once 'conn.JSP';
$delsjb=$_POST["delsjb"];
if($delsjb=="1")
{
$tablename=$_POST['tablename'];
$sql="delete from $tablename";
$query=sqlserver_query($sql);
echo "<script language='javascript'>alert('删除成功!');history.back();</script>";
}
?>
6 系统测试
6.1测试概述
从用户的角度出发,普遍希望通过软件测试暴露出软件中存在的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立用户对软件质量的信心。因为软件产业的产品到软件测试有各式各样的软件,这里介绍的软件测试方法可用于多数应用软件的测试。软件测试不是万能的,不能完全发现软件100%的漏洞和权限,只能将软件的权限降到最低。如果软件没有经过各种周密测试,等到投入正常使用后,将造成难以想象的后果,也可能造成巨大的经济损失。
软件测试分为黑白测试。黑盒测试即功能测试,不考虑内部代码的结构,对系统划分成各个功能小块,然后对某个功能小块测试功能是否能正确无误的执行。白盒测试又称结构测试,在了解程序的编码结构和程序的执行过程下,反复检验每条程序是否能执行,并且按照逻辑无误执行。
6.2数据库测试
数据库的测试主要是测试数据库是否能够连接上,在代码文件中进行数据库配置即可,数据库端口号为:3306、数据库名称为:expressway、用户名为:root、登录密码为:root;数据库配置代码如下:
//数据库配置
'DB_TYPE'=>'sqlserver',
'DB_HOST'=>'localhost',
'DB_USER'=>'root',
'DB_PWD'=>'root',
'DB_NAME'=>'expressway',
'DB_CHARSET'=>'utf8',
'DB_PREFIX'=>'road_',
//开启调试信息
//'SHOW_PAGE_TRACE'=>true,
根据以上编写的数据库配置,运行数据库系统,以用户名“root”,密码为root登录,若数据库连接成功,则会进入数据库系统并出现运行结果窗口;若数据库连接失败,则会发出一声提示音然后自动关闭窗口,而不会进入数据库运行窗口。
数据库连接成功界面如下所示。
图6.1数据库连接成功界面
数据库的测试主要是测试数据库是否能够连接上,在代码文件中进行数据库配置即可,数据库端口号为:1433、数据库名称为:gaoxiaopingjiao、用户名为:sa、登陆密码为:sa123456;数据库配置代码如下:
//数据库配置
<configuration>
<appSettings>
<add key="cn" value="server=.;database=netgxktjxzlpjxtrz85;uid=sa;pwd=sa123456;" />
</appSettings>
<connectionStrings />
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true" />'
public Connection getConn()
{
try
{
if(conn==null||conn.isClosed()){
// Class.forName("com.sqlserver.jdbc.Driver");
// conn = DriverManager.getConnection("jdbc:sqlserver://localhost:3306/javatemp","root","");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=jspmdxtsglxt56a9","sa","sa123456");
}}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
根据以上编写的数据库配置,运行数据库系统,以用户名“sa”,密码为sa123456登录,若数据库连接成功,则会进入数据库系统并出现运行结果窗口;若数据库连接失败,则会发出一声提示音然后自动关闭窗口,而不会进入数据库运行窗口。
此次测试截图为:
数据库连接成功界面如下所示。
图6.1数据库连接成功界面
6.3测试用例
1.登录测试,采用软件中常用的黑盒测试,方法是建立有效等价类是验证码、管理员名称和密码都正确,期望结果:登录成功。无效等价类如下表所示。
表6.1 管理员登录无效等价类
无效等价类 | 期望结果 |
验证码错误 名称空缺 密码空缺 管理员名称错误 管理员密码错误 | 验证码错误 用户名不能为空 密码不能为空 密码或者用户名错误 |
测试用例:
第1组:用户名: 密码:admin
测试结果:用户名不能为空
第2组:用户名:刘备 密码:
测试结果:密码不能为空
第3组:用户名:刘备 密码:
测试结果:用户名或密码输入不正确
图6.2 登录失败测试界面
2.修改密码测试。
修改密码模块测试,添加信息如下。
第一组
旧密码
新密码
确定新密码
第二组
旧密码
新密码
确定新密码
在登录成功后点击修改密码按钮,进入修改界面,在界面中输入上述两种测试信息,如下图所示。
图6.3修改密码测试界面
第一组测试结果如下图所示。
图6.4第一组数据测试结果界面
第二组测试结果如下图所示。
图6.5第二组数据测试结果界面
3.信息管理测试,由于原理基本一样,所以本文以用户管理测试为例,主要测试用户信息的添加、删除、修改,采用黑盒测试,输入三组测试数据来测试信息的录入功能。
测试用例:
第1组:用户名: 密码:admin
测试结果:用户名不能为空
第2组:用户名:admin1 密码:
测试结果:密码不能为空
第3组:用户名:admin1 密码:
测试结果:用户添加成功
用户信息添加测试界面如下图所示。
图6.2用户添加测试界面
7 总结
在此次毕业设计中,从开始确定题目到最后的设计的实现和论文的完成花费了好几个月。在这期间,一开始拿到任务书的时候,自己没接触过这种语言,开始学习,翻阅了大量的资料确定了课题研究的可行性,按照软件工程的思想,采用了MVC设计模式,为了提高项目开发效率,采用了三层架构,通过问题定义、可行性研究、需求分析、概要设计、详细设计、测试的过程,对系统的整个开发过程做了详细的阐述,同时,遵循结构化程序设计,对软件开发步骤做了详细的规划。本会员管理系统主要包括“登录模块”、“系统用户管理模块”、 “会员等级管理模块”、 “会员信息管理模块”、 “消费项目管理模块”、“订单管理模块”、“系统管理模块”等多个模块。完成了在会员管理系统从需求到实现的开发过程,达到预期要求目的。
本文对基于JSP技术的会员管理系统,阐述了信息化管理的需求和应用MVC设计模式的软件体系结构,进一步熟悉了JSP及相关技术,了解了WAMP开发平台的其他相关技术如HTML/CSS,JS,AJAX等页面实现技术。在设计的过程中遇到了许多问题,开始想要自己单独的配置运行环境,因为自己才接触要及时的进行开发,单独配置环境非常耗时,最后采用了WAMP集成开发环境,还有三层架构的原理及其相关的技术。最关键的是如何实现用户和管理员的业务交互。为了实现本管理系统我查阅了大量资料,也请教了许多人员,最后慢慢的理解、实现。这不仅锻炼了我的沟通能力、自学能力,同时培养了分析问题和解决问题的能力,这都为以后工作提前打下了基础。通过这次的毕业设计,使我明白只要自己努力的去学习,不断的是实践,才能真正的理解自己所做的东西。实践不仅能锻炼我,还能够提高自身的能力,增强自信心。在面对困难时要勇敢的面对,努力的去学习新东西,才有能力、有把握去克服它。虽然我现在还有许多不了解的地方,但我相信在以后的工作和生活中,我会不断提高自己,完善自己。
该系统在开发过程中仍存在许多的缺点和不足,因为系统程序的开发时间较短,准备不足和相关技术掌握的不够,所以开发出的系统软件功能还不够完善,比如&不一定是合法的用户以合法的手段传输合法的数据,所以在&的时候应该多重验证,还有本系统只是实现了$管理的少部分功能,没有进行市场调研,没有实际的相关数据,所以功能上需要再添加更多的模块,尽量达到与管理实际需求相吻合,我会在以后的设计时注意和解决这些问题,尽量做到更好。也希望读者和想要接着实现的人员注意一下这些不足之处,尽量使系统更加切合实际,更加完美。
参考文献
[1] 明日科技 JSP从入门到精通 清华大学出版社,2012年9月 第3版
[2] 刘新锋 管理系统的问题及应对措施 法制社会,2013
[3] 丁惠成,刘国灿 关于管理系统的思考 山东教育出版社,2013
[4] 韩志超 国外的网站建设与管理 中国电脑期刊,2014
[5] 吴海涛全球定位系统(GPS)及其发展综述[J] 水电科技情报,1997年02期
[6] 陈向辉 由浅入深学JSP电子工业出版社,2011年7月
[7] Dudek,ConradL,Ullm,GeraldL.Freeway Corridor Management.2012
[8] 杨东援,徐士伟,贾俊刚 管理信息系统中的共用信息平台[J] 同济大学学报(自然科学版),2000年06期
[9] 周伟 管理系统的决策方法研究[J] 清华大学学报,2010年03期
[10] 朱越管理系统的设计与实现[D] 东北师范大学,2011年
[11] 周翊鹏 信息管理系统的设计与实现[D] 电子科技大学,2012年
[12] 张本成 仓库管理系统的设计与实现[J] 渝西学院学报(自然科学版),2014年02期
[13] 黎明,郑江波 基于b/s的管理信息系统[J] 长安大学学报(自然科学版) ,2015年01期
[14] Papageorgiou M.Application of automatic control concepts to traffic flow modeling and control. .2012
[15] 樊红,吴闽泉,陈洪波 管理信息系统开发研究[J] 武汉大学学报(自然科学版),2011年05期
[16] 申琳琳 近代网站建设研究[D] 天津师范大学,2012年
[17] Payne H J.Freeway trafic control and surveillance model. Engineering Journal . 2009
[18] 高洛峰 细说JSP电子工业出版社2012年10月 第二版
致 谢
毕业设计已经到了最后时刻。在这段时间里,通过本系统的开发设计,巩固了我在大学期间所学,增强了我的实际动手能力,让我懂得了更多的道理,提高了我与老师、同学以及朋友之间的沟通能力,使我充满信心来面对明天的各种机遇和挑战。
在本次毕业设计过程中,一直在导师的细心指导下进行。在毕业设计的每个阶段遇到问题时老师总会提供一些跟我选题相关的参考资料和文献,每次都会细心检查我们的进度和系统设计,在整个设计过程中,老师付出了大量的时间,在这里要感谢他,他高度的责任心都将使会员受益终生!
通过这次毕业设计我还明白了作为一名大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。
经过近几个月的努力,我顺利完成了毕业论文。在此衷心地感谢各位领导和老师的关心和帮助,特别是指导老师,一次又一次的评阅论文,并提出了许多宝贵的意见和建议,使我进一步熟悉和掌握了系统开发的流程和方法,最终顺利地完成了本系统的开发。同时也感谢四年来各科任课老师的教导,您们授予的宝贵知识为我以后的学习、工作奠定了基础。谢谢在大学四年生活中给予我关心和帮助的老师和同学们,是他们教会了我专业的知识和做人的道理。
感谢在百忙之中参加论文评审和答辩的各位老师。