校园微博系统的设计与实现-毕业论文

校园微博系统的设计与实现-毕业论文

ID:345921

大小:1.72 MB

页数:50页

时间:2017-07-26

上传者:green wind
校园微博系统的设计与实现-毕业论文_第1页
校园微博系统的设计与实现-毕业论文_第2页
校园微博系统的设计与实现-毕业论文_第3页
校园微博系统的设计与实现-毕业论文_第4页
校园微博系统的设计与实现-毕业论文_第5页
资源描述:

《校园微博系统的设计与实现-毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

校园微博系统的设计与实现学号2008061226密级哈尔滨工程大学学士学位论文校园微博系统的设计与实现院(系)名 称:计算机科学与技术学院专 业 名 称:软件工程学 生 姓 名:指 导 教 师:哈尔滨工程大学2012年6月III 校园微博系统的设计与实现学号2008061226密级校园微博系统的设计与实现DesignandImplementationofCampusMicroblogSystems学生姓名:吴建强所在学院:计算机科学与技术学院所在专业:计算机科学与技术指导教师:李健利职称:副教授所在单位:哈尔滨工程大学论文提交日期:2012年6月论文答辩日期:2012年6月学位授予单位:哈尔滨工程大学III 校园微博系统的设计与实现摘要校园微博系统是专门针对在校大学生而设计的一套信息交流系统,用户通过此系统可以了解其他用户的近况,了解校园内发生的实时新闻,同时也可以发布自己的近况,可以就某个问题与其他网友进行深入交流,本文通过阅读相关文献,分析国内外现有类似软件系统的实现技术,并结合在校大学生网络交流的需求,提出了一种集发布图文信息、及时分享和信息处理于一体的系统构建方案。在对微博系统和大学生网络交流现状进行详细研究与分析的基础上,通过采用B/S架构和MVC设计模式,JSP和SSH2技术以及AJAX技术,结合当前流行的Java开源框架和现有微博系统现状,开发一个基于Web2.0的校园微博系统。在前台系统实现对微博用户、微博信息发布、微博信息转发、用户实时交流以及用户好友关系的管理,在后台系统实现对微博管理员、微博公告以及被举报微博的管理。系统经过验收测试及反复使用后,证明是可行的,且较已有类似软件更加具有针对性。关键词:网络交流;校园微博;及时分享III 校园微博系统的设计与实现ABSTRACTThecampusmicrobloggingsystemisaninformationexchangingsystemdesignedspecificallyforstudentsininstitutesofhigherlearning,throughwhichthestudentscouldgetaccesstothecurrentsituationoftheirpeers,gettoknowthelatesthappeningsonthecampusaswellasupdatetheirstatus.Thustheuserscouldexchangefurtherideaswithothersonanyissues.Throughreadingacollectionofrelatedliteratureandanalyzingthepresenttechnologyappliedinsimilarsystemshomeandabroad,theauthorproposesasystemconstructionschemeonthebasisofthecommunicationneedsofthestudents.Thesystemconstructionschemeisasynthesisofupdating,sharingandprocessingsystem.Onthebasisofdetailedresearchandanalysisonthemicrobloggingsystemandcollegestudents’statusofnetworkcommunication,developpingacampusmicrobloggingsystembasedonWeb2.0throughtheusingofB/SarchitectureandMVCdesignpatterns,JSPandSSH2technologyandAJAXtechnology,combinedwithpopularJavaopensourceframeworkandexistingmicro-statusofpacingsystem.Intheforegroundsystem,itincludestheusersofmicroblogging,microblogginginformation,microbloggingforwardinginformation,theuserreal-timecommunication,anduser-friendrelationshipmanagement,backofficesystemstoachievethemanagementoftheadministratorofmicroblogging,microbloggingannouncements,aswellasbeingreportedmicrobloggingAfteracceptancetestingandrepeateduse,itwasprovedtobefeasibleandmoretargetedthanothersimilarsoftware.Keywords:campusmicroblog;networkcommunication;timelysharingIII 校园微博系统的设计与实现目  录第1章绪论11.1课题的背景与目的及意义11.2国内外微博系统现状11.3课题内容及论文的结构3第2章系统需求分析与总体设计52.1系统需求分析52.1.1业务需求52.1.2功能需求62.1.3性能需求112.2系统总体设计112.2.1总体结构设计132.2.2运行环境设计172.2.3主要功能简要设计172.3数据库分析与设计192.3.1数据库需求分析192.3.2概念结构设计212.3.3物理结构设计222.4本章小结26第3章系统详细设计与实现273.1系统界面设计273.2功能详细设计和实现303.2.1用户模块303.2.2微博内容模块323.2.3微博用户关系模块353.2.4微博检索模块363.2.5微博后台管理模块363.3系统测试373.3.1浏览器兼容性测试37V 校园微博系统的设计与实现3.3.2主要功能性能测试383.4本章小结39结论40参考文献41攻读学士学位期间发表的论文和取得的科研成果43致谢44V 第1章绪论第1章绪论1.1课题的背景与目的及意义近年来,随着互联网的迅速发展,网络已经融入到了人们生活中的每一个角落。人们的生活方式也随着网络的普及和发展,发生着根本性的转变,人们通过网络交流的方式也是日新月异,由原来的电子邮件到现在的即时聊天,由原来的大型播客到现在的微型博客。这一切变革都得益于Web2.0。Web2.0是相对Web1.0的新的一类互联网应用的统称,Web2.0相对于Web1.0来说更注重用户的交互作用,用户既是网站的浏览者,也是网站内容的制造者[1]。随着社会不断的向前发展,人们的生活节奏变得越来越快,伴随着每天三点一线的生活方式,出现了不少的宅男宅女,这也使人们的交际圈受到了严重的限制[2]。在大学生人群中尤其突出。同时,基于人类本身的特性——群居动物,人人都渴望与人交流,尤其是宅男宅女们急需通过与人交流来分享自己生活中的点点滴滴[3]。这样就需要一个基于网络的交流平台。而微型博客的特点非常符合当代人网络交流的特点。首先,相对于强调版面布局的博客来说,微博的内容组成非常简单,其由简单的只言片语组成,从这个角度来说,对用户的技术门槛很低,而且在语言的组织编排上提倡简单明了,不需要华丽的辞藻修饰[4]。而且随时随地的发布自己的所见所闻所感所想。通过关注他人了解其动态,通过关注事实了解社会万象。校园微博系统旨在建设一个面向大学生的微博平台,通过该平台了解到身边的同学都在做什么、关注什么,为在校大学生提供一个良好交友的平台[5]。纵观现有的微博系统平台,大多是针对网络名人的,比如新浪微博、腾讯微博等。不可否认,他们已经在微博领域做得非常的完备,但没能凸显出专一特性,虽然交际圈扩展到整个社会,但是专供学生学习生活交流的特点还是不够明显[6]。因此,构建一个针对校园的微博系统十分必要。综合上述原因,目前需要开发一个有针对性的校园微博系统。该系统主要面对的用户为在校大学生,为同学们提供一个轻松、方便的交流平台。扩大同学们的交际圈,开阔同学们的思维,促进同学们之间的交流。3 第1章绪论1.2国内外微博系统现状说起微博就不得不说一说SNS(即社会性网络服务),其全称SocialNetworkSite,也就是“社交网站”或者“社交网”,社会性网络是指人与人之间的关系网络,这种基于社会网络关系思想建立的网站就叫社会性网站[7]。根据美国哈佛大学心理学教授StanleyMilgram1967年创立的六度分割理论:两个陌生人之间所间隔的人不会超过六个,也就是说,一个人最多通过六个人就可以认识一个陌生人[8]。按照六度分割理论,每个个体的社交圈都不断放大,最后成为一个大型网络。这就是社会性网络的早期理解。后来人们根据这种理论创立了面向社会性网络的互联网服务。微博客就是这样一种社会性网络服务。其允许用户及时更新简短信息并可以公开发布博客内容。他允许所有微博用户阅读或者好友阅读,使微博用户之间的交流更加方便快捷,同时也是一个信息快速传播的有效途经。微博起源于美国,Twitter公司推出的微博是最早也是最著名的,其提出了微博的核心概念,根据相关公开数据,截至2011年6月份,其活跃用户数已经达到1亿,且其随着IOS设备的不断发展,其用户数量还在急剧增加。Twitter每日微博发布量现已超过2.5亿条。Twitter上所发布的各类稀奇古怪家长里短的信息,已经吸引了广大的网友们。网友们通过了解Twitter上的那些重要的或不重要的信息,提高了与他人交流的频率,并从某种程度上感受到了“社交”的温暖[9]。国内的微博网站,最初的先行者是由人人网创始人王兴于2007年建立的饭否网。其当时是中国大陆地区第一个提供微型博客服务的类Twitter网站,用户可以用过网页,Wap页面,IM(InstantMessenger即时通讯)软件等发布消息或者上传图片。用户间通过互相关注等方式互动。至2009年新浪微博上线,在功能设计上,保留了通信、社交功能,极大强化了微博的媒体和传播功能,成为国内最具影响力的微博网站。随着新浪微博的蓬勃发展,国内各大门户网站如腾讯、搜狐也都纷纷投入建立了自己的微博网站。微博能成为时下最为流行的社交网络,是因为其具有Web2.0时代的核心特性:互动与分享。首先微博具有便捷性、背对脸、原创性三大主要特征,大多数网友在微博客上找到了展示自己的舞台。微博客背对脸的交流,可以一点对多点,也可也点对点。据了解,新浪微博则采用的是当下流行的php语言,其中面对庞大的用户访问量,采用的集群方式将海量访问负载均衡到各个不同的服务器以减轻访问量给服务器带来的压力,3 第1章绪论面对海量数据采用分布式存储,面对及时性后台采用了异步处理数据,前台及时更新,用memcacheQ做服务器端数据缓存。针对不同地区的用户采取就近访问服务器原则,减轻服务器压力。但每个服务器使用的却是同一个开发平台的数据,这就保证了数据的一致性和实时性。随着互联网技术的不断革新,高校教师的教学方式、工作方式、学生的学习方式、生活方式等发生重大变化,有关高校方面的信息需要及时个让同学们知道,这就需要一个方便快捷的信息交流平台。校园微博系统将采用B/S架构开发,将系统分为客户端、Web服务器端和数据库服务器端:(1)采用B/S架构开发。之所以采用B/S这种架构,其原因在于软件的可维护性强,利于将来对系统的升级。也更符合在互联网上进行信息的共享,无需考虑客户端的差异和对程序的兼容性,尤其是AJAX技术、CSS技术的应用,使得用户界面更加的美观友好,客户端只需要一个可以上网的浏览器就可以,且其响应速度相比C/S更快。在此基础上实现信息的及时分享,更符合当前用户的需求[10]。(2)用户发布微博信息,采用的是AJAX异步更新客户端界面,从用户整体感受出发,在用户发布微博的过程中,页面是不整体刷新的,这将给用户更好的体验[11]。在发布微博的同时,可以上传图片,如果采用原始的form表单提交来上传图片,这将会刷新整个页面,页面的刷新将覆盖到用户原先所浏览的信息。而且还无法将图片加载到用户即将发布的微博中,经过自习研究和分析,结合AJAX技术和ifream技术实现了AJAX异步上传图片的功能来解决图片上传后不刷新页面的问题。从而提高了用户的体验和降低了客户端对服务器的请求压力[12]。(3)对校园微博系统的信息存储,主要分为两种,一种是文字信息的存储,另一种是图片信息的存储。对于文字信息的存储,将直接用MySQL数据库来存储,而对于图片信息的存储,则将其保存到指定目录下,而将其在服务器上的请求地址存入到数据库中,这样在用户请求图片时,能非常方便的获取图片。具体的做法在后序章节会有详细的说明。1.3课题内容及论文的结构课题所研究的校园微博系统,是一套基于B/S模式开发的信息处理系统。采用Java语言作为后台开发语言,采用当下流行的Struts2框架、Hibernate框架、Spring框架三者结合,前台展示采用JSP,数据交换大部分用AJAX技术实现异步通信,服务器也是使用的时下流行的Tomcat服务器(免费开源),整个系统的主体为MVC架构[13][14],针对现有网络用户的需求,设计和实现一个适合大学生用户的校园微博3 第1章绪论系统,其主要功能模块包括:用户管理模块,微博用户关系模块、微博内容模块、微博搜索模块、系统通知模块、后台管理模块。本文共分为3章,按如下方式组织:第1章是全文的绪论部分,包括了系统开发的背景、目的和意义,国内外现有微博系统的发展现状,现有网络用户需求现状以及课题工作内容和论文结构。第2章包括了对系统的需求分析以及系统的总体设计,用业务流程图、用例图等阐明系统的需求;用系统结构图表明了系统的总体架构,简要的描述了各个功能的概要设计。介绍了数据库系统的设计,对数据库中的所有信息表的结构以及表与表之间的联系进行了详细的描述。第3章包括了系统的详细设计和具体实现方法,对系统的用户界面和功能模块对于系统中比较重要的功能详细阐述了实现方法、实现过程和结果。还包括对系统进行全面检测,提出了部分在测试中遇到的问题和解决方案。最后是本文的结论部分,对本文工作进行了总结。3 第2章系统需求分析与总体设计第2章系统需求分析与总体设计本章将对整个系统作一个全面概括的介绍,从系统的需求分析开始介绍,详细阐述系统的业务需求,功能需求以及性能需求。根据需求分析进行系统的总体设计,根据需求分析进行数据库设计。2.1系统需求分析在软件设计中,需求分析的地位可谓是举足轻重,只有通过需求获取,需求分析,需求验证和需求变更这几个主要的需求管理阶段,才能保证开发出来的系统具有合理性和正确性,并且能够大大减少后续开发中和系统上线后维护阶段的返工工作量。在绪论中也有简单的提及到校园微博系统的部分用户需求,但都只是从个别功能点来描述,并不完整。对于一个完整的校园微博系统来说,还应包括业务、功能以及性能等多方面的需求。下面将对微博系统需求详细阐述。2.1.1业务需求系统的整个业务流程是以校园微博系统资源为中心,系统的用户主要分为普通用户和管理员用户两种。普通用户即为微博使用者(主要为大学生),系统管理员主要通过登录后台管理系统来管理微博,如发布微博公告、处理举报微博等。普通用户和系统管理员操作业务不一样,实现的功能也不一样。校园微博系统属于网站类的软件系统,根据其系统本身的特点将其分为前台系统和后台系统。前台系统主要是提供给普通用户访问的,而后台系统主要是归管理员使用。在微博前台系统中,用户登录界面提供用户进入微博系统的入口,且同时提供了供新用户加入校园微博的入口(新用户注册)。新用户注册微博后便可以通过注册的帐号密码登录进入到属于自己的微博首页。41 第2章系统需求分析与总体设计在用户成功登录自己的校园微博系统后,可以用简短的语言发布一条微博。发布微博的同时,如果觉的需要在微博中添加图片以增强微博的感染力,可以发布带图片的微博。在浏览好友所发微博时,如果用户感兴趣可以转发其微博,也可对其进行评论,发表自己的见解和看法,以此参与某个问题的讨论。如果觉的自己所发布的微博不好或是其他原因想要删除,则可以点击首页中的相应删除按钮或者是进入个人主页里面点击删除按钮以删除其微博。微博前台系统还提供了搜索功能,可以搜索好友,在好友搜索框里,输入好友昵称就可以检索好友,如果不知道好友昵称,则可以点击高级搜索,在高级搜索里面,可以按照好友所在大学、院系、入学年份等多条件搜索。检索出好友后,可以对其添加关注,也可以访问其个人主页。除了好友检索功能外,微博系统还提供了微博搜索功能,用户输入想要搜索的内容或者微博主题就可以搜索与输入内容相关微博,当然也可以进行高级搜索,按照微博发布时间检索。前台网站的基本业务流程如图2.1所示。图2.1校园微博系统前台业务流程图在校园微博后台系统中,主要的业务包括超级管理员对管理普通管理员的管理。普通管理员对举报的处理,微博公告业务的处理。2.1.2功能需求系统的功能需求可以按照用户类别分为网站前台用户的需求和系统管理员的需求。由于不同类别的用户在系统中的使用权限不同,扮演的角色和所具有的行为更是不同,因此对于系统功能的需求也是各有不同。网站前台用户是对网站前台的需求,其是网站的主要使用者,也是网站信息的创建者和传播者,大的功能模块可分为:用户模块、微博用户关系模块、微博内容模块、微博检索模块。用户模块主要包括:用户注册子模块、用户登录微博子模块、安全退出子模块、资料微博子模块、密码修改子模块、头像修改子模块。用户模块功能用例图如图2.2所示。41 第2章系统需求分析与总体设计微博用户关系模块,本模块主要是关于用户与用户之间的关系,校园微博系统中关于用户之间的关系采用的是一种弱关系,如用户A和用户B,用户A可以对用户B添加关注,而无需强制用户B也要关注用户A,这种单向的好友关系非常有利于信息的传播,比如用户A关注了用户B,那么用户B所发的微博,用户A不用访问用户B主页就可以看到,不仅仅是用户A可以看到用户B所发的微博,所有关注了用户B的用户在自己的主页上都可以看到用户B所发的微博,这中发散式的传播和简单的关系是分不开的。图2.2用户模块功能用例图在该模块中包括以下几个子模块:查看好友子模块、加关注子模块、取消关注子模块、访问好友主页子模块、普通检索好友子模块、高级检索好友子模块、用户推荐子模块。微博用户关系用例图如图2.3所示。41 第2章系统需求分析与总体设计微博内容模块,这个模块是校园微博系统的核心模块,校园微博信息的创建、传播、销毁皆源于此,用户所感所想,所见所闻,通过此处以微博的形式输入到系统中,关注了该用户的好友就可以看见,可以了解该用户最近的动态,其他用户也可以加入该条微博中进行讨论,比如用户A发布了一条关于用Java语言实现二叉树的微博,那么其他微博用户可以对其发表自己的看法,也就是评论微博,当然另一些用户也可以对用户的评论进行回复,从而达到一种学习交流的作用。如果有其他用户对用户A的微博进行了评论,在微博顶部会有明显的通知提示,如果用户的好友发布了新的微博,则在用户主页也会有新微博的提示。如果用户觉的自己发布的微博信息有误,可以删除该条微博。在用户浏览好友微博时,如果对好友微博感兴趣,可以转发为自己的微博,在转发的同时也可以对其微博进行评论。图2.3微博用户关系用例图为了进行文明的交友,如果用户发现某用户发布不良微博,则可以举报不良微博。如果用户想查找与某个话题有关的微博,那么可以在微博检索框里输入内容进行检索,也可进行高级搜索,按照主题、发布时间来检索微博。校园微博是针对校园的,那么如果用户只想查看自己同学的微博,则可以选择分类查看微博。在这里提供了查看全部微博,校友微博,同学微博的三种简单的分类。在微博内容里面还包括获取系统通知,查看系统通知的功能。微博内容用例图如图2.4所示。对于校园微博后台系统,其用户主要分为超级管理员和普通管理员,他们都是网站后台的维护者。超级管理员具有对普管理员进行管理的功能,包括添加普通管理员、删除普通管理员。而对于普通管理员来说,主要负责公告管理和举报管理,公告管理包括发布公告、删除公告,举报管理则包括处理微博举报。用户所发微博被举报并经管理员审查后确实属于非法微博,则将对用户的行为进行限制,视情况不同限行不同,如用户发表违反国家法律法规的言论,则将对其进行封号;如果用户发表虚假宣传,则将对用户进行禁言多少天等等。后台管理模块用例图如图2.5所示。41 第2章系统需求分析与总体设计综合上述分析,校园微博系统主要需要实现的功能包括:前台登录、用户注册、安全退出、后台登录、后台注销、发布微博、转发微博、评论微博、回复评论、删除回复、删除微博、举报非法微博、添加好友、取消关注、检索好友、检索微博、修改个人信息、上传个人头像、设置微博权限、查看系统通知、查看评论、添加管理员、举报处理、公告管理。图2.4微博内容用例图图2.5后台模块用例图41 第2章系统需求分析与总体设计对于好友或者微博检索都有简单通配检索功能和复合条件的高级的检索功能的需求。系统的功能结构图如图2.6所示。图2.6系统功能结构图2.1.3性能需求校园微博系统属于网站类软件,其用户量可能上万,其的运行环境是互联网络,因此校园微博系统的性能也与互联网用户对于系统的性能的需求息息相关。首先,网站的响应速度要快。即通过浏览器打开网页速度要在用户能够容许的时间之内(5s),用户点击链接或按钮的响应时间要短,尽量减少用户的等待时间。对于图片的上传,保证上传成功且能正确访问,在发布微博时,能够及时的将新发布的微博展示给用户,在用户好友发布微博后能够及时给出提示。转发微博时,弹出框要在点击转发按钮后及时弹出,并且在转发成功后及时显示在页面上。其次,对于多用户同时访问网站时,网站不会出现瘫痪现象或者假死现象。在用户直接在浏览器地址栏里输入连接想避开登录直接进入系统是不允许的。系统在互联网上使用时需要保证系统安全无漏洞,保证用户在校园微博中信息的完整性和安全性。系统在运行时应当无异常,对于客户端的请求,服务器保持较快响应速度,系统要能够支持大量的网络用户同时在线访问资源。41 第2章系统需求分析与总体设计2.2系统总体设计在系统需求分析部分已经提出了对校园微博系统的功能和性能需求,本小节将给出研发本系统所给出的在总体设计中为实现需求模型中的需求进行系统的结构设计,运行环境设计,开发工具和界面设计等。工欲善其事必先利其器,这里将对开发本系统所涉及到的技术进行简单的介绍。1、MVC设计模式在以前开发软件时,通常将前后台逻辑混在一起开发,这样不仅开发效率低下,而且后期难以升级维护。后来MVC模式给程序员带来了希望,将程序员们从无尽的痛苦中解救了出来。MVC开发模式就是把一个Web开发项目分成M、V、C三层,实现项目分工。M即model,模型,就是数据库操作类,通过数据库操作类去操作各个数据表,比如增删改查。本系统中因采用了SSH2项目开发框架,model层主要是用Hibernate封装数据对象,使用Spring中对Hibernate库的调用来实现对数据库的操作。同时由spring控制数据库的事物机制。V即view,视图,就是用户所看到的界面,或者说是前台的模板,显示给用户看的。并提交用户行为给控制器,主要通过url来提交。在SSH2框架下面,V是由JSP来呈现的。C即control,控制器,通过控制器来调度模型和视图的运行。主要通过判断、验证等操作,再提交给模型和视图进行处理,控制器中有不同的方法,用以调用不同的模型进行操作。在本项目中采用Struts2来充当控制器。以现实中的工厂为例,整个Web项目是一个公司。模型就是生产部,视图就是市场部,控制器就是管理层。在市场部接到一个订单后,首先询问管理层,管理层通过判断决定接下订单,然后交给生产部门,生产部门生产完毕后告诉管理层,管理层让市场部通知客户来取货,整个流程结束。2、AJAX(AsynchronousJavaScriptandXML)在面对大量用户访问某个网站时,其响应速度是影响用户体验的重要因素,而减少Web通信中的数据流量是提高响应速度的方法之一,而AJAX技术则是专门针对此设计的。通过AJAX,不用刷新页面便可以与Web服务器进行数据交换,这就避免了很多不必要的信息的重复传送。AJAX技术使用简单方便,现在已有很多好的JavaScript封装库对其进行了封装。本系统中将采用jQuery封装库进行开发。3、Hibernate技术41 第2章系统需求分析与总体设计针对以前的面向过程开发,Java的强项在于面向对象。而现在的数据库基本上都是面向关系存储的。如何将面向对象和面向关系连接起来成为了一个问题。Hibernate技术实现了对面向过程向面向对象的转换,也实现了将对象转换为关系模型的功能。本系统利用Hibernate中的注解将对象映射到数据库中,这种映射实现了数据的封装,实现了面向对象的思想。同时亦简化了对数据的操作(因为所有操作都是面向对象的)[13]。4、Spring技术面对与数据库的连接和数据的一致性问题,本系统采用了Spring技术,其主要功能并不在于维护数据的一致性,而是面向切面编程。但本系统主要利用的是其维护数据一致性提供事物支持的功能。面向切面的简单应用。5、Struts2技术面对以前的servlet,每写一个控制器就需要一个servlet,这样如果需要很多控制器的话那么将会有很多servlet需要配置。而本系统采用Struts2技术提供的servlet封装,其配置更加简单,而且还支持面向对象。比如在用户注册的表单里面,采用面向对象的模型驱动。底层的赋值全都交由Struts2底层去做,而让开发人员能更好的专注于业务逻辑的开发[14]。本项目开发所采用的开发工具有:集成开发工具eclipse3.6,Web服务器tomcat6.0,JDK采用son公司提供的JDK6.0版本,JavaScript开发调试工具使用firebug,静态页面开发采用DreamweaverCS4。数据库采用MySQL5.0。2.2.1总体结构设计由于基于B/S架构开发的系统具有开发速度快,易于维护,系统兼容性优于C/S架构开发的系统等优点。目前多数的网站系统是基于B/S架构而开发的,校园微博系统也非常适合采用B/S架构进行开发,该架构将整个系统分为用户浏览器端、Web服务器端和数据库服务器端。1、子系统划分与开发模式的选择按照结构化的设计方法,校园微博系统可以分为微博前台子系统,微博后台管理子系统。微博前台子系统统包括了用户登录、用户注册、用户退出、发布微博、转发微博、评论微博、回复评论、图片上传、检索好友、检索微博、修改个人信息、修改密码、上传头像、访问好友个人主页、查看好友、添加好友、取消关注、查看感兴趣的人、获取评论通知、点击评论通知便可以查看具体的评论、还可以访问单个微博页进行针对一个微博进行讨论。其中不管是好友检索还是微博检索都提供了相应的41 第2章系统需求分析与总体设计高级检索来提高检索精度。管理员子系统包括用户权限管理、添加普通管理员、查看公告、发布公告、处理举报微博。虽然校园微博系统可以分为上面两个子系统来实现,但若不选择一种合理的设计模式,开发人员在实现过程中就可能将表现层代码和数据层代码混合到一起,这将使得代码的重用率很低,更不利于代码的维护。因此必须为系统选择一个合理的开发模式,来确定系统开发的总体架构。经过网络调查和资料查阅得知,当下大部分系统或者网站采用的是MVC模式。通过采用MVC模式之后的开发可以让软件系统的结构非常完整清晰,通过视图层和业务层的分离大大降低了系统内部的耦合性,提高代码重用率的同时减少了错误重复出现的问题。这为系统业务的扩展和系统升级维护提供了可行性和便利性;视图层和业务逻辑层的分离让程序开发员可以专注于功能的优化,而界面程序员则可集中精力于界面的美化,使得开发时间大大缩短。通过上述分析,校园微博系统也非常适合采用MVC模式,按照该模式系统总体结构如图2.7所示。图2.7系统总体结构图2、系统总体类的设计通过总体结构设计采用的MVC模式来完成系统的开发,以及系统子系统的划分和需求部分各功能模块的划分,41 第2章系统需求分析与总体设计微博系统中类分为五类,工具类,DAO类,Service类,action类,POJO模型类。工具类包括时间工具类、分页工具类等。DAO类为数据访问层的类,所有DAO层的类的类名均DAOImpl结束(如用户DAO类:UserDAOImpl.java),其主要负责和数据库交互,这些类中的方法只针对数据库的操作,无其他如验证操作。Service类属于服务层,这些类组合了DAO类,其除具备相应DAO类的功能外,还具有其他额外的功能,如用户服务类里面(UserServiceImpl.java)中的用户登录验证方法。Action类主要负责业务流程的转向,如登录成功转向首页,如果登录失败返回登录界面等。其中Action层、Service层、DAO层和POJO的总体类图设计如图2.8所示。图2.8总体类图以上总体类图是所有模块都符合的抽象类图。图中的Xxx表示POJO中的一个模型类。IXxxDAO表示访问数据库中Xxx表的数据访问接口,XxxDAOImpl是表示其实现类,Service也一样。其中的方法针对不同的模型类有不同的方法,但最基本的对数据库的增删改查方法都是有的。如IUserDAO.java中有getUserByNickname方法,而IWeiboDAO.java类中有getWeiboByWeiboId方法。而针对Action中,一个模型类可能对应多个Action,如用户登录action,UserLoginAction这个类,为了功能更加的清楚而单独作为一个action,主要负责用户登录流程控制。而至于用户登录验证是在UserServiceImpl里面实现的。UserLoginAction中只需要组合IUserService类的对象就可以。3、系统公共类的设计41 第2章系统需求分析与总体设计在软件开发中,为了提高代码的重用率,可以采用抽象继承面向接口编程来实现,同时也可以将一些公共的代码提取出来作为单独的类来使用,如果时间转换类,可能在用户类中需要日期类型,但是在微博里面需要时间的长整型格式。为了统一同时也为了减少系统开发中不必要的bug,设计日期格式转换工具类DataTool.java。在数据库中对日期的存储皆采用长整型的形式存储。在页面端需要什么格式则调用日期工具类DataTool.java在后台相应的Service中为其准备好。在校园微博首页微博列表里,需要将时间转换为几分钟前、几小时前、几天前和日期几种类,而数据库中存储的是以毫秒形式的长整型数据,DataTool类中的getMillsecond()方法为获取当前时间以毫秒形式返回,而getTime()方法则是计算给定时间和现在时间之差。时间工具类图如图2.9所示。图2.9时间工具类图微博系统中首页微博数量太多,不可能全都显示出来,而且在个人主页也需要分页显示数据,所以就必须要做一个分页功能。为了重复利用分页,这里创建了一个分页类PagerModel模型类和AbstractPagerManager类,PagerModel类属于模型类,其中有三个属性:int类型的表示显示第几页的offset、int类型的表示总的数据条数的total、List类型的用于存放当前页需要显示的数据的list。AbstractPagerManager类主要是封装了数据查询的功能,在查询数据时采用预编译查询,加快了查询速度。分页组件类图设计如图2.10所示。为保证用户使用校园微博系统时的帐号安全,必须对其登录密码进行加密,为此设计了MD5加密工具类。MD5工具类中只提供了一个方法toMD5(Stringpassword),该方法旨在将用户输入的密码进行加密,主要是在用户注册帐号时将密码加密后保存到数据库中和登录验证时将用户输入的密码经MD5加密后与数据库中密码做对比时使用。41 第2章系统需求分析与总体设计图2.10分页组件类图2.2.2运行环境设计软件系统的运行环境包括硬件平台、软件平台和网络平台等。校园微博系统是以互联网作为其服务范围的软件系统,因此运行环境的设计不仅包括服务器端的运行环境,还包括客户端的运行环境。服务器端的运行环境采用装有Windows7操作系统和装有JDK1.6的Java运行环境的PC机,以Tomcat6.0作为网络服务器,采用MySQL5.0作为数据库,采用大容量存储磁盘作为专用存储设备。客户端运行环境要求客户端PC机安装IE8及以上版本的浏览器,支持网络连接。2.2.3主要功能简要设计1、用户的注册与登录功能在校大学生可以使用该功能进行注册,在注册页面,用户需要输入注册邮箱,注册昵称和密码等注册必填信息,系统通过AJAX异步查询数据库判断用户输入的注册邮箱和用户昵称是否已被注册,如果已经注册过了,则给出用户提示(该邮箱已被注册),并以红色高亮显示,且将鼠标定位到输入框要求重新输入,若不存在,且其他必填项已填完,则注册成功并跳转到用户登录页面。在注册页面,所有必填项均要进行JS判断,用户昵称不能为空,长度必须在1到20字符之间,登录密码必须在6到20之间,且确认密码必须和登录密码一致,如果不一致给出提示。邮箱格式采用正则表达式验证。41 第2章系统需求分析与总体设计如果邮箱格式不正确也必须给出红色醒目提示“邮箱格式不正确”[15]。在选择大学时,采用二级联动菜单。二级联动菜单中数据采用JSON数据形式保存,使用JavaScripe读取JSON数据实现联动效果。在校园微博登录页面,提供登录帐号和登录密码的输入框,用户输入用户名和密码,客户端验证是否为空,服务器端验证正确性。登录成功进入校园微博系统首页。2、微博的发布与删除功能用户在进入自己的微博系统后,可以在首页微博发布框中输入想发布的内容发布微博,发布微博可以发布两种形式的微博,一种是只有文字的微博,一种是带有图片的微博。而对于微博发布有两种发布方式,一种是原创微博,即在发布框中输入内容发布,另一种是转发别人的微博。在首页和个人主页均可以点击删除按钮对自己所发布的微博进行删除操作。3、微博的评论与转发及回复功能用户在进入微博系统后,可以在首页对好友的微博进行转发,或者评论,在转发微博弹出框里也可以点击转发并回复复选框同时评论给原微博主。点击评论按钮,可以进入到单个微博页进行评论,用户收到评论后,可以对评论作出应答——回复评论,对于发布的评论可以删除。4、加关注与取消关注功能在访问他人个人主页时,可以在其顶部用户信息里面根据现有与好友的关系来添加关注和取消关注,在我的好友页里,可以点击取消关注来解除与好友的关系,对好友取消关注后,好友所发布的微博将不会再出现在自己的首页微博列表里面,在好友搜索页里面,可以点击加关注按钮与好友建立关系,在添加关注后,好友的动态将显示在用户首页微博列表里。5、微博检索功能微博检索功能分为普通检索和高级检索。普通检索分为好友普通检索和微博普通检索,好友普通检索里面,可以输入用户的昵称进行模糊检索,微博普通检索里面可以输入微博内容的部分信息进行检索。而在好友高级检索里面可以按照好友所在学校、院系、好友昵称、入学年份进行多条件检索。在微博高级检索里面可以按照微博发布时间,微博内容进行高级检索。6、后台管理功能41 第2章系统需求分析与总体设计在微博后台管理模块中,包括用户管理、举报处理子模块、公告发布子模块、公告查询子模块、登录注销子模块。用户管理主要是供超级管理员添加普通用户使用。举报处理子模块是用来处理前台用户举报微博的,处理结果可根据不同情况而不同,公告发布是供普通用户发布系统公告时使用。2.3数据库分析与设计数据库是校园微博系统数据的存储地。数据库设计的好与坏,直接关系到系统的性能。数据库的设计一般包括数据库需求分析,概念结构设计和详细设计这几个部分。通过这几个阶段的顺利进行,校园微博系统的数据才能有高安全性。其数据库系统也更加可靠,通过数据库需求分析,能减少后期对数据库中字段增减的修改。通过详细设计可以很清楚整个微博系统中数据的存储形式,对后期进行代码编写非常有利。通过系统数据库的支持,让系统功能能够充分发挥,同时保证系统的数据的安全性、可靠性和完整性。2.3.1数据库需求分析校园微博系统的用户主要分为网站前台用户和后台管理员用户。前台用户操作的数据主要有微博、评论、好友、用户信息、图片文件。各类用户通过系统的各个功能操作来影响数据库中的数据字段。经过系统需求分析后得出校园微博系统数据库中包括以下八张数据库表:用户信息表、微博信息表、好友关系信息表、通知信息表、评论信息表、公告信息表、举报信息表、管理员信息表。根据用户需求和系统分析,下面将给出系统数据库的数据字典的详细描述。用户信息表是用户信息存储的逻辑空间。包含的数据项有用户ID、用户注册邮箱、用户昵称、用户登录密码、学校名称、学校所在省份、出生日期、头像地址、入学时间、所在院系、个人简介、性别、微博数量、好友数量、开通时间、微博转发权限、微博评论权限、帐号状态。其中,用户ID是用户身份的唯一标识,在数据库中是区别与其他记录的标识字段采用系统自动增长的方式产生。注册邮箱是用户登录的登录帐号,一个邮箱只能注册一个帐号,不可重复注册,在数据库中表现为唯一标识字段。用户昵称是用户登录后显示在页面上表示用户身份的字段信息,其在数据库中不允许重复出现,也是唯一标识字段。用户登录密码是在用户登录系统时使用的,其采用了MD5数据加密,数据库中存储的是经过加密后的密文,微博数量和好友数量属于冗余字段,之所以设计这个冗余字段主要是为了加快数据库查询。帐号状态是用于判断用户是否可以进行登录的权限设置(如果用户发布了非法微博被管理员处理之后可能被禁言多少天这样的惩罚)。41 第2章系统需求分析与总体设计微博信息记录表主要是记录微博信息的,包含的数据字段有微博ID、微博发布者ID、微博内容、微博发布时间、微博类型、源微博ID、微博转发数、微博评论数、被转发微博ID、微博带图片标识、图片地址。微博ID是用于区别其他微博的唯一标识,在数据库表中作为主键。微博发布者ID作为数据库表的外键,用于关联微博拥有者。微博发布时间在数据库中以长整型的形式存储,采用这种形式,有利于时间的各种变化和时间的比较。微博类型分为两种,一种是原创微博用1表示,另一种是转发微博用2表示。源微博ID是用于关联转发链中最开始的微博,被转发微博ID用于关联转发自哪个微博。源微博和被转发微博可能是一个也可能不是同一个,这取决于其在转发链中的位置决定的。微博转发数和微博评论数用于以后微博扩展时使用(如以后扩展热门微博,则可以据此筛选出被转发次数和被评论次数多的微博为热门微博),图片地址取决于图片存在标识,存在图片用1表示,没有图片用0表示,默认为0,对于转发微博则用0填充[16]。好友关系表用于记录两个好友之间的关系。主要字段包括关系ID、用户A的ID、用户B的ID、好友类型、创建时间。关系ID作为数据库表中主键,两个用户ID用于关联用户,在数据库中作为外键存在,好友类型分为三类,0为普通好友,1为校友,2为同学。将好友关系分类主要是为了首页分类获取好友微博时使用。创建时间主要是为了加快数据库数据查询。评论信息记录表用于存储微博评论。主要字段包括评论ID、评论所属微博、评论时间、评论内容、是否读取、评论接收者、评论发出者。评论ID作为数据库表中主键出现,评论所属微博在数据库中用微博ID作为外键出现,关联评论所属微博,是否读取属于冗余字段,主要是为了获取评论通知使用。评论接收者和评论发出者在数据库表中均作为外键出现。分别关联与之相关的用户信息。通知信息表包括通知ID、通知内容、发布时间、发布者ID。公告信息表包括公告ID、公告内容、发布时间、发布者ID。举报信息表包括举报ID、举报者、举报类型、举报者附加信息、举报时间、处理信息。管理员信息记录表包括管理员ID、管理员类型、登录帐号、登录密码、上次登录时间、本次登录时间。管理员类型分为超级管理员用2表示,普通管理员用1表示。登录密码采用MD5加密。上次登录时间和本次登录时间主要是用记录用户使用系统的记录。以上是校园微博系统数据库数据字段的描述,通过本小节的描述,清楚了微博系统中数据是怎么存储的,以及数据之间的关系和流向。41 第2章系统需求分析与总体设计微博系统数据库主要包含了8个信息实体,即用户信息,微博信息,评论信息,通知信息,管理员信息,举报信息,公告信息,好友关系信息。而对于网站用户来说,他们主要是通过网站页面上的功能来操作这些实体。2.3.2概念结构设计所谓数据库的概念结构设计,其实就是将数据库需求分析阶段得到的结果,进行归纳、整理和抽象,得到一个概念模型,它是独立于数据库管理系统的。微博系统数据库的设计采用最常用的自底向上的方法,该方法分为两个部分,第一部分,局部分析,即先根据每个实体的属性画出单个实体的实体图,第二部分是将这些局部的单个的实体图进行如下操作:消除属性冲突、命名冲突、结构冲突和不必要的冗余,将他们进行合并,从而得到最终的全局概念结构。经过上一节对系统数据库发需求分析可以得出,微博系统各个实体之间是有密切关联的。其中一个用户可以发布很多条微博,而一条微博只可能由一个人发布,但是一条微博可以被很多人转发和评论,综合来看微博实体与用户实体之间是多对多的关系(但是发布微博是多对一的关系)。用户实体与好友关系实体是一对多的关系,一个用户可以对很多微博进行评论,也就是说一个用户可以拥有很多评论,而一条评论只属于一个用户所拥有,所以用户实体与评论实体之间一对多的关系。一个管理员可以发布多条公告,而一条公告只可能由一个管理员发布,所以管理员和公告是一对多的关系。管理员实体同举报处理实体也是一对多的关系。而对于前台用户来说,用户实体和公告、举报实体都是多对一的关系。对于通知实体,产生方式有两种,一种是用户添加好友后发送的通知,一种是由系统发送的通知。通知实体和用户实体之间是多对一的关系。通过分析实体之间的关系,下面给出微博系统数据库全局E-R图,如图2.11所示。2.3.3物理结构设计数据库物理结构设计,在本系统中采用当下流行的且轻量级的MySQL数据库,其操作简单但功能强大,其支持分页获取数据,高并发,对事务控制也同样支持。采用MySQL数据库对提升系统性能有一定作用。MySQL数据库与其他数据库是有所区别的,他的引擎体统是采用插件式的存储引擎体系结构。其也有助于大大提升系统性能。MySQL最常用的存储引擎有MyISAM和InnoDB,虽然MyISAM引擎快速查找和高速存储,且支持全文搜索,虽然这些都是MyISAM引擎的特点,但其不支持事务,但InnoDB引擎却能弥补他的缺点。41 第2章系统需求分析与总体设计图2.11微博系统数据库全局E-R图通过数据库的概念结构设计,已经初步形成了数据库中表的模型。经设计优化后数据库表分为用户信息表、微博信息表、评论信息表和管理员信息表,通知信息表、好友关系表、举报信息表、公告信息表。各个数据库表中包含的字段含义和作用,在需求分析中已经进行了详细的描述,结合这些描述和设计过程最终确定的数据库表结构如下。1、用户信息表用户信息表包含着网站用户实体的全部属性字段和说明信息,以用户ID作为主键,采用数据库自增字段;注册邮箱,不允许重复注册;用户昵称,不能重复;登录密码,长度为6到20,采用MD5编码;开通时间,用长整型表示,日期时间的毫秒数,用户信息实体如表2.1用户信息表所示。2、微博信息表微博信息表以微博ID作为主键,其不具有任何的实际意义,其组成为用户ID和创建时间拼接而成的字符串组成;微博发布者,用用户ID作为外键引用;微博内容,长度不超过140个字符;发布时间以毫秒的形式存储;源微博、被转发微博用微博id作为外键以表自关联实现;微博中图片标识,针对原创微博有效,0表示没有图片,1表示有图片。微博信息表如表2.2所示。41 第2章系统需求分析与总体设计表2.1用户信息表字段名称数据类型说明是否可以为空userIDbigint用户ID(主键)否emailvarchar(50)注册邮箱否nicknamevarchar(16)用户昵称否passwordvarchar(32)登录密码否schoolNamevarchar(4)用户权限否birthdayvarchar(10)出生日期是photoAddressvarchar(255)头像地址否admissionTimevarchar(4)入学时间是departmentvarchar(20)院系名称是introductionvarchar(255)个人简介是ganderint用户性别是weiboCounterbigint微博数量是friendCounterbigint好友数量是createTimebigint开通时间否stateint帐号状态否provincevarchar(6)审核状态否表2.2微博信息表字段名称数据类型说明是否可以为空weiboIDbigint微博ID(主键)否publisherbigint微博发布者(外键)否contentvarchar(140)微博内容否createTimebigint发布时间否weiboTypeint微博类型否sourceWeibobigint源微博(外键)是shareNumberbigint转发数否commentNumberbigint评论数否lastWeibobigint被转发微博(外键)是hasPictureint图片标识是pictureUrlvarchar(255)图片地址是3、评论信息表评论信息表以评论ID为主键,采用自增字段;41 第2章系统需求分析与总体设计评论所属微博,一微博ID作为外键;评论创建时间,以毫秒的形式存储;评论内容,长度不超过140个字符;读取标识,1表示未读,0表示已读;评论接收者、评论发出者均以用户ID作为外键管理用户信息。评论信息表如表2.3所示。4、通知信息表通知信息表主要用以存放通知。由通知ID作为主键区分通知。其余包括通知发布者(一类是管理员[sender],另一类是普通用户[userSender]),通知接收者,通知内容,通知类型,创建时间,读取标识。通知信息表如表2.4所示。表2.3评论信息表字段名称数据类型说明是否可以为空commentIdbigint评论ID(主键)否weibobigint所属微博(外键)否createTimebigint创建时间否contentvarchar(140)评论内容否hasReadint读取标识否commentReceiverbigint评论接收者(外键)否commentOwnerbigint评论发出者(外键)否表2.4通知信息表字段名称数据类型说明是否可以为空noticeIdbigint通知ID(主键)否senderbigint通知发送者(外键)否createTimebigint创建时间否userSenderbigint通知发送者(外键)否receiverint接收者(外键)否noticeContentvarchar(255)通知内容否noticeTypebigint通知类型否hansHandledint读取标识否5、好友关系信息表好友信息关系表主要存放好友的关系信息。以关系ID为主键。以两个用户的ID做外键,以此关联用户信息,以关系类型区分不同的用户关系,0表示普通朋友,1表示校友,2表示同学。好友关系信息表如表2.5所示。6、管理员信息表41 第2章系统需求分析与总体设计管理员信息表用以存放管理员信息。以管理员ID作为主键,包括登录帐号(长度大于6个字符),登录密码(采用MD5编码)。管理员类型,1为普通管理员,2为超级管理员。不同的级别对应不同的功能。好友关系信息表如表2.6所示。表2.5好友关系信息表字段名称数据类型说明是否可以为空idbigint好友关系ID(主键)否mebigint我的ID(外键)否himbigintTA的ID(外键)否typeint关系类型否createTimebigint创建时间否表2.6管理员信息表字段名称数据类型说明是否可以为空adminIdbigint管理员ID(主键)否accountbigint登录帐号否Passwordbigint登录密码否adminTypeint管理员类型否lastLoginTimebigint上次登录时间是loginTimebigint本次登录时间是createTimebigint创建时间否7、公告信息表公告信息表主要用于存储管理员发布的公告信息,以公告ID为主键区别于其他公告,发布者采用外键关联管理员。公告信息表具体详细字段如表2.7所示。表2.7公告信息表字段名称数据类型说明是否可以为空announcementIdbigint公告ID(主键)否createTimebigint创建时间否contentvarchar(255)公告内容否posterbigint发布者(外键)否8、举报信息表41 第2章系统需求分析与总体设计举报信息表主要存储举报信息。以举报ID作为主键,举报者用户ID作为外键,被举报微博ID作为外键,举报者附加信息,举报类型,0为广告,1为谣言,2为垃圾信息,3为其他,默认为0。处理标识,1为已处理,0为未处理。举报信息表如表2.8所示。表2.8举报信息表字段名称数据类型说明是否可以为空reportIdbigint举报ID(主键)否reporterbigint举报者ID(外键)否weibobigint微博ID(外键)否reportContentvarchar(255)举报附加信息是reportTypeint举报类型否createTimebigint举报时间否handleResultint处理标识否handleInfovarchar(255)处理结果信息是2.4本章小结本章主要介绍了微博系统的系统需求分析、系统总体设计和数据库分析与设计三个部分。需求分析部分阐述了系统的业务需求、功能需求以及性能需求。其中重点阐述了用户对整个系统的功能需求等,为系统设计提供了依据。总体设计部分通过分析确定了系统的架构,系统关键技术选择和系统的运行环境等内容,形成了系统的基本结构。数据库部分通过三个阶段的设计,确定了系统数据库表的结构,为系统详细设计和系统实现打下了基础。41 第3章系统详细设计与实现第3章系统详细设计与实现本章首先介绍了校园微博系统的用户界面设计,然后结合总体设计和界面设计对系统功能进行了详细的设计,最后介绍了系统的编码实现过程和测试过程。3.1系统界面设计系统界面是软件和用户交互的窗口,系统用户界面设计的合理性和可操作性,都将影响到用户对于软件的使用体验[15]。这里将给出界面设计的基本原则和设计思想。并根据以用户为中心为出发点来设计用户界面,使界面更美观,具有可操作性和人性化的特点[16]。在整个系统页面设计中,采用了DIV+CSS布局,所有的样式均放在一个weibo_style.css样式文件里面,所有的布局均采用div的盒子模型进行布局。下面将对具体用户界面的设计加以阐述。1、校园微博登录页与注册页网络用户通过注册页注册成为校园微博用户,用户需要在注册页注册之后,方能拥有自己的微博帐号。在注册页里有相关的用户注册须知,用户基本信息输入。在校园微博登录页面提供了登录帐号和登录密码的输入框。在登录页有明显的校园微博标识,以凸显校园微博的主题。在登录页布局中,采用分块布局,符合用户的基本需求。而在注册页输入框后有明显的用户提示。且以灰色标注,错误信息将以更加醒目的红色表示。2、顶部导航栏校园微博顶部导航栏在每个页面中都会出现,而且是一样的,为了不重复开发,所以将其单独作为一个页面设计,在其他需要的页面将其导入即可,这样设计遵从了“不重复发明轮子”的原则[17]。提高了代码的重用率。3、微博首页41 第3章系统详细设计与实现用户输入帐号密码登录进入自己的微博系统后,呈现在用户面前的就是微博首页。微博首页包含的信息量非常之多。整体的布局分为顶部导航栏,中部信息展示区,底部公司版权说明区。顶部导航栏里面的菜单项将会随着鼠标的移动呈现出不同效果,当鼠标移动到上面时呈现出暗色,表示选中了当前项,以此给用户醒目的提示,增强用户体验。在微博首页最终要的就是中部信息展示区。在这个区域布局中,整个中部命名为page_main,用一个div包裹。在这个page_main的div里又分为page_left和page_right。page_left主要用于微博信息展示weibo_display和微博发布入口weibo_post_area。page_right用于右侧栏,右侧栏里放入各个小的模块,这样的设计右侧模块有利于系统的扩充,如果想在右侧栏中加入新的小模块,则直接将小模块导入进来就可以且不会影响原来的布局[16]。微博首页经过设计之后的效果图如图3.1所示。图3.1微博首页截图3、个人主页个人主页里展示的全是自己的信息。布局同微博首页布局是一样的,只不过把左侧微博发布区改为用户信息展示区,在微博列表展示区中去掉了用户小头像的展示。右侧用户信息子模块将不在显示。其余右侧模块将不改变。4、我的好友页与系统通知页以及我的评论页我的好友页、系统通知页和我的评论页的布局和其他页面布局一样,只是左侧信息展示区中的微博信息换成了相应的信息列表。如好友页的左侧换成了好友显示列表。右侧栏中的依然保持不变。我的好友页设计效果图如图3.2所示。5、设置页微博设置页的布局大体和其余页面布局形式一样,只是在右侧栏里面放的是一个导航菜单选项。用于对不同的信息进行修改。对于选中的菜单项会给出与其他菜单项不同的颜色显示,以提高用户体验。当选中菜单后,左侧展示区展示的内容会随之改变。设置页设计图如图3.3所示。6、微博后台系统界面微博后台系统设计的比较简单,但是也不失界面友好性。后台页面的整体布局为一个大的div包裹几个子div。左侧导航栏为单独的一个JSP41 第3章系统详细设计与实现文件,因为每个页面都会用到这个导航,所以为了不必要的代码重复开发,将其单独存放。在其他每个页面需要时将其导入,后台页面的布局和前台页面的信息展示区刚好相反,后台页面信息展示区在右侧栏,右侧栏的信息会随着每个页面的不同而呈现出不同的内容。后台界面设计截图如图3.4所示。图3.2我的好友页截图图3.3微博设置页截图图3.4后台界面设计截图41 第3章系统详细设计与实现3.2功能详细设计和实现功能详细设计是根据系统总体设计部分对系统功能模块的划分和基本设计思路,进行各个功能所需的类以及数据结构的设计,然后通过具体代码编写来实现具体的功能。本系统主要是通过JSP和SSH2相结合,并采用jQuery中的AJAX异步通讯技术来完成个各个功能模块的实现的。3.2.1用户模块用户功能模块主要包括用户注册、用户登录、用户资料更新、用户密码修改的功能。这几个功能都与用户表中的信息相关,因此需要建立一个User类,包含用户的所有属性及其getter()和setter()方法。与User类对应的DAO类为UserDAOImpl类,在该类中提供了对User类对象的添加方法addUser(),更新方法updateUser(),查找方法有多个,可以根据电子邮箱查找用户getUserByEmail()、根据ID获取用户getUserById()、根据昵称获取用户getUserByNickname()。与之对应的是UserServiceImpl类,这个类属于服务层,主要处理一些负责的业务,但其又有同DAO层相同的方法(调用DAO层的类去实现),其余的方法则自己实现或借助于DAO层的方法实现。如userLoginHandle()方法,该方法主要用于用户登录业务处理,其实现的业务逻辑为:传入的参数是从客户端传递过来的,通过在数据库中查找email,如果找到,则再将客户端传递过来的密码MD5加密后同查找出来的用户的密码进行比较,如果比较相同,则会将用户对象存入到session对象中,并返回true,如果查找失败或者密码匹配不成功则返回false。hisThisNikcname()该方法主要是用于检测用户昵称是否可用,其实现流程是调用DAO层到数据库中查询,存在则返回true,不存在则返回false。Service层是供Action层调用的。与user有关的action有UserLoginAction类、RegisterAction类、UpdateUserAction类、CheckNicknameAction类、CheckEmailAction类。用户模块中用户登录序列图如图3.5所示。用户在注册页里输入需要输入的数据后,后台根据配置文件找到相应的RegisterAction类,在注册时,通过AJAX异步验证邮箱和昵称是否可用,在用户输入邮箱后,jQuery获取用户输入的值,jQuery使用正在表达式/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/生成一个正则对象,根据这个正则对象去匹配用户所输入的邮箱格式是否正确。用户注册的时序图如图3.6所示。41 第3章系统详细设计与实现图3.5用户登录序列图图3.6用户注册序列图41 第3章系统详细设计与实现用户资料修改,密码修改,头像修改,是由UpdateUserAction来控制的,具体实现是在UserServiceImpl调用UserDAOImpl实现。在修改用户信息时,页面中会先将原来的信息显示出来,之后再修改,修改完了通过AJAX异步将数据发送到后台处理,处理之后返回处理结果。在修改用户昵称时,同样采用AJAX异步发送数据到后台进行昵称可用性检测。登录帐号是不允许被修改的。在用户修改密码时,会要求用户先输入原来密码,已确定是本人在修改密码。在修改头像时,采用了jQuery中的一个叫imgareaselect的图片预览插件,在图片上传后,允许用户截取图片的部分区域,这样设计更加符合用户体验。3.2.2微博内容模块校园微博内容模块中涉及到获取单个微博类GetOneWeiboAction、获取个人主页的微博类GetProfileWeiboAction、微博实体类Weibo、评论实体类Comment、获取微博首页微博列表类GetHomeWeiboAction、评论微博类Com--mentWeiboAction、删除微博类DeleteWeiboAction、获取新微博类GetNewWe--iboAction、微博发布类PostWeiboAction;微博服务类WeiboServiceImpl、微博数据访问类WeiDAOImpl、评论服务类CommentServiceImpl、评论数据访问类CommentDAOImpl;涉及到的接口有微博服务接口IWeiboService、微博数据访问接口IweiboDAO、评论服务接口ICommentService、评论数据访问接口IcommentDAO。1、微博发布功能校园微博发布功能在校园微博系统中是创建微博数据资源的主要入口之一,通过微博发布接口,将微博录入到微博系统中。用户在微博首页微博发布区里输入想要发布的微博内容,微博内容允许最多输入140个字符,在用户输入微博内容的同时,在输入框右上部会实时监控用户的输入情况,一旦用户输入字符超过140,右上部就会用红色醒目字提示用户输入内容过多,并且发布按钮变为不可发布状态[18]。如果用户想要什么都不输入,则微博发布按钮也是不可发布状态,而且用户在发布微博的同时,可以发布带图片的微博以增强微博的表现力,只需要点击微博发布框左下角的上传图片就会出现选择图片按钮和上传图片按钮,在用户上图图片时,在浏览器端会通过javascript进行图片格式的判断,图片格式只支持bmp,png,gif,jpeg,jpg如果格式不正确,则给出提示“图片限于bmp,png,gif,jpeg,jpg格式”,且将原来选择的内容清空。微博发布数据流程图如图3.7所示。图3.7微博发布数据流程图41 第3章系统详细设计与实现2、微博转发功能在微博首页或他人微博页提供了转发微博的接口,点击转发微博按钮后,会弹出微博转发窗口,在弹出微博转发窗口后,不能操作原页面,且原页面亮度变暗以示区别。在微博转发弹出层中有微博转发自谁,同样有实时监控转发输入框中字符长度的提示标语,在转发输入框中最多允许输入140个字符。在用户还没有输入文字时会默认的在微博转发输入框中显示“转发微博”四个字符。在转发微博时,可以勾选同时评论给作者,如果勾选了则在转发的同时会将微博输入框里的内容作为评论发送给原微博作者。微博转发数据流程图如图3.8所示。图3.8微博转发数据流程图3、微博评论功能微博评论也是微博数据创建的一个入口,用户在微博首页点击评论连接,会跳转到单个微博页,在单个微博页,会显示出相关的微博评论列表。在单个微博页里有评论输入框,在评论输入框中只允许最多输入140个字符,且在评论输入框右上角有实时监控输入字符长度的提示。如果输入字符超过140,那么右上角的提示为变为红色,并提示输入内容超过多少个字符。且评论按钮不能点击。在评论的同时还可以将该微博转发。如果一切操作正常,则会通过AJAX将数据异步发送到服务器CommentWeiboAction类处理,如果服务器处理正确无异常,返回处理成功标识,则会将刚评论的内容显示在评论列表中。反之则会给出相应的错误提示。4、微博展示功能41 第3章系统详细设计与实现微博首页微博展示区,本系统是基于校园而做的微博系统,每个用户都有学校院系的属性,那么在查看微博的时候,就可以分类查看好友微博,这个分类是系统自动根据用户信息分好的,用户在微博首页只需点击相应的分类就可以查看相应分类好友的微博,系统默认分了全部、校友、同学三个分组,全部微博里面显示的是所有好友的微博,并且在微博列表中是按照时间排序的,最晚发布的微博排列在最上面,且微博发布时间显示非常友好,微博发布时间如果是刚刚发布的,则在页面显示出刚刚,如果是10秒钟以前发的,那么就显示10秒钟前,如果是小于4小时的就显示几小时前,如果大于2天的就显示日期。如果小于2天的则显示几天前。这个时间是按照时间的移动越来越大,也就是说显示微博发布的时间是向后流动的。系统设定了每隔10秒钟更新一下时间。在微博首页里,用户可能有很多微博信息,不可能全部都显示出来,这里做了分页,分页功能主要借用了MySQL数据库提供的获取最大抓取结果和从什么地方开始抓取这两个功能,在底层表现的就是limit函数。在首页底部设计的分页提供了上一页、下一页、首页、尾页。5、微博登录用户信息展示功能微博前台右侧栏中顶部显示当前登录用户的基本信息。用户基本信息是在用户登录系统后存放在session对象中的,当前台页面需要使用时,直接在session对象中读取就可以了。这样就不用每次都访问一下数据库,尤其是发布微博时增加用户微博数量时可以直接更新用户信息,而不用先从数据库中取出来再更新,这就相当于把两次对数据库的操作降为一次操作,减轻了数据库的压力,同时也提高了系统的执行效率。3.2.3微博用户关系模块微博用户关系涉及到的类有好友关系处理类FriendAction;好友关系实体类Friend、好友关系服务类FriendServiceImpl、好友关系数据访问类FriendDAOImpl;涉及到的接口类有好友关系服务接口IfriendService、好友关系数据访问接口IFriendDAO。1、添加好友与取消关注功能41 第3章系统详细设计与实现校园微博好友关系采用的是好友关系中最弱的一种关系,为说明用户关系,现有两个用户用户A和用户B,如果用户A想要添加用户B为好友,则可以在好友检索里通过好友昵称检索出用户B,也可以在好友高级检索里通过入学时间、所在学校、所在院系等多条件检索。找到用户B之后,则可以直接在检索结果中将用户B添加为好友,或者去到用户B的个人主页,在个人主页有添加关注按钮,同样可以将用户B加入到自己的好友列表中,用户A在添加用户B为好友之后,不需要用户B同意,这种弱的好友关系非常利于消息的传播,用户B发布的微博,不仅仅只有用户A可以看到,所有添加了用户B为好友的校园微博用户都可以看到用户B所发布的微博。如果用户A不想关注用户B了,则可以去到用户B的个人主页取消对用户B的关注,或者在我的好友页里找到用户B将其取消关注。至此两人的好友关系结束,用户A再也不会收到用户B的微博消息了。2、查看好友与获取推荐好友功能推荐好友是校园微博系统根据用户的基本信息从系统中检索出的一些与用户具有某些相似属性的用户,比如同学校,同院系或者是其他。在这里只做了根据学校和院系来推荐。用户在登录微博系统后,在其微博首页右侧栏里有专门显示推荐好友的模块,通过该模块,增添了添加好友的一个渠道。在我的好友页里,可以查看已经添加的好友了。获取用户好友列表的类为FriendAction,该类主要负责处理与好友关系有关的操作。3.2.4微博检索模块微博检索功能包括微博检索和好友检索两个部分,涉及到的类有搜索类SearchAction;在搜索类中组合了微博服务类WeiboServiceImpl、用户服务类UserServiceImpl和好友关系服务类FriendServiceImpl。微博检索主要是为用户提供一个查询相关主题的微博信息。用户在检索输入框中输入想要查询的内容,点击查询按钮后会提交到后台SearchAction.java类中去处理,微博检索功能支持模糊检索,检索结果按照发布时间降序排序。也就是说最晚发布的微博显示在最上面。这体现了社交类网站的特点——用户关注实时的好友动态或最近的好友动态[19]。对于检索出来的微博用户同样可以进行转发评论的操作。微博检索除了普通检索之外还有高级检索,高级检索是多条件模糊检索。高级检索包括通过微博内容和微博发布时间来检索。好友检索分为基本和高级检索,基本检索就是根据用户昵称进行检索用户,高级检索就是通过多条件组合模糊查询,主要包括用户昵称、入学时间、学校和院系名称查找。对于查找出来的用户可以进行加关注或者是取消关注操作。校园微博系统检索示意图如图3.9所示。图3.9校园微博系统检索示意图41 第3章系统详细设计与实现3.2.5微博后台管理模块微博后台模块主要是为管理校园微博前台服务的,后台模块主要包括管理员模块、公告模块、举报处理模块和登录注销功能,登录注销和微博前台系统的登录注销是类似的,这里就不再具体阐述了。1、管理员管理功能管理员分为普通管理员和超级管理员,超级管理员负责对普通管理员的管理,主要是通过登录后台系统后添加新的普通管理员,删除管理员,查看管理员的基本功能。主要涉及的类有管理员操作类AdminAction,还包括Admin实体类;管理员服务类AdminServiceImpl;管理员数据访问类AdminDAOImpl。在管理员添加、删除操作中,均采用AJAX异步处理数据,这样可以减少网络数据流量和减轻服务器的压力。2、公告管理功能普通管理员具有发布公告的功能,发布公告采用AJAX异步处理数据,管理员在发布公告时涉及到公告实体类Announcement;公告处理控制器AnnouncementAction类;公告服务类AnnouncementServiceImpl;公告数据访问类AnnouncementDAOImpl。涉及到的接口有公告服务接口IannouncementService;公告数据访问接口IAnnouncementDAO。3、举报处理功能举报处理,主要处理被举报的微博,根据举报类型不同,通过管理员核查后确定被举报内容不健康或违反相关法律法规,则对被举报微博的所有者进行相应处理,如对其帐号进行封号处理或者禁止3天内登录。3.3系统测试系统测试是软件开发过程中发现软件错误和软件缺陷的一个重要过程,只有通过软件测试才能够保证软件开发产品的正确性和完全性。在测试的过程中通过发现问题和解决问题,使软件产品的功能更加完善。整个软件的测试过程分为单元测试、集成测试、系统测试和验收测试。系统测试主要采用白盒测试和黑盒测试相结合的方法。白盒测试主要采用JUnit进行的,采用JUnit测试需要编写测试代码,通过继承需要测试的方法类或者接口,来完成测试。黑盒测试则通过浏览器访问本系统,按照业务流程进行系统的功能测试,通过输入预先设计完成的系统测试用例进行测试,并将测试结果与预期结果进行对比41 第3章系统详细设计与实现,从而得出黑盒测试的结果[20]。下面对部分测试内容加以阐述。3.3.1浏览器兼容性测试浏览器兼容性测试是为检测系统页面布局在不同浏览器中的显示效果,本次测试的测试用例如表3.1所示。表3.1浏览器兼容性测试用例表浏览器分类用例描述测试方法期望结果IE浏览器浏览器兼容链接页面,显示页面内容页面布局正常且表与表单可见、功能链接有效火狐浏览器浏览器兼容链接页面,显示页面内容页面布局正常且表与表单可见、功能链接有效测试结果是,在火狐浏览器中,页面布局稳定,没有出现页面元素大小错乱的情况。在IE浏览器中页面布局符合预期效果,各功能链接均有效;只是按钮会有细微的差别,这主要是IE浏览器和火狐浏览器本身的问题,至今无法解决。本系统所有页面是在火狐浏览器中预览开发的,CSS和DIV布局是借助于firebug调试,之所以要选择火狐浏览器开发,因为火狐浏览器遵守W3C对网页布局的规范性,所以其开发的网页是最标准的网页。在IE中显示出来有些许不一样是用户可以接受的范围之内。针对此类差异不需要进行修改也无法修复。但不影响正常使用,且页面均友好。3.3.2主要功能性能测试由于系统功能较多,测试内容也较长,各个功能的测试方法和测试思路基本一致,因此选取具有代表性的功能进行有效性测试的说明。1、表单验证功能测试系统拥有多个表单填写页面,如用户注册页面、资料修改页面等。这些表单页面的验证功能的完整性和有效性将直接关系到系统保存到数据库中的数据的完整性和准确性。用户注册功能测试是表单验证功能的有效性测试的代表,测试通过合法输入和非法输入来测试JavaScript与jQuery的AJAX技术相结合的表单验证功能。测试结果是,41 第3章系统详细设计与实现当用户输入已经存在的电子邮箱时,会给出该邮箱已经被注册的提示信息,如果输入邮箱格式不正确,则会给出邮箱格式不正确的提示;当用户输入已经存在的昵称如XXX,则系统会给出“XXX昵称已经存在了”的提示;当用户输入的密码长度小于6或者大于20都会给出提示。当密码和确认密码不同时会给出错误提示。如果用户必填项有一项为空,在点击注册按钮时都会给出提示,并且将鼠标定位到相应项。因此,用户注册功能表单验证功能达到预期目标,功能实现非常完整。注册测试部分截图如图3.10所示。图3.10注册功能测试部分截图2、图片上传功能测试图片上传功能测试不仅需要测试功能的完整性还需要测试其性能,图片上传大小限制在小于10M的图片,并且上传格式只允许jpg、png、gif、bmp这几类。在头像上传时只允许上传jpg格式的图片。预期结果:如果上传规定格式外的文件,给出错误提示,并给用户清晰的提示,明示用户上传什么格式的图片。大于10M会给出相应提示。测试结果表明,在上传较小图片时性能较好,而文件较大时较慢。在图片格式检测中也和预期的完全一致。3、微博搜索功能测试文件搜索功能测试主要测试搜索功能的准确性和有效性,对其测试采用有效条件和无效条件搜索的方法;有效条件是指满足查询条件的记录是存在的,无效条件是指满足该条件的记录是不存在的。搜索功能包括微博的简单模糊匹配搜索和高级搜索功能中的多条件模糊匹配搜索,测试结果表明,条件有效时能将结果显示到页面上,没有条件满足的数据时在页面提示没有找到符合条件的结果。41 第3章系统详细设计与实现3.4本章小结本章详细阐述了校园微博系统的详细设计以及编码实现的过程,并对测试思路与方法进行了说明。从系统界面交互设计开始,给出系统显示界面。根据业务逻辑和需求规定,依照总体设计中功能的分解和软件的结构,开始详细设计各个模块的实现细则。再根据详细设计文档,着手编码实现。各单元模块实现后,首先进行代码审查,然后进行单元测试,在所有模块开发完成后进行集成测试和浏览器兼容性测试。41 校园微博系统的设计与实现结  论针对现在互联网技术的发展和社交网络在中国国内的兴起,为在校大学生打造一个健康的社交平台显得非常有必要。本文就针对这一特点,在参考国内外现有微博系统和其实现技术的基础上,同时采用B/S架构和MVC设计模式,通过SSH2,CSS,AJAX和jQuery等主要Web开发技术,设计和实现了一个集微博图文信息发布、实时分享、及时交流等功能于一体的具有校园特色的校园微博系统。通过该系统的设计方案和实现,取得的主要成果有以下几个方面:(1)在前台子系统中实现了用户模块。其中包括用户注册、用户登录、资料修改、头像上传等功能。在录入数据的表单上,设计了完善的非法字段验证机制,实现了将非法数据阻止在客户端的功能。采用拦截器机制成功阻止非法用户对系统的访问。实现了添加关注、取消关注、获取推荐好友、检索好友的功能。(2)在前台子系统中实现了发布图文混合微博、转发微博、评论微博、删除微博、回复评论、检索微博、分类查看好友微博等功能。针对微博发布,设计了140字长度实时检测机制,实现了对微博内容长度的控制。针对带图微博图片显示方式,设计了点击放大查看大图的功能。实现了实时获取评论通知、实时获取新微博提醒等功能。(3)在后台子系统中实现了管理员的权限控制,实现了超级管理员对普通管理员增加、删除、查询的功能。实现了普通管理员发布公告、查询公告、删除公告、处理举报等功能。由于时间紧迫和初次研发网站类软件,不免存在一些疏漏。本该系统经过测试后表明,系统的设计与实现方案具有一定的可行性和有效性。但在性能方面还存在一些不足之处,比如面对高访问量时系统的响应速度会降低。也存在一些设计上的缺陷,比如面对海量数据查找应该如何处理才能减少用户的等待时间。41 校园微博系统的设计与实现参考文献[1]胡泳.网络时代的个人表达与公共讨论[M].桂林:广西师范大学出版社,2008:55-56P.[2]腾飞.大学生网络社交的实证分析与高校学生工作的对策建议[J].中国市场,2011,(16):32-33P.[3]赵国栋,王珠珠,原帅.大学生网络生活方式之聚类分析[J].北京大学教育评论,2010,(10):201-202P.[4]陈友庆,吴远.大学生网络交往特点及其影响因素[J].现代教育科学,2008,(1):58-59P.[5]魏双锋.大学生网络社交的常见心理问题及对策[J].辽宁行政学院学报,2011,(12):144-145P.[6]杨妹.有关大学生网络交往的研究述略[J].文教资料,2005(21):23-24P.[7]麦兹里奇.社交网络[M].中信出版社,2010,(1):3-5P.[8]ColeCA.HGMandwetlandfunctionalassessment:sixdegreesofseparationfromthedata[J].EcologicalIndicators,2006,6(03).[9]谢尔以色列.微博力:140字推爆全世界[M].中国人民大学出版社,2010:63-64P.[10]易开祥,胡敏,杨建,石教英.基于B/S模式的信息系统研究与设计[J].计算机工程,2000,26(8):29-30P.[11]吕林涛,万经华,周红芳.基于AJAX的Web无刷新页面快速更新数据方法[J].计算机应用研究,2006,23(11):199-200P.[12]游丽贞,郭宇春,李纯喜.Ajax引擎的原理和应用[J].微计算机信息,2006,22(6):205-206P.[13]宋汉增,沈琳.利用Hibernate对象持久化服务简化Java数据库访问[J].计算机应用,2003,23(12):135-136P.[14]张灵峰.Struts2与以其他Web应用框架整合的研究[J].茂名学院学报,2009,19(1):56-57P.41 校园微博系统的设计与实现[15]唐纳德A诺曼.设计心理学[M].中信出版社,2003:192-193P.[16]温谦.CSS设计彻底研究[M].北京:人民邮电出版社,2008:405P.[17]侯捷,熊节.重构:改善既有代码的设计[M].北京:人民邮电出版社,2010:309-310P.[18]季国飞.jQuery开发技术详解[M].北京:电子工业出版社,2010:302-303P.[19]Amichai-Hanbruger.TheImpactofInternetinter-activityandNeedforClosureonConsumerPreference[J].ComputersinHumanBehavior,2004:(20):116-117P.[20]王东刚.软件测试与Junit[M].北京:人民邮电出版社,2004:202-203P.41 校园微博系统的设计与实现致  谢本论文是在李健利副教授的指导下完成的,在这里要特别感谢我的毕设指导老师李健利副教授。李老师在毕业设计的每一个阶段都给予了我许多非常宝贵的建议和重要的指导,对于我的毕设作品和论文的撰写都起到了至关重要的作用。李健利副教授科学的工作方法,严谨的治学态度,平易近人,学识广博,更给了我很大的帮助和影响。在此对李老师在毕设期间给我的精心指导和关心,对毕设作品和论文的宝贵意见以及在学习和生活上的关怀,表示衷心的感谢。在即将毕业之际,感谢哈尔滨工程大学,哈尔滨工程大学浓厚的学术氛围,舒适的学习环境我将终生难忘。感谢计算机科学与技术学院四年来对我的精心培养;感谢计算机科学与技术学院的所有老师四年来的无私奉献,感谢您们倾囊赐教、鞭策鼓励。在老师们那里所学到的不仅仅是科学文化知识,更有高尚的道德品质,是您们让我成长为一名合格的大学生,衷心感谢您们。在此还要感谢孙旭、邓鹏和李泽阳等同学,在进行毕业设计和论文撰写期间给予我的热情帮助,在此向他们表达我的感激之情。感谢陪伴我度过大学四年生活的同学们,感谢他们给予我的帮助和支持。最后,感谢我的父母和家人以及关心我的所有人。他们是我生命中永远的依靠和支持,他们无微不至的关怀,是我前进的动力;他们的殷殷希望,激发我不断前行。他们总是能在我迷茫的时候照亮我前进的方向。41

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭