




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)报告学生毕业设计(论文)报告系别:专业: 班级:学生姓名:学生学号:基于web的企业内部通信平台设计与实现(通信系统)指导教师:设计地点:起迄日期:
毕业设计(论文)任务书专业班级姓名一、课题名称:基于web的企业内部通信平台设计与实现(通信系统)二、主要技术指标(或基本要求):1、能力要求:JSP,MySql,web框架 2、网页制作工具:DreamWeaver工具3、编程技术:web框架技术,如Spring技术、Struts技术、Hibernate技术、系统架构为B/S架构,JavaScript,Ajax等技术在项目的应用,运用于前台交互。配置数据库连接池进行对数据库进行访问、操作(新增、查询、删除、修改数据等)。三、主要工作内容:1、设计需求分析,系统结构功能,设计需求的业务流程;系统设计,数据库架构,详细设计。2、对企业内部通信平台系统进行对不同用户设置不同的登录账号,每个用户拥有各自的权限,用户信息及公共资源确保只在自己的用户登录成功之后可以访问,才可进行其他功能操作。页面之间的交互以实际功能作为依据,确保能真实有效的运行系统,进行有效的系统维护。四、主要参考文献:[1]《HTML5+CSS3从入门到精通》李东博著清华大学出版社2013-06-01出版[2]《JSP从精通到入门》宋智军、邱仲潘著电子工业出版社2012-07-01出版[3]《JAVAJDK实例宝典》夏先波著电子工业出版社2007-01-01出版[4]《MySQL5.6从零开始学》刘增杰、李坤著清华大学出版2013-09-01出版学生(签名)年月日指导教师(签名)年月日教研室主任(签名)年月日系主任(签名)年月日
毕业设计(论文)开题报告设计(论文)题目基于web的企业内部通信平台的设计与实现选题的背景和意义:本系统的设计目标是实现一个企业内部局域网通信系统,企业内部职工可以方便的进行交流,可以大大的提高职工的工作效率。根据企业对局域网通信的需求,本系统主要包括信息通信、系统设置、搜索用户、访问公共资源、访问对方主机四大功能。各功能概述如下:1、信息通信:信息通信是企业内部通信系统的核心功能,它用于不同职工之间的通信,这种通信方式能够实现多个职工之间的通信,而不存在类似电话占线的问题,增加了任务分配的新方式,从而提高企业的工作效率。2、系统设置:系统设置用于设置用户界面、公共路径、公告栏等的功能。3、用户搜索:用户搜索用于搜索企业局域网内的其他用户,系统会根据用户帐号或IP搜索所有计算机上的用户。4、访问公共资源:访问公共资源用于实现企业内部公共服务器上资源访问的功能。课题研究的主要内容:在信息化时代,随着计算机技术和网络通信技术的进一步发展,企业通信技术正在成为企业网络活动中不可或缺的业务,企业内部通信软件的研究日益成为互联网应用领域中的一个热点研究课题。企业内部通信软件的产生和发展成熟,促进了企业内部信息流的迅速、高效流通,推动了企业员工工作效率的提高,降低了企业资金和管理成本的支出,带来了企业管理的新思路和新方法,同时也引起了更多的人对该应用领域的关注。本系统的设计目标就是实现一个企业内部局域网通信系统,企业内部职工可以方便的进行交流,可以大大的提高职工的工作效率。也加强了企业内部的整个工作速率,让企业更好更快的发展。主要研究(设计)方法论述:采用eclipse(-jee-LUNA)作为开发工具,使用Java语言进行代码编写;数据库采用MySql;服务器使用Tomcat8.0,JDK1.8版本,使用JSP作为页面,web框架辅助;采用Dreamweaver设计网页;采用Windowswin7以上的操作系统。四、设计(论文)进度安排:时间(迄止日期)工作内容6.19~6.23确定毕业设计选题6.24~6.26总结选题内容及撰写开题报告和任务书6.26~7.1对项目进行需求分析、设计、复习相关技术7.2~7.4项目框架(MVC)设计、数据库设计7.4~7.16项目详细设计、总结出主要功能模块7.16~7.19项目主界面设计、各模块界面设计及代码编写7.19~7.26后台代码的设计与编写,单元测试、集成测试7.26~7.31整理并填写毕业设计论文五、指导教师意见:指导教师签名:年月日六、系部意见:系主任签名:年月日目录TOC\o"1-3"\h\u摘要 IAbstract II第一章绪论 11.1课题研究背景 11.2研究的意义 11.3课题主要研究内容 11.4论文的组织 2第二章开发技术 32.1Struts2技术 32.2Spring技术 42.3Hibernate技术 52.4JavaScript,Ajax技术 5第三章需求分析 63.1需求说明 63.2业务流程 73.3系统结构功能 73.4功能分析 8第四章系统设计 104.1系统架构设计 104.2数据库设计 104.3详细设计 114.3.1公共资源管理功能 114.3.2群聊通信功能 134.3.3私聊通信功能 154.3.4消息提示功能 174.3.5系统设置功能 184.3.6搜索功能 204.3.7登陆和注册功能 22第五章系统实现与测试 245.1程序结构 245.2系统的模块具体实现 245.2.1公共资源管理功能实现 245.2.2群聊通信功能实现 255.2.3私聊通信功能实现 265.2.4消息提示功能实现 275.2.5系统设置功能实现 285.2.6搜索功能实现 305.2.7登录和注册功能实现 315.3运行结果展示 325.3.1公共资源模块展示 325.3.2群聊模块展示 335.3.3私聊模块展示 345.3.4系统设置模块展示 345.3.5消息提示模块展示 355.3.6搜索模块展示 355.3.7注册和登录模块展示 365.4系统测试 365.4.1配置测试环境 365.4.2测试总结 36第六章总结与展望 426.1总结 426.2展望 42致谢 43参考文献 44摘要随着Internet技术的兴起,基于B/S的应用程序越来越受到广大用户的欢迎。通过运行B/S结构程序,只需部署服务器,客户端就可以在浏览器上运行。用户可以通过浏览器轻松地使用不同的客户端,程序也可以运行在不同的平台上。相对于C/S结构的软件技术来说,B/S在技术上,无论从数据的安全性、一致性和实时性、服务影响性及时性、网络应用限制性均优于C/S技术,B/S在投入成本、硬件投资保护、企业快速扩张支持等方面明显优于C/S。传统的通信平台是基于C/S结构的桌面应用程序,用户在使用前需要安装特定的客户端。虽然有良好的通信功能,但是这种特定的客户端安装程序不能很好的适用不同的平台,部署服务器过程也较为复杂,系统升级时要同时升级客户端和服务端,导致其升级和维护相当不便。本系统就是针对上述不便的缺陷,采用B/S通信技术开发企业内部的通信平台。本系统的设计目标就是实现一个企业内部局域网通信系统,企业内部职工可以方便的进行交流,可以大大的提高职工的工作效率。也加强了企业内部的整个工作速率,让企业更好更快的发展。同时也避免了通信系统升级和维护困难的麻烦,是企业内部职工可以轻松的通过局域网与同事交流,下载文件,而无须在意网络传输出现的中断现象。也可避免类似于电话占线的问题,增加了任务分配的新方式,从而提高企业的工作效率。关键词:C/S技术,B/S技术,web通信,通信平台
AbstractWiththeriseoftheInternettechnology,basedonB/Sapplicationmoreandmoregetthewelcomeofthemassesofusers.ByrunningtheprogramB/Sstructure,thedeploymentserver,theclientcanrunonthebrowser.Userscaneasilyusethedifferentclients,programscanrunondifferentplatforms.RelativetoC/Sstructureofthesoftwaretechnology,B/Sonthetechnology,nomatterfromthesecurityofthedata,consistency,andreal-time,affectsexualtimelyservices,webapplicationsarerestrictedisbetterthanthatofC/Stechnology,B/Sininputcosts,thehardwareinvestmentprotection,enterprisesrapidlyexpandingsupportisbetterthanC/S.ThetraditionalcommunicationplatformisbasedonC/Sstructureofdesktopapplications,usersneedtoinstallaspecificclientbeforeuse.Althoughhasthegoodcommunicationfunction,butthisparticularclientinstallercannotbegoodfordifferentplatforms,thedeploymentserverprocessisrelativelycomplicated,thesystemupgradetoupgradetheclientandtheserveratthesametime,leadtotheupgradeandmaintenanceisinconvenient.Thissystemisaimedatthedefectsoftheinconvenience,adoptsB/Scommunicationtechnologydevelopmententerpriseinternalcommunicationplatform.ThedesigngoalofthissystemistoimplementanenterpriseinternalLANcommunicationsystem,internalstaffcancommunicateconvenient,cangreatlyimprovetheworkefficiencyoftheworkers.Alsostrengthenedtherateofthewholeworkwithintheenterprise,makeenterprisebetterandfasterdevelopment.Alsotoavoidthetroublecommunicationsystemupgradeandmaintenancedifficulties,istheenterpriseinternalstaffcaneasilythroughtheLANcommunicationwithcolleagues,downloadfiles,withoutcarenetworktransmissionphenomenonofinterruption.AlsocanavoidsimilartoTheproblemofthelineisbusy,increasedthenewwayofassignedtasks,soastoimprovetheworkefficiencyoftheenterprise.keywords:C/Stechnology,B/Stechnology,networkcommunication,thecommunicationplatform第一章绪论1.1课题研究背景基于web的通信平台实际上可以理解为基于B/S结构的通信系统。鉴于C/S结构的即时通信存在的弊端,如维护和升级方式困难、成本较高,选择少、运行在不通平台需要不通的客户端,无法满足更多的需求。而基于web的通信平台就比较有优势,首先,用户无须安装客户端,使用浏览器即可实现客户端功能,其次基于web的软件软件更新和系统围护更方便。在商用方面,基于web的通信平台投入的成本比较C/S结构的通信平台的成本低,而且软件系统扩展性更好,界面更加友好。而谷歌公司退出的Ajax更加完美了web应用程序的异步访问,从而使得web应用程序在客户端运行效果更优秀,用户自然更倾向于基于web的通信平台。为了能够使得企业内部的通信更具有保障,并且可以在局域网内顺畅的交流,从而提高企业内部职工的工作效率。从而使得基于web的企业内部通信平台的设计和实现打下了坚实的背景基础,也促进了web通信系统的发展,进而满足更多的用户需求。1.2研究的意义企业内部通信系统是为企业的各种通信交流提供方便的通信平台,满足职工对资源的获取阅读及基本交流,它已经越来越广泛的应用到各大企业的关注,并随着不断的完善发挥着越来越重要的作用。使用企业内部通信系统会在下列4方面给企业带来切实的效果:1、为企业提供局域网即时通信;2、是实现公共资源的上传和下载;3、提高资源的利用性和质量;4、为职工提供良好的资源共享平台和交流平台。1.3课题主要研究内容研究企业内部通信平台带来的交流方便与安全,加强企业内部职工的工作效率,提高工作质量的同时也促进了企业内部职工之间的了解与信任。而我的课题研究内容主要是无障碍多用户通信模块和共同资源管理模块,如下详述:信息通信:实现局域网内群聊和私聊功能。系统设置:系统设置用于设置用户界面、个人信息、好友管理等的功能。用户搜索:搜索企业局域网内的其他用户。访问公共资源:访问公共资源用于实现企业内部公共服务器上资源访问。1.4论文的组织第一章绪论,主要介绍了企业内部通信平台的研究背景,意义及其主要的研究内容;第二章开发技术,介绍了在开发系统当中所用到技术;第三章需求分析,详述了企业内部通信平台的业务流程及系统结构框架;第四章系统设计,详述了企业内部通信平台的系统架构和功能的设计;第五章系统实现与测试,介绍了企业内部通信平台功能的实现及测试;第六章总结与展望,总结了这次系统的开发,描述了未来的展望。
第二章开发技术本章主要介绍了企业内部通信平台在开发过程中运用到的相关开发技术,主要有Struts2技术,Spring技术,Hibernate技术,JavaScript,Ajax技术等。2.1Struts2技术官方解释,Struts2是Struts1的下一代产品,但是在Struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。它是以WebWork为核心的,所以也是采用拦截器机制来处理前台请求,很大程度上与ServletAPI分开,所以Struts2可以理解为WebWork的更新产品。Struts2框架结构图如图2-1所示。图2-1Struts2框架图2.2Spring技术Spring是一个开源框架,它的创建是为了解决企业应用开发的复杂性。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为
J2EE
应用程序开发提供集成的框架。Spring是一种轻量级框架,用Spring开发的系统不需要依赖Spring中类,它不需要容器支持。所以Spring很适合web开发。Spring核心技术可总结为:IOC:控制反转AOP:面向切面编程2、Spring模块图:下图为Spring的工作图:图2-2Spring框架图Spring的特点有:1、方便解耦,简化开发通过Spring提供的IOC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。2、AOP编程的支持通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。3、事务支持在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。2.3Hibernate技术是一个对象关系映射框架,对JDBC进行了轻量级的封装,可以让开发者以面OOP编程思维去持久化数据。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate提供的HQL是面向对象的查询语言,它在对象型数据库和关系型数据库之间构建了一条快速高效便捷的沟通渠道,HQL语言类似与SQL语言。下面是Hibernate的框架图:图2-3Hibernate框架图Hibernate各层实现功能说明:Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。Hibernate利用缓存机制和延迟加载,大大提高了数据库的工作效率,且开发者无须持久化对象。2.4JavaScript,Ajax技术JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。Javascript最初是做表单验证的,随着互联网的发展,Javascript的作用越来越大。AJAX即“Asynchronous
Javascript
And
XML”(异步JavaScript和XML),通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。第三章需求分析本章主要详述了企业内部通信平台的需求设计,系统业务的流程,资源系统的结构框架,各个模块的功能分析。3.1需求说明企业内部通信平台主要包括:1、信息通信:信息通信是企业内部通信系统的核心功能,它用于不同职工之间的通信,这种通信方式能够实现多个职工之间的通信。用户可以和所有在线用户进行群聊或者与其他用户私聊。1.1、群聊:用户登录成功后,通过点击群聊按钮显示群聊界面,用户可以输入消息并发送消息给其他在线好友,同时页面也会自动接收和刷新该群里的所有消息。1.2、私聊:用户登录成功后,在好友列表里,通过点击联系按钮,进入与对方私聊的界面。用户同样可以编写信息、发送信息和接收、刷新两人的聊天信息。该通信功能可以优化用户间交流方式和质量,从而避免类似于电话占线的不便,同时也提高了用户的工作和学习效率。2、系统设置:系统设置用于设置用户界面、个人信息、密码设置、添加分组、删除分组、好友管理等的功能。用户登录成功后,可以通过点击菜单中的设置按钮进入系统设置界面,该界面包括信息设置、密码设置、分组管理、好友管理等功能,用户可以通过不同的需要进行不同操作。2.1、个人信息设置:用户可以修改自己的基本信息,如姓名、手机号码、邮箱等,但是不能修改账号。2.2、密码设置:当用户需要修改密码时候,需要输入原密码和新密码以及确认密码。只有原密码正确,新密码和确认密码一致才能成功修改密码。2.3、分组管理:用户可以去添加一个分组和删除分组。添加分组的时候,分组名必须不能和已有的分组名重复,若是重复,添加分组失败。删除分组时,用户不能删除系统默认的那个分组,默认的组后面界面会提示不可删除。系统设置帮助用户管理个人的资料、密码、以及对好友的管理,从而加强用户对该系统的使用,达到良好的体验度。3、用户搜索:用户搜索用于搜索企业局域网内的其他用户。点击菜单中的搜索按钮,输入搜索条件系统会根据用户帐号或IP搜索所有计算机上的用户。3.1、精确搜索:用户可以输入账号和IP地址进行精确搜索某个用户的信息。3.2、范围搜索:也可以根据IP地址范围进行批量搜索该范围内的计算机上的所有用户。搜索完成后,如果搜索到结果则显示结果,若没有搜索到结果则提示用户没有查找到结果。该功能在搜索到的用户信息后面还有一个加为好友的功能。用户可以选择加为好友。4、访问公共资源:访问公共资源用于实现企业内部公共服务器上资源访问的功能。用户可以在这里上传和下载所需要的资源。4.1、用户可以看到系统上的所有共享资源及该资源相关的信息,如文件名、文件大小、修改时间等。4.2、在每条资源后面有下载按钮,提供下载。4.3、同时该模块也有上传的功能,用户通过点击上传按钮进行上传。资源管理模块旨在方便用户下载和上传共享资源,提高用户的工作和学习效率,使得用户间的信息交流更方便和快捷。3.2业务流程该系统的主要流程是用户通过帐号和密码登录服务器,登录成功后,显示用户使用的主界面。主界面包括用的头像,资料,在线状态以及功能菜单。用户可以通过相关的功能键进行设置页面、基本资料修改、密码更改、上传和下载共享资源文件、进行群聊和私聊、也可根据帐号和IP搜索好友和添加好友。当用户想退出该系统,点击退出按钮即可实现退出通信平台。3.3系统结构功能此系统主要由7大模块组成:用户信息管理,即时内部通信,资源文件管理,搜索其他用户,系统设置,消息提示及登录和注册功能。1、用户信息管理功能:对用户信息的查询,更新操作;2、即时内部通信功能:实现局域网内即时通信;3、资源文件管理功能:对共享资源的上传和下载;4、索其他用户功能:对局域网内其他用户的搜索和添加;5、统设置功能:对系统页面设置;6、消息提示功能:用于用户间的消息提示。7、登录和注册功能:用户可以注册账号和登录账号系统模块结构如图:图3-1系统模块结构图3.4功能分析本系统应能够方便的实现企业内部即时通信,包括即时内部通信模块、搜索其他用户模块、资源文件管理模块、消息管理模块、系统设置模块,下面对这几个进行详述:1、即时内部通信模块为促进企业内部职工的通信,这个功能可实现群聊和私聊。用户登录成功后,好友列表立即刷新显示好友信息。当前用户可以和所有在线用户进行聊天,另一个用户收到聊天请求后点击查看,两人建立连接,就可以进行聊天通信,且聊天消息实时刷新。1.1、用户通过编辑区编辑消息,点击发送消息按钮发送消息即可完成给对方发送消息的功能。1.2、接收消息,当用户或者对方发送消息时候,系统会实时刷新聊天面板的聊天信息展示区的信息,而无须用户手动刷新。2、搜索其他用户模块2.1、用户可以根据帐号和IP号进行搜索附近(局域网内)的好友。2.2、用户也可根据IP地址的范围搜索附近(局域网内)的计算机上的所有用户。2.3、搜索到信息则提示“提示搜索到信息”,并将搜索结果显示在页面上;没有搜索到信息则“未搜索到信息”,不显示结果。在搜索到的用户信息后面有添加好友的功能,用户可以添加该好友,添加好友需要等待对方回复的消息。对方在消息中心可以读到添加好友的请求,若是对方同意,则添加好友成功,若是对方拒绝,则添加好友失败,同意或是拒绝的消息可在消息中心查看。3、资源文件管理模块用户可以完成对资源文件的下载和上传。当用户点击菜单键的文件功能图标时,进入文件资源管理中心,显示系统所有的公共资源,包括文件名、文件类型、文件大小、修改时间、文件提供者,也会提示共有多少条资源,当前第几页,支持翻页功能。3.1、每条文件信息后有下载按钮,用户可以点击下载对应的文件。3.2、在这个页面有一个“上传我的共享文件”按钮,用户可以根据工作所需上传相应的文件。4、群聊功能模块本系统支持群聊功能。所有在线的用户可以进行群聊。当用户点击菜单的群聊按钮时,显示群聊页面,用户可以发送消息,也可以接受消息,且消息内容实时刷新。4.1、用户在群聊界面的信息编辑区编写信息,点击发送按钮发送信息。4.2、接收消息时候,只要群里的某个人发送消息,群里所有人都可以接收到该消息,且消息实时刷新,不需要用户去手动刷新。5、消息管理模块该模块是用来公告消息的,包括系统消息、好友请求聊天消息、好友添加消息等。并实时更新消息内容。用户可以根据消息选择不同的功能。如接受好友的添加、接受好友的聊天请求、接受系统消息。6、系统设置模块该模块包括四个子功能模块,分别是:用户信息设置、密码安全中心、分组功能设置、好友管理中心。下面对着四个子模块进行进行详细说明:6.1、用户信息设置功能模块:为了保证用户的信息,信息管理的有对用户基本资料的管理,用户可进行修改自己的基本信息,如姓名、部门、职位、手机号等,但是不能修改用户账号。修改信息成功后,主页面的当前用户信息显示立即刷新为新修改的信息。6.2、密码安全中心功能模块:当用户点击该功能,显示密码设置页面,用户需要输入旧密码和新密码已经确认密码。当没有输入密码会js提示相关信息,当新密码和旧密码不一致js提示两次密码不一致。然后进行后台处理修改密码功能,当旧密码符合,前天则提示密码修改成功,当旧密码不符合,前天则提示密码修改失败,需要核对旧密码是否正确。6.3、分组功能设置功能模块:6.3.1、添加分组:显示当前所有的的分组信息,用户可以看到已有的分组,再根据自己所需选择添加分组。但是当要添加的分组名与之前的分组有重复,前台则提示添加分组失败,只有不重复的分组名才可添加。6.3.2、删除分组:显示当前所有的的分组信息,用户可以看到已有的分组,再根据自己所需选择删除分组。但是为了维护分组好友的安全,系统默认的那一个分组是不能删除的。6.3.3、好友管理中心功能模块:该模块是对当前用户的好友进行管理的。可删除和移动好友。7、登录和注册功能模块:7.1、登录模块:该模块实现用户登录的功能,登录成功跳转到主页面,登录失败仍在登录页面,并提示用户登录失败。用户也可通过登录模块中的注册按钮去注册一个账户。7.2、注册模块:用户可以填写注册信息完成注册功能,注册成功后跳转到登录页面,提示给用户注册的帐号,以便用户进行登录。
第四章系统设计本章主要详述企业内部通信平台的框架设计,对应的数据库表的设计,多表之间的联系,以及个功能的详细设计分析。4.1系统架构设计本系统应用SSH框架技术(MVC模型)将系统分为三个层次:视图层、控制层和模型层。分层结构将用户界面、业务逻辑和数据进行了分离,实现了系统内部松耦合,以灵活、快速地响应业务需求的变化该系统主要使用SSH架构。系统各层实现功能说明:View层是与用户的交互层,采用JSP页面实现与用户的交互。Control层是负责项目中业务功能实现流程的管理工作,由Struts2框架完成。Model层主要是一些实现具体业务功能的类,包括实体类,业务类,数据库操作类,Action类等组成。4.2数据库设计MySQL作为本系统的数据库,因为MySQL是轻量级数据库,且十分好移植和安装。并且SQL是一个通用的、功能性极强的关系数据库语言。其优点有:
1、综合统一
2、高度非过程化
3、面向集合的操作方式根据企业内部通信平台的需求分析,功能分析,以及相关的表联系,得出用户信息数据表的结构及相关约束。用户信息表如图表4-1所示表4-1用户信息表(表名:user)列名数据类型长度允许空主键外键描述idint11noyesno唯一标识uidvarchar10yesnono用户帐号pwdvarchar20yesnono用户密码namevarchar20yesnono用户名headvarchar默认yesnono用户头像sexvarchar默认yesnono性别deptvarchar默认yesnono所在部门positionvarchar默认yesnono所处职位phonevarchar默认yesnono手机号码mailvarchar默认yesnono电子邮箱detailvarchar默认yesnono备注信息ipvarchar默认yesnono用户ipstatevarchar默认nonono用户状态公共资源表:用于公共资源管理,如图表4-2所示:表4-2公共资源表(表名:file)列名数据类型长度允许空主键外键描述idint11noyesno唯一标识namevarchar默认yesnono文件名字typevarchar默认yesnono文件类型sizevarchar默认yesnono文件大小datevarchar默认yesnono上传日期comefromvarchar默认yesnoyes用户帐号用户关系表:用于记录用户间的关系如图表4-3所示:表4-3用户关系表(表名:relation)列名数据类型长度允许空主键外键描述idint11noyesno唯一标识uid1varchar默认nonoyes当前用户uid2varchar默认nonoyes好友用户relationint默认nonono关系类型4.3详细设计下面以本系统的几个模块,即时内部通信模块、搜索其他用户模块、资源文件管理模块、消息管理模块和系统设置模块进行详细阐述,通过程序描述,功能,流程逻辑,核心算法来阐述它们的详细设计。4.3.1公共资源管理功能1、程序描述系统中的公共资源管理在维护过程中,局域网内企业职工可以在资源列表中下载和上传工作中相关的资源,以便更好的提交工作文档或下载工作任务分配表。2、功能公共资源管理的功能结构图如下: 图4-1公共资源管理结构图3、公共资源管理顺序图以公共资源管理的文件上传为例顺序图如下所示:图4-2公共资源文件上传时序图4、文件资源管理的核心算法 以文件资源上传为例的算法图如下所示:图4-3文件资源上传流程图在文件资源管理页面中,当用户点击上传资源文件按钮时,通过Ajax请求跳出文件上传页面,用户可根据文件上传页面提示,点击选择文件按钮,弹出文件选择窗口,接着选择需要上传的文件。选择成功后,页面显示要上传文件的信息,点击立即上传按钮即可实现文件上传功能。文件上传成功或是失败后都跳转到主页面,并显示成功或是失败信息给用户。4.3.2群聊通信功能1、程序描述在用户登录成功后跳转到用户主页面,用户栏里时刻刷新所有上线的用户,当用户点击功能菜单的群聊按钮时,系统信息栏出现群聊界面,用户可以与所有在线的其他人进行群聊。该功能也是时刻刷新聊天信息栏的内容。2、功能群聊通信功能结构图如下:图4-4群聊通信结构图进入群聊通信页面,即可实现与其他在线用户进行群聊通信,当用户登录成功后第一次进入群聊页面会自动加载之前的群聊信息,且群聊信息也是时刻跟新的,无须用户手动刷新。3、群聊通信的顺序图群聊通信的顺序图如下:图4-5群聊通信时序图对以上群聊通信的时序图的描述:当用户点击群聊按钮时,进入群聊页面talkList.jsp,用户在该页面可以进行编辑消息和发送消息,同时系统也可以自动刷新聊天消息。页面中使用了Ajax和定时器达到时刻请求局部刷新信息的效果。4、群聊通信功能的核心算法群聊通信功能的算法流程图如下:图4-6群聊通信算法流程图4.3.3私聊通信功能1、程序描述该功能能实现两个用户间的通信,当前用户可通过点击好友列表的功能按钮去和要联系的好友建立连接,只要对方在线,并且点击连接请求,两人即可进行聊天,都可进行发送和接受消息。2、功能私聊通信功能结构图如下:图4-7私聊通信结构流程图说明:当用户要进行聊天时,需要对方接收聊天请求,两人才建立点对点聊天,当对方不在线时,此时步支持聊天。3、私聊通信顺序图私聊通信顺序图如下:图4-8私聊通信时序图该时序图需要注意的是,聊天内容信息是通过Ajax实时刷新的,否则会出现信息接收延迟,不能达到即时聊天的效果。4、私聊通信核心算法私聊通信的算法流程图如下:图4-9私聊通信算法流程图说明,该算法中的等待回复指对方是否接受消息并回复,如果对方没有回复,当前用户需要继续等待或者关闭此次聊天页面。4.3.4消息提示功能1、程序描述消息提示功能是用户间消息传递的桥接,也是系统与用户间的桥接。通过此功能,用户之间的聊天请求得以传递、添加好友请求也可以在此转发、还可以接收系统消息。2、功能消息提示功的功能结构图如下:图4-10消息提示功能结构流程图3、消息提示功能顺序图消息提示功能顺序图如下所示:图4-11消息提示功能时序图说明:消息提示时序图是实时刷新消息的,当用户查看消息时候主页面发送请求,将消息展示页面刷新。4、消息提示功能核心算法消息提示功能算法流程图如下:图4-12消息提示功能算法流程图说明:消息提示中心功能是异步刷新的,无须手动刷新。是否刷新实际上是判断消息是否有更新,更新的话显示消息。4.3.5系统设置功能1、程序描述系统设置包括了四个部分,分别是:用户信息设置、密码安全中心、分组功能设置、好友管理中心。用户可以根据这些功能更好的使用本系统,使得通信更加和谐和人性化。2、功能系统设置的结构图如下:图4-13系统设置功能结构流程图说明:用户可以根据不同的需求进行选择不同操作,用户信息设置可以修改用户的基本不信息、密码安全中心可以修改密码、分组功能可以添加分组和删除分组、好友管理中心可以删除好友和移动好友。3、系统设置功能顺序图以用户信息设置为例来说明,用户信息设置时序图如下:图4-14用户信息设置时序图该时序图解释了用户信息设置的流程,首先选择系统设置的用户信息设置,显示用户信息设置界面,根据操作,修改信息,提交修改后进行后台处理,接着将处理的结果返回给主页面进行显示。4、系统功能核心算法由于系统功能较多,本次介绍用户信息设置的算法,下面是用户信息设置的核心算法流程图:图4-15用户信息设置算法流程图说明:用户信息修改只是系统设置里面的一个子功能,其中密码安全中心、分组功能设置、好友管理中心将在后面的系统实现中详细介绍。4.3.6搜索功能1、程序描述查找功能解决了用户需要查找局域网内其他用户的困难,通过此功能可以实现在局域网内查找其他用户。查找分为,具体查找和范围查找。1.1、具体查找是根据用户的帐号或者局域网内IP号进行查找;1.2、范围查找根据用户输入的起始IP和结束IP范围内查找。2、查找功能的结构图如下:图4-16搜索功能结构流程图3、搜索功能顺序图搜索功能顺序图如下:图4-17搜索功能时序图4、查找功能核心算法图4-18搜索功能算法流程图说明:搜索功能氛围精确查找和范围查找,用户可以根据自己的所需进行不同的搜索。4.3.7登陆和注册功能1、程序描述作为本系统的基础功能,必须要有登录和注册功能,可实现用户去注册账号和登录该系统进行聊天。2、功能登录和注册结构图如下:图4-19登录和注册结构流程图3、顺序图登录和注册顺序图如下:图4-20登录时序图图4-21注册时序图4、核心算法图4-22登录和注册算法流程图本章主要详述了企业内部通信系统的文件资源管理模块、群聊通信功能模块、私聊通信功能模块、消息提示功能模块、系统设置功能模块、查找功能模块和登录注册的系统设计,对应的数据库表的字段的设计,及页面定时刷新的实现以及展示了功能实现的流程图和顺序图。
第五章系统实现与测试本章是对企业内部通信系统的公共资源管理模块中的资源文件上传的的系统事项和测试的一个阐述,主要从开发平台,资源文件上传的程序结构图,资源文件上传界面展示,模块的核心代码,系统测试,这几方面进行详细的说明。5.1程序结构TimonC为项目的名称,也是项目的根目录。WebContent为Web目录,包括图片目录img、css、js和jspPage文件夹及JSP文件。WEB-INF目录、lib目录及web.xml依然为固定的目录和文件。JavaResources包下有conf文件夹和src文件夹。1、其中src目录包含如下几个部分::Action包(com.xmq.action):该包里面放的系统的Action。Service包(com.xmq.service):该包用来放系统的服务类。DAO包(com.xmq.dao):该包放的是系统的处理方法类。Tools包com.xmq.tools:该包该包放的是系统的帮助类。Test包(com.xmq.test):该包用了放单元测试类。Entity包(com.xmq.entity):该包放的是系统的实体类。2、其中conf目录包含如下几个部分::applicationContext.xml:Spring配置文件。beans.xml:Spring的beans配置文件。perties:数据库参数,用于配置数据库。perties:日志参数,用于控制台输出日志信息。struts.xml:Struts2配置文件,配置Struts2的Action等信息。hibernate.cfg.xml:Hibernate配置文件,配置Hibernate的参数。5.2系统的模块具体实现5.2.1公共资源管理功能实现1、功能分析:公共资源管理实现了文件上传和下载功能,用户可以选择性地上传和文件下载。文件上传是共享资源的一个字模块,文件上传功能主要是满足用户在工作中上传文件的需求而设计的。2、Action的代码实现: publicStringexecute()throwsException{ Stringroot="D:/timonc"; Filef=newFile(root); if(!f.exists()){f.mkdir();} SrcFilesrcFile=newSrcFile();srcFile.setName(fileFileName+""); srcFile.setType(fileFileName.substring(fileFileName.lastIndexOf("."))); srcFile.setDate(DateTool.getCurrentDate());srcFile.setSize(file.length()+"B"); Map<String,Object>session=ActionContext.getContext().getSession(); Useru=(User)session.get("user");srcFile.setComefrom(u.getUid()); InputStreamis=newFileInputStream(file); OutputStreamos=newFileOutputStream(newFile(root,fileFileName)); byte[]buffer=newbyte[1024];intlength=0; while(-1!=(length=is.read(buffer,0,buffer.length))){ os.write(buffer,0,length); } if(os!=null){os.close();} if(is!=null){is.close();} intresult=fs.insertFile(srcFile); if(result==1){ ActionContext.getContext().put("info","文件上传成功"); }else{ ActionContext.getContext().put("info","文件上传失败"); } return"success"; }3、配置文件1.配置beans.xml文件,关于文件的配置部分如下: <beanid="fa"class="com.xmq.action.FileAction"><propertyname="fs"ref="fs"></property></bean><beanid="ufa"class="com.xmq.action.UploadFileAction"><propertyname="fs"ref="fs"></property></bean>Struts2配置文件,关于文件的配置部分如下:<actionname="uploadFileAction"class="com.xmq.action.UploadFileAction"><resultname="success">/main.jsp</result> <resultname="fail">/main.jsp</result></action> <resultname="input">/error.jsp</result></action>5.2.2群聊通信功能实现1、功能分析:用户可以通过功能按钮实现群聊功能,即可以和在线的所有用户进行群聊。2、Action的代码实现:publicStringsaveTalk(){ TalkMestalk=newTalkMes(); talk.setTouxiang(touxiang); talk.setName(name); talk.setText(text); Map<String,Object>application=ActionContext.getContext() .getApplication(); List<TalkMes>talks=(List<TalkMes>)application.get("talks"); if(talks==null){ talks=newArrayList<>(); } talks.add(talk);application.put("talks",talks); return"success"; }3、配置文件<actionname="talkAction"class="com.xmq.action.TalkAction"method="saveTalk"><resultname="success">/jspPage/talkInfo.jsp</result></action><actionname="refreshTalkAction"class="com.xmq.action.RefreshUersListAction"method="refreshTalkList"><resultname="success">/jspPage/talkInfo.jsp</result></action>5.2.3私聊通信功能实现1、功能分析:用户可以通过功能按钮实现私聊功能,即可以和在线的单个或多个用户进行私聊。2、Action的代码实现: publicStringsaveTalk(){ TCMessage2msg=this.getTMC(); Map<String,Object>application=ActionContext.getContext() .getApplication(); List<TCMessage2>msgs=(List<TCMessage2>)application.get("msgs"); if(msgs==null){ msgs=newArrayList<TCMessage2>();msgs.add(msg); application.put("msgs",msgs); }else{ if(!this.isConnected(msgs,msg.getFuid(),msg.getTuid())){ msgs.add(msg);application.put("msgs",msgs); } } List<TCMessage>tcms=(List<TCMessage>)application.get("tcms"); if(tcms==null){ tcms=newArrayList<TCMessage>(); } TCMessagetcm=newTCMessage();tcm.setFromUid(fuid); tcm.setToUid(tuid);tcm.setHead(fhead); tcm.setName(fname);tcm.setText(uText); tcms.add(tcm);application.put("tcms",tcms); ActionContext.getContext().put("key1",fuid); ActionContext.getContext().put("key2",tuid); return"success"; }3、配置文件<actionname="twoTalkAction"class="com.xmq.action.TwoTalkAction"method="saveTalk"><resultname="success">/jspPage/twoTalkInfo.jsp</result></action><actionname="twoTalk2Action"class="com.xmq.action.TwoTalkAction"method="saveTalk2"><resultname="success">/jspPage/twoTalkInfo.jsp</result></action>5.2.4消息提示功能实现1、功能分析:该功能实现用户间的消息传递,如请求聊天的消息、好友请求等。2、Action的代码实现: publicStringrefreshMessageAction(){ Map<String,Object>application=ActionContext.getContext() .getApplication(); List<TCMessage2>msgs=(List<TCMessage2>)application.get("msgs"); if(msgs==null||msgs.size()==0){ ActionContext.getContext().put("info","还没有收到消息哦"); }else{ intcount=this.messageCount(msgs); if(count!=0){ ActionContext.getContext().put("info","您收到"+count+"条消息"); }else{ ActionContext.getContext().put("info","您还没有收到消息"); } } return"success"; }3、配置文件<actionname="refreshMessageAction"class="com.xmq.action.RefreshUersListAction"method="refreshMessageAction"><resultname="success">/jspPage/message.jsp</result></action>5.2.5系统设置功能实现1、功能分析:系统设置包括了四个部分,分别是:用户信息设置、密码安全中心、分组功能设置、好友管理中心。2、Action的代码实现: publicStringsetInfo(){ Useruser1=us.setInfo(user); if(user1!=null){ ActionContextctx=ActionContext.getContext(); ctx.put("info","信息修改成功");Map<String,Object>session=ActionContext.getContext().getSession(); session.put("user",user1);return"success"; } return"fail"; } publicStringpwd(){ inti=us.setPwd(Integer.parseInt(id),pwdOld,pwdNew); if(1==i){ ActionContext.getContext().put("info","密码修改成功"); return"success"; }else{ActionContext.getContext().put("info","密码修改失败,请核对原密码是否输入正确"); return"fail"; } }publicStringaddFenZu(){ Map<String,Object>session=ActionContext.getContext().getSession(); Useruser1=(User)session.get("user"); if(rs.insertFenZu(user1.getUid(),groupName)){ ActionContext.getContext().put("info","添加分组成功"); }else{ ActionContext.getContext().put("info","添加分组失败,请核对组名是否已经存在"); } return"success";}publicStringdelFenZu(){ Map<String,Object>session=ActionContext.getContext().getSession(); Useruser1=(User)session.get("user"); if(rs.delFenZu(user1.getUid(),groupName)){ActionContext.getContext().put("info","删除组:"+groupName+"成功"); }else{ActionContext.getContext().put("info","删除组:"+groupName+"组失败"); } return"success";}publicStringaddUid2(){ Map<String,Object>session=ActionContext.getContext().getSession(); Useruser1=(User)session.get("user"); if(rs.addUid2(user1.getUid(),uid2)){ActionContext.getContext().put("info","好友添加成功"); }else{ActionContext.getContext().put("info","好友添加失败,TA可能就在你的好友里,先找找看"); } return"success";}publicStringdelUid2(){Map<String,Object>session=ActionContext.getContext().getSession(); Useruser1=(User)session.get("user"); if(rs.delUid2(user1.getUid(),uid2)){ ActionContext.getContext().put("info","好友已经被删除"); }else{ ActionContext.getContext().put("info","删除好友失败"); } return"success";}publicStringmoveUid2(){ Map<String,Object>session=ActionContext.getContext().getSession(); Useruser1=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 注塑车间夜间管理制度
- 大数据传输的网络解决方案试题及答案
- 报告编制员管理制度
- 快递站点员工管理制度
- 汕头市中考试题及答案
- 收费餐具后续管理制度
- 厨房个人分管理制度
- 党史连廊管理制度
- 果园滴水灌溉管理制度
- 度假区财务管理制度
- 2024年秋期国家开放大学《西方社会学》形考任务1-4答案
- 通信工程专业生涯发展展示
- 昆明理工大学《物理化学A》2021-2022学年第一学期期末试卷
- 跨国电子信息企业并购
- 无人机航拍技术教案(完整版)
- 2型糖尿病分级诊疗
- 工程力学基础知识单选题100道及答案解析
- 《贫民窟的百万富翁》电影赏析
- 新手主播直播带货策划案-新手主播直播带货培训教程
- 广告设计师三级理论知识鉴定要素细目表
- 企业员工心理健康辅导服务预案
评论
0/150
提交评论