毕业论文-java同学录管理系统_第1页
毕业论文-java同学录管理系统_第2页
毕业论文-java同学录管理系统_第3页
毕业论文-java同学录管理系统_第4页
毕业论文-java同学录管理系统_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 太原理工大学毕业设计(论文)用纸. 引言1.1 设计背景近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面,使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要,同学录作为一种方便同学之间联系的实用系统便应运而生。在第14次中国互联网络发展状况统计报告中,同学录在经常使用的网络功能调查中占13.7 %比例。可以看出国内同学录的需求比例如此高,但国内同学录网站的发展却并不令人那么满意。网站的功能完善速度和内容添加幅

2、度过慢,太过急功近利,为追求利润,在服务还不完善前盲目收费;网站过于花俏,用户不易上手;系统安全存在很大隐患,不久前就有消息称5460中国同学录网九千万人信息泄露;法律和道德问题管理不规范。众多高校也都已经拥有了同学录网站,然而多数高校仅仅停留在同学录有关的信息发布上。通过互联网联络同学关键是需要建立一个通畅的同学沟通平台,这样可以方便地实现同学与母校、同学与同学之间的沟通,这也是同学录提供的服务中的一个重要内容。同学录是为校友之间进行交流和联系提供的一个平台。通过提供完善的同学录服务和规范同学录的管理,可以达到增进校友之间、校友与母校之间的感情,方便校友联系的目的。随着Internet用户的

3、剧增和Internet技术的不断发展,信息的经济效益直接体现在生产经营和管理活动中,每个重视信息资源的单位,都能利用信息资源的及时性、准确性,提高工作效率,取得经济效益和社会效益。此时,一个良好的联系方式,能从很大一个程度上提高工作效率,避免不必要的浪费宝贵的时间。1.2 系统配置运行本系统需要满足以下的一些配置要求。硬件环境服务器端/客户端:处理器:i5内存:2047M硬盘空间:251G软件环境操作系统:x86网络协议:TCP/IP浏览器:Internet Explorer 6.0显示器:VGA或更高分辨率的显示器1.3 开发技术与工具1.3.1 JSP技术JSP(Java Server P

4、ages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP标记,从而形成JSP网页。所有程序操作都在服务器端运行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP(Java Server Pages) 作为一种新的Web应用开发技术,越来越受到开发人员的关注。它为创建高度动态的Web应用提供了一个独特的开发环境,能够适应市

5、场上绝大多数的服务器产品。JSP是由多个公司参与合作建立起来的动态网页技术标准。JSP的具体特征如下:(1)分离内容的生成和演示。使用JSP技术,Web页面开发人员可以使用HTML标识设计和格式化最终页面。使用JSP标识或者Java片段来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBean组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。(2)生成可用的组件。绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者让这些组件为更多的使用者或者客户集体所使用。(3)采用标识简化页面开发。Web页面开发人员

6、不一定都是熟悉脚本语言。JSP技术封装了许多功能,这些功能都是在易用的、与JSP相关的XML标识中进行动态内容生成时所需要的。标准的JSP标识能够访问和实例化JavaBean组件、设置或者检索组件属性、下载Applet以及执行用其它方法更难于编码或耗时的功能。通过开发定制标准库,JSP 技术可以进行相当的扩展,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web 页面开发人员能够使用熟悉的工具和同标识一样执行特定功能的构件来工作。1.3.2 B/S 体系结构B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。它是随着Internet技术的兴起,对C/S模式

7、应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的(B/S模式是在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。它由浏览器、Web服务器、应用服务器和数据库服务器组成。客户端的浏览器通过URL访问Web服务器,Web服务器请求数据库服务器,并将获得的结果以HTML形式返回客户端浏览器。)。B/S模式突破了传统的文件共享及C/S模式的限制,实现了更大程度的信息共享,任何用户只要通过浏览器即可访问数据库,从而克服了时间和空间的限制。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不

8、同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据;最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。1、传统的两层B/S结构传统的两层B/S(Browser/Server,浏览器/ 服务器)结构模式比较适合于小规模、用户较少、单一数据库且在安全、快速的网络环境下 (例如局域网 )运行 。但是,随着应用系统的规模不断扩大 ,复杂性越来越高在多用户、多数据库且非安全的网络环境下(例如:Internet) ,这种两层结构的应用模型将无法适应 。而且传统的两层结构还存在以下缺陷: (1)它是单一服务器且以局域网为中心的

9、,所以难以扩展至大型企业广域网或 Intranet; (2)受限于供应商,程序的升级维护必须由供应商重新开发扩展; (3)软、硬件的组合及集成能力有限;在软件上呈现出胖客户端,用户必须在客户端安装特定的客户端应用程序,而且企业的业务逻辑都写在客户端应用程序中,程序维护困难,程序升级需要每个客户端都要安装新的客户端应用程序,同时,对于程序开发商来说,程序模块的重用性差,各个模块相对独立。 2、三层B/S结构在Browser/Server三层体系结构下,表示层(Presentatioon)、功能层(Business Logic)、数据层(Data Service)被割成三个相对独立的单元: 第一层

10、 表示层:Web浏览器 在表示层中包含系统的显示逻辑,位于客户端。它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。 第二层 功能层:具有应用程序扩展功能的Web服务器 在功能层中包含系统的事务处理逻辑,位于Web服务器端。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,而后等数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。 第三层 数据层:数据库服务器

11、 在数据层中包含系统的数据处理逻辑,位于数据库服务器端。它的任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新等功能,把运行结果提交给Web服务器。 三层B/S模式的工作原理是:客户端的浏览器通过URL访问Web服务器,Web服务器请求数据库服务器,并将获得的结果以HTML形式返回客户端浏览器。这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子苗条了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波

12、于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构层与层之间相互独立,任何一层的改变不影响其它层的功能。它从根本上改变了传统的二层Client/Server体系结构的缺陷,它是应用系统体系结构中一次深刻的变革。 3、 三层模式的主要优点为 : 良好的灵活性和可扩展性。对于环境和应用条件经常变动的情况,只要对应用层实施相应的改变,就能够达到目的。 可共享性。单个应用服务器可以为处于不同平台的客户应用程序提供服务,在很大程度上节省了开发时间和资金投入; 较好的安全性。在这种结构中,客户应用程序不能直接访问数据,应用服务器不仅可控制哪些数据被改变和被访问,而且还可控制数据的改

13、变和访问方式 。 增强了企业对象的重复可用性。“企业对象”是指封装了企业逻辑程序代码,能够执行特定功能的对象。随着组件技术的发展,这种可重用的组件模式越来越为软件开发所接受。 三层模式成为真正意义上的“瘦客户端”,从而具备了很高的稳定性、延展性和执行校率。 三层模式可以将服务集中在一起管理,统一服务于客户端,从而具备了良好的容错能力和负载平衡能力。1.3.3 SQL Server 数据库SQL Server是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力,提供了以 Web标准为基础的扩展数据库编程功能。同时提供了高

14、效的数据库解决方案,可处理海量数据,是个大型的数据库系统。其安全性、稳定性、扩展性、存储数据量都远优于access、mysql这些小型数据库。SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据的应用程序。SQLServer2005不仅可以有效地执行大规模联机事务处理,而且可以完成数据仓库和电子商务应用等许多具有挑战性的工作。SQLServer2005数据引擎是本企业数据管理解决方案的核心。此外SQLServ

15、er2005结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域。与MicrosoftVisualStudio、MicrosoftOfficeSystem以及新的开发工具包(包括BusinessIntelligenceDevelopmentStudio)的紧密集成使SQLServer2005与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQLServer2005都可以为您提供创新的解决方案,帮助您从数据中更多地获益。1.3.4 myelcip

16、se 开发环境MyEclipse企业级工作平台(HYPERLINK /view/42723.htmMyEclipseEnterprise Workbench ,简称HYPERLINK /view/42723.htmMyEclipse)是对HYPERLINK /view/23576.htmEclipseIDE的扩展,利用它我们可以在HYPERLINK /view/1088.htm数据库和JavaEE的开发、发布以及HYPERLINK /view/330120.htm应用程序HYPERLINK /view/133203.htm服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEEHYPER

17、LINK /view/14867.htm集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,JSP,CSS,Javascript等技术。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。

18、在结构上,MyEclipse的特征可以被分为7类:HYPERLINK /view/169790.htmJavaEE模型WEB开发工具EJB开发工具HYPERLINK /view/330120.htm应用程序HYPERLINK /view/133203.htm服务器的连接器JavaEE项目部署HYPERLINK /view/133203.htm服务HYPERLINK /view/1088.htm数据库HYPERLINK /view/133203.htm服务MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的HYPERLINK /view/18

19、979.htm插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。2. 系统分析2.1 可行性分析并非任何问题都有简单明显的解决办法,事实上,许多问题不可能在预定系统规模或时间期限之内解决。如果问题没有可行的解,那么花费在这项工程上的任何时间、人力、软硬件资源和经费,都是无谓的浪费。可行性分析以调查研究的结果为基础,经过可行性调研,进一步论证系统的必要性和可能性。根据目前的形式,网络的竞争越来越大,在这追求高效的社会,开发网站要有市场的需求。可行性分析的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决,主要通过经

20、济可行性分析、技术可行性分析、社会可行性分析进行确定。2.1.1 经济可行性分析由于该同学录管理系统比较小,所以对于自己的财力方面来说都是可行的。计算机一台和其他的一些相关的附属物品已经具备,并且该系统开发的时间较短,只需一只两个月的时间即可实现。由于该系统相对来说比较简单,系统的维护费用也不高。开发完成后,可以实现准确与快速一体化,大大方便了同学们的联系,因此,该系统的开发在经济上是完全可行的。2.1.2 技术可行性分析根据该同学录管理系统目标来衡量所需的技术是否具备,一般可以从硬软件的性能要求,和技术人员水平等方面去考虑和分析。该同学录管理系统基于B/S模式,在MYECLIPSE集成开发环

21、境下采用JSP语言和JAVA相关技术开发完成。开发此管理系统的软件在网上都可免费下载安装,系统的软件开发平台已成熟。硬件方面,科技的飞速发展使硬件的更新速度越来越快,容量越来越大,可行性越来越高。开发人员水平方面,因为在培训基地已将相关技术学习,因此综合各方面考虑,该系统的开发在经济上是完全可行的。2.1.3 社会可行性分析在现今社会,顺着信息化和计算机技术的高度发展,越来越多的人意识到信息化是提升工作效率不可缺少的重要步骤。本同学录的学生进行交流和联系提供一个平台。利用现代网络资源的优势和技术优势,通过提供完善的同学录服务,和规范同学录的管理,以达到增进同学们之间的感情,方便同学们的联系,通

22、过进入网站了解查看班级公告,发表个人留言等,这样大大减少了班级管理工作任务,提高了信息传播的时效性,并从根本上减少了管理费用。另一方面在当今的信息化时代里,一个班级的声誉在很大程度上都是依靠网络的宣传来实现的,而该同学录管理系统恰恰能够借助现代网络技术大力宣传班级风貌,为校园增色添采,丰富班级文化生活,优化了校园的宣传工作。2.2 需求分析为了开发出能真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼。需求分析的重点是调查、收集与分析用户在数据

23、管理体制中的信息要求、处理要求、安全性与完整性要求。信息要求是指用户需求从数据库中获得信息的内容和性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。系统必须能够满足用户的信息要求、处理要求、安全性与完整性要求。通过对太原理工大学在校同学的深入调查,得到的需求如下:2.2.1 功能需求一、普通用户的功能需求1 前台服务界面能为新用户提供注册/登录功能。2. 能够让用户在同学录管理系统中修改自己的基本资料。3. 注册用户能够查询班级通讯录,查询同学的相关信息。4. 注册用户还能够浏览

24、班级相册并上传照片。5. 注册用户还能够在班级论坛进行发帖留言。6. 注册用户还能够在公告信息栏查看公告信息。二、管理员的功能需求1 系统后台能够为管理员提供登录功能。2 管理员能够对自己的登录密码进行修改。3 管理员能根据新注册用户登记表的信息进行有筛选性地录入,即能够剔出重表,并能记录用户录入的相关信息。4. 管理员能够对网站首页的班级介绍进行编辑和修改。5 管理员能够对用户上传的照片进行删除。6 管理员能够在公告信息栏发布班级公告信息。7 管理员能够在班级论坛上对一些不恰当的留言进行删除。三、用例图1.用例图的含义及画法用例图(UseCaseDiagram)是由软件需求分析到最终实现的第

25、一步,它描述人们如何使用一个系统。用例视图显示谁是相关的用户、用户希望系统提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。用例图在各种开发活动中被广泛的应用,但是它最常用来描述系统及子系统。当用例视图在外部用户出现以前出现时,它捕获到系统、子系统或类的行为。它将系统功能划分成对参与者(即系统的理想用户)有用的需求。而交互部分被称作用例。用例使用系统与一个或者多个参与者之间的一系列消息来描述系统中的交互。用例图包含六个元素,分别是:参与者(Actor)、用例(UseCase)、关联关系(Association)、包含关

26、系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。用例图可一个包含注释和约束,还可一个包含包,用于将模型中的元素组合成更大的模块。有时,可以将用例的实例引入到图中。用例图模型如下所示,参与者用人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。普通用户和管理员的用例图普通用户用例图如图2-1所示图2-1普通用户用例图管理员用例图如图2-2所示图2-2管理员用例图2.2.2 性能需求(1)系统处理能力:同学录系统不但涉及到留言功能,班级相册,通讯录等各个功能,还同时对多个不同用户的操作进行管理和控制,在这个过程中参与的用户较多,较为复杂,因此系统要

27、具有较好的大用户量下的并发响应能力。(2)处理时间:理想状态下系统应为用户提供24小时服务。(3)响应速度:要求能够响应快速;响应速度尽量控制在用户可忍受等待的时间内,并给予提示。(4)主要依赖数据库的良好维护和管理以及对数据的保密等措施。所以在数据在遇到严重的丢失或损坏后能快速的进行恢复以继续维持系统正常运行。所以本系统采用了定时对数据库的备份和数据的恢复措施。2.2.3 出错处理需求这类需求说明系统对环境错误应该怎样响应。在某些情况下,“出错处理”指的是当应用系统发现它自己犯了一个错误时所采取的行动。但是,应该有选择地提出这类出错处理需求。我们的目的是开发出正确的系统,而不是用无休止的出错

28、处理代码掩盖自己的错误。总之,对应用系统本身错误的检测应该仅限于系统的关键部分,而且在一个月内在任何一台计算机上该系统不可用的时间不允许超过总时间的2%。3. 系统概要设计3.1 系统总体要求可靠性(Reliable):软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。安全行(Secure):软件系统所承担的交易的商业价值极高,系统的安全性非常重要。可扩展性(Scalable):软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。 可定制化(Customizable):同样的一套软件,可以根据客户群的不同和市场

29、需求的变化进行调整。可扩展性(Extensible):在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。可维护性(Maintainable):软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费。客户体验(Customer Experience):软件系统必须易于使用。市场时机(Time to Market):软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。3.2 系统概述本系统使用JSP技术的动态网页与SQL Server2005数据库结合

30、设计建立的一个网络同学录管理系统。用户首先通过内部网络访问本网站,进行简单的注册并经管理员审核通过后,即拥有了使用本网站上所提供的除后台管理外的各功能的权力。本网站的功能包括班级成员通讯录、班级相册、照片上传、成员注册、成员登录、我的信息、班级论坛、公告信息、系统后台。班级论坛提供用户之间的主要的交流的平台,用户可以发起自己的帖子,来引起班级其它同学的对本帖的讨论或回复,同时用户也可对自己或别人的帖子提出自己的见解,从而很好地促进了班级内同学的交流。公告信息可以是班级的老师班长或其它同学的发布,通过发布公告达到快速了解及处理班级事务的目的。班级相册可以将班级内同学的相册传到网站上自由浏览,增加

31、班级的亲和力。3.3 系统流程根据设计要求,用户登陆本网站首页时,选择用户的角色,管理员选择管理员入口进入管理员登陆页面,验证成功后直接进入网站系统管理模块,对系统的各功能进行管理,包括系统管理、修改密码、班级介绍、成员管理、班级相册、公告信息、班级论坛。一般用户通过普通用户入口进入一般用户登陆界面,在此页面登陆验证成功后即拥有了访问网站各项功能的权力,包括班级成员通讯录、班级相册、照片上传、我的信息、班级论坛、公告信息。同学录管理系统使用流程如图3-1所示。图3-1同学录管理系统使用流程图3.4 系统模块为了满足同学录管理系统的交流的根本目的,根据班级所固有的特点,本网站应包括五大模块:用户

32、模块、班级论坛模块、相册模块、公告信息模块与管理模块。用户模块主要功能就包括角色划分与用户注册,角色主要划分为一般用户和管理员,普通用户可以对自己的信息查询及修改等,管理员通过管理模块来管理整个网站;班级论坛模块,论坛主要实现注册用户能在此网站平台之上交流,一般用户可以回复别人的发言,亦可提出自己的言论,以获取他人的建议与意见;相册模块,包括用户上传图片以及图片的浏览功能;公告信息模块可以发布公告信息;最后是管理模块,主要是管理员对于整个网站的综合性管理,包括系统管理、修改密码、班级介绍、成员管理、班级相册、公告信息、班级论坛。系统模块图如图3-2所示 3-2系统模块图3.5 数据库设计3.5

33、.1 数据库分析为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,它反映了用户的现实环境,而且与软件系统中的实现方法无关。通常,使用实体-联系图(entity-relationship diagram)来建立数据模型。可以把试题联系图简称ER,相应地可以用E-R图描绘的数据模型简称E-R模型。下面简介一下本系统的主要功能模块的主要实体的信息。普通用户信息实体:是本同学录的中心实体,存放本同学录的信息管理的对象同学的基本信息。相册信息实体:主要

34、存放本同学录用户的相册照片的基本信息。公告信息实体:用来存放发布的公告信息。班级论坛信息实体:主要存放发布帖子的信息。班级介绍信息实体:用来存放网站首页班级介绍的信息。管理员信息实体:也是本同学录的另一个用户实体,存放本同学录的信息管理者的基本信息。基本信息属性图1.普通用户信息实体信息:用户ID,用户名,用户密码,姓名,性别,年龄,住址,联系方式,email,QQ号码。主键为用户ID。普通用户实体属性如图3-3所示。图3-3普通用户实体属性2.相册信息实体信息:相片ID,相片名称,相片介绍,上载时间,附件,上传用户。主键信息为相片ID。相册实体属性图如图3-4所示。 图3-4相册实体属性图3

35、.公告信息实体信息:公告ID,公告标题,公告内容,发布时间。主键为公告ID。公告信息实体属性图如图3-5所示。 图3-5公告信息实体属性图4.班级论坛信息实体信息:信息ID,帖子标题,帖子内容,发帖时间,发帖用户。主键为信息ID。班级论坛信息实体属性如图3-6所示。 图3-6班级论坛实体属性图5.班级介绍信息实体信息:介绍ID,内容。主键为介绍ID。班级介绍信息实体属性如图3-7所示。 图3-7班级介绍实体属性图6.管理员信息实体信息:用户ID,用户名,用户密码。主键为用户ID。管理员信息实体属性如图3-8所示。 图3-8管理员实体属性实体E-R图实体与实体之间的描述就是我们所说的E-R图。实

36、体普通用户与实体管理员为n:p的联系,即多个普通用户可以被多个管理员所管理。实体普通用户与实体相册为n:m1的联系,即多个普通用户可以浏览上传多个相册,多个相册可以被多个普通用户浏览上传。实体普通用户与实体公告信息为n:m2的联系,即多个普通用户可以浏览多个公告信息,多个公告信息可以被多个普通用户所浏览。实体普通用户与实体班级论坛为n:m3的联系,多个普通用户可以发多个论坛帖子,多个论坛帖子可以被多个普通用户所发。实体普通用户与班级介绍为n:1的联系,即多个普通用户可以浏览一个班级介绍,一个班级介绍可被多个普通用户所浏览。实体管理员与实体相册为p:q1的联系,即多个管理员可以管理多个相册,多个

37、相册可以被多个管理员所管理。实体管理员与实体公告信息为p:q2的联系,即多个管理者可以管理多个公告信息,多个公告信息可以被多个管理员所管理。实体管理员与实体班级论坛为p:q3的联系,多个管理员可以管理多个论坛帖子,多个论坛帖子可以被多个管理员所管理。实体管理员与班级介绍为p:1的联系,即多个管理员可以管理一个班级介绍,一个班级介绍可被多个管理员所管理。该同学录管理系统的E-R图如图3-9所示 图3-9同学录管理系统E-R图3.5.2 数据库表结构根据需求分析及模块划分,设计数据库表结构如下。1.用户信息表用户信息表中包括有用户ID,用户名,用户密码,姓名,性别,年龄,住址,联系方式,email

38、,QQ共10个字段,主键为用户编号,具体设计如表用户基本信息所示。表3-1 用户基本信息表编号字段名称数据类型说明1 id int用户ID2 loginnamevarchar(50)用户登录名3loginpwvarchar(50)用户密码4namevarchar(50)姓名5sexvarchar(50)性别6age int年龄7addressvarchar(50)地址8telvarchar(50)联系方式9emailvarchar(50)邮箱地址10QQvarchar(50)QQ2.公告信息表公告信息表包括公告ID,公告标题,公告内容,发布时间共4个字段,主键为公告ID,具体设计如表3-2所示

39、。 表3-2 公告信息表编号字段名称数据类型说明1 id int公告ID2 titlevarchar(50)公告标题3 contentvarchar(50)公告内容4 shijiandatetime发布时间3.班级论坛表班级论坛表包括信息ID,帖子标题,帖子内容,发帖时间,发帖用户共5个字段,主键为信息ID,具体设计如表3-3所示。表3-3 班级论坛表编号字段名称数据类型说明1 id int信息ID2 titlevarchar(50)帖子标题3 contentvarchar(50)帖子内容4 shijiandatetime发帖时间5 user_idvarchar(50)发帖用户4.相册表相册表

40、包括相片ID,相片名称,相片介绍,上载时间,附件,上传用户6个字段,主键为相片编号,具体设计如表3-4所示。表3-4 相册表编号字段名称数据类型说明1 id int照片ID2 titlevarchar(50)照片名称3 contentvarchar(50)照片介绍4 fujianvarchar(50)附件5 shijiandatetime上传时间6 user_id int上传用户5.管理员信息表管理员信息表包括用户ID,用户名,用户密码共3个字段,主键为用户编号,具体设计如表3-5所示。表3-5管理员信息表编号字段名称数据类型说明1 id int用户ID2 usernamevarchar(50

41、)用户名3usepwvarchar(50)用户密码6.班级介绍表班级介绍表包括介绍ID,内容共2个字段,主键为介绍ID,具体设计如表3-6所示。 表3-6班级介绍表编号字段名称数据类型说明1 id int介绍ID2 contentvarchar(5000)内容 4. 系统详细设计4.1 用户模块用户模块包括用户注册,用户登录,我的信息。用户注册信息包括:用户名,密码,姓名,性别,年龄。用户注册页面如图4-1所示。图4-1 用户注册页面当用户提交注册信息后,还需要经过管理人员的审核,审核成功后,才能进行登录,登陆的信息包括用户名,密码。当登录后,系统会提示登陆成功,登陆成功页面如图4-2所示.图

42、4-2 登陆成功页面 用登录成功后需要进入我的信息,我的信息包括用户名,用户密码,真实姓名,性别,年龄,现工作地址,联系方式,email,QQ。我的信息界面如图4-3所示,将里面的不完整信息补充完整,下次登录时更新,此时用户就可以使用网站上普通用户所拥有的功能。图4-3 我的信息页面 核心代码如下:public void userReg(HttpServletRequest req,HttpServletResponse res)String id=String.valueOf(new Date().getTime();String loginname=req.getParameter(log

43、inname);String loginpw=req.getParameter(loginpw);String name=req.getParameter(name);String sex=req.getParameter(sex);String age=req.getParameter(age);String address=;String tel=;String email=;String qq=;String zhuangtai=a;String del=no;String sql=insert into t_user values(?,?,?,?,?,?,?,?,?,?,?,?);Ob

44、ject params=id,loginname,loginpw,name,sex,age,address,tel,email,qq,zhuangtai,del;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 注册成功。等待管理员审核中);req.setAttribute(path, qiantai/default.jsp);String targetURL = /common/success.jsp;dispatch(targetURL, req, res);public vo

45、id userLogout(HttpServletRequest req,HttpServletResponse res)req.getSession().setAttribute(user, null);String targetURL = /qiantai/default.jsp;dispatch(targetURL, req, res);public void userEdit(HttpServletRequest req,HttpServletResponse res)String id=req.getParameter(id);String loginname=req.getPara

46、meter(loginname);String loginpw=req.getParameter(loginpw);String name=req.getParameter(name);String sex=req.getParameter(sex);String age=req.getParameter(age);String address=req.getParameter(address);String tel=req.getParameter(tel);String email=req.getParameter(email);String qq=req.getParameter(qq)

47、;Stringsql=updatet_user set loginpw=?,name=?,sex=?,age=?,address=?,tel=?,email=?,qq=? where id=?;Object params=loginpw,name,sex,age,address,tel,email,qq,id;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 修改成功,重新登录后生效);req.setAttribute(path, qiantai/default.jsp);Stri

48、ng targetURL = /common/success.jsp;dispatch(targetURL, req, res);4.2 班级相册模块4.2.1 图片上载班级成员在上传照片前必须先进行登录,登陆后才能进行上传照片,上传照片的信息包括标题,介绍,附见。上载页面主要控件由开源的上传组件jspsmartupload来实现。按钮Button1首先取得上传文件的文件名与文件扩展名,然后对文件扩展名进行比较,保证上传的为bmp,jpeg,jpg,gif 四种图片中的一种,之后用mySmartUpload类的对象调用类中的方法saveAs (),判断上传图片名在数据库中是否有重名。若无重名,

49、则将图片写入到固定的文件夹中,同时将此图片的文件名导入数据库中设计视图如图4-3所示图4-3 图片上传界面核心代码如下: String newFile1Name=null; SmartUpload mySmartUpload = new SmartUpload();/初始化上传 mySmartUpload.initialize(pageContext);/只允许上载此类文件try /mySmartUpload.setAllowedFilesList(jpg,Jpg,JPG,GIF,gif,Gif,png);mySmartUpload.upload(); catch (Exception e)

50、/out.println(alert(上传格式错误!); history.back(-1););/return;try com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0); if (myFile.isMissing() out.println(alert(必须选择图片!); history.back(-1);); return; else int file_size = myFile.getSize(); /取得文件的大小 (单位是b) String file_name=myFile.getFileName

51、(); System.out.println(文件大小:+file_size+文件名称:+file_name); /if (file_size 10*1024*1024) / /out.println(alert(上传图片大小应控制在10K1M之间!); history.back(-1);); /return; / /else / newFile1Name=new Date().getTime()+file_name.substring(file_name.indexOf(.); System.out.println(新文件名称:+newFile1Name);String saveurl =

52、request.getSession().getServletContext().getRealPath(upload); saveurl = saveurl+/+newFile1Name; myFile.saveAs(saveurl, mySmartUpload.SAVE_PHYSICAL); / catch (Exception e) e.toString(); 4.2.2 相册浏览当用户注册成功后,就具有的普通用户的权限,普通用户的权限就包括相册浏览功能,此时就能进入班级相册进行浏览,浏览班级相册页面如图4-4所示。图 4-4 班级页面相册当点击照片时,就会显示照片详细信息,包括标题,介

53、绍,上传时间,上传成员。照片信息如图4-5所示。图4-5 相册详细信息页面核心源代码如下:public void zhaopianAdd(HttpServletRequest req,HttpServletResponse res)HttpSession session=req.getSession();Tuser user=(Tuser)session.getAttribute(user);String title=req.getParameter(title);String content=req.getParameter(content);String fujian=req.getPar

54、ameter(fujian);String shijian=new Date().toLocaleString();String user_id=user.getId();String del=no;String sql=insert into t_zhaopian values(?,?,?,?,?,?);Object params=title,content,fujian,shijian,user_id,del;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req

55、.setAttribute(path, zhaopian?type=zhaopianAll);String targetURL = /common/success.jsp;dispatch(targetURL, req, res); public void zhaopianDel(HttpServletRequest req,HttpServletResponse res)String id=req.getParameter(id);String sql=update t_zhaopian set del=yes where id=?;Object params=id;DB mydb=new

56、DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req.setAttribute(path, zhaopian?type=zhaopianMana); String targetURL = /common/success.jsp;dispatch(targetURL, req, res);Public void zhaopianMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOExc

57、eptionList zhaopianList=new ArrayList();String sql=select * from t_zhaopian where del=no;Object params=;DB mydb=new DB();trymydb.doPstm(sql, params);ResultSet rs=mydb.getRs();while(rs.next()Tzhaopian zhaopian=new Tzhaopian();zhaopian.setId(rs.getInt(id);zhaopian.setTitle(rs.getString(title);zhaopian

58、.setContent(rs.getString(content);zhaopian.setFujian(rs.getString(fujian);zhaopian.setShijian(rs.getString(shijian);zhaopian.setUser_id(rs.getString(user_id);zhaopian.setDel(rs.getString(del);zhaopian.setUser(liuService.getUser(rs.getString(user_id);zhaopianList.add(zhaopian); rs.close();catch(Excep

59、tion e)e.printStackTrace();mydb.closed();req.setAttribute(zhaopianList, zhaopianList);req.getRequestDispatcher(admin/zhaopian/zhaopianMana.jsp).forward(req, res);4.3 班级通讯录模块用户登陆后点击“班级通讯录”,页面跳转到“班级通讯录”界面,该页面主要设计目的是显示改班级所有成员的基本信息,班级通讯录页面如图4-6所示 图4-6 班级通讯录页面代码如下所示: publicvoid userAll(HttpServletRequest

60、 req,HttpServletResponse res) throws ServletException, IOExceptionList userList=new ArrayList();String sql=select * from t_user where del=no order by zhuangtai;Object params=;DB mydb=new DB();trymydb.doPstm(sql, params);ResultSet rs=mydb.getRs();while(rs.next()Tuser user=new Tuser();user.setId(rs.ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论