《校园微博系统的设计与实现学士学位论文.doc》由会员分享,可在线阅读,更多相关《校园微博系统的设计与实现学士学位论文.doc(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、校园微博系统的设计与实现 学 号 2008061226 密 级 哈尔滨工程大学学士学位论文校园微博系统的设计与实现院(系)名称:计算机科学与技术学院专业名称:软件工程学生姓名:吴建强指导教师:李健利 副教授哈尔滨工程大学2012年6月III校园微博系统的设计与实现 吴 建 强 哈尔滨工程大学 学 号 2008061226 密 级 校园微博系统的设计与实现Design and Implementation of Campus Microblog Systems学生姓名:吴建强所在学院:计算机科学与技术学院所在专业:计算机科学与技术指导教师:李健利职称:副教授所在单位:哈尔滨工程大学论文提交日期:
2、2012年6月论文答辩日期:2012年6月学位授予单位:哈尔滨工程大学摘要校园微博系统是专门针对在校大学生而设计的一套信息交流系统,用户通过此系统可以了解其他用户的近况,了解校园内发生的实时新闻,同时也可以发布自己的近况,可以就某个问题与其他网友进行深入交流,本文通过阅读相关文献,分析国内外现有类似软件系统的实现技术,并结合在校大学生网络交流的需求,提出了一种集发布图文信息、及时分享和信息处理于一体的系统构建方案。在对微博系统和大学生网络交流现状进行详细研究与分析的基础上,通过采用B/S架构和MVC设计模式,JSP和SSH2技术以及AJAX技术,结合当前流行的Java开源框架和现有微博系统现状
3、,开发一个基于Web2.0的校园微博系统。在前台系统实现对微博用户、微博信息发布、微博信息转发、用户实时交流以及用户好友关系的管理,在后台系统实现对微博管理员、微博公告以及被举报微博的管理。系统经过验收测试及反复使用后,证明是可行的,且较已有类似软件更加具有针对性。关键词:网络交流;校园微博;及时分享ABSTRACTThe campus microblogging system is an information exchanging system designed specifically for students in institutes of higher learning, thro
4、ugh which the students could get access to the current situation of their peers, get to know the latest happenings on the campus as well as update their status. Thus the users could exchange further ideas with others on any issues. Through reading a collection of related literature and analyzing the
5、 present technology applied in similar systems home and abroad, the author proposes a system construction scheme on the basis of the communication needs of the students. The system construction scheme is a synthesis of updating, sharing and processing system.On the basis of detailed research and ana
6、lysis on the microblogging system and college students status of network communication, developping a campus microblogging system based on Web2.0 through the using of B / S architecture and MVC design patterns, JSP and SSH2 technology and AJAX technology, combined with popular Java open source frame
7、work and existing micro-status of pacing system. In the foreground system, it includes the users of microblogging, microblogging information, microblogging forwarding information, the user real-time communication, and user-friend relationship management, back office systems to achieve the management
8、 of the administrator of microblogging, microblogging announcements, as well as being reported microbloggingAfter acceptance testing and repeated use, it was proved to be feasible and more targeted than other similar software.Key words: campus microblog; network communication; timely sharing校园微博系统的设
9、计与实现目录第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.
10、2 微博内容模块323.2.3 微博用户关系模块353.2.4 微博检索模块363.2.5 微博后台管理模块363.3 系统测试373.3.1 浏览器兼容性测试373.3.2 主要功能性能测试383.4 本章小结39结论40参考文献41攻读学士学位期间发表的论文和取得的科研成果43致谢44V第1章 绪论第1章 绪论1.1 课题的背景与目的及意义近年来,随着互联网的迅速发展,网络已经融入到了人们生活中的每一个角落。人们的生活方式也随着网络的普及和发展,发生着根本性的转变,人们通过网络交流的方式也是日新月异,由原来的电子邮件到现在的即时聊天,由原来的大型播客到现在的微型博客。这一切变革都得益于We
11、b2.0。Web2.0是相对Web1.0的新的一类互联网应用的统称,Web2.0相对于Web1.0来说更注重用户的交互作用,用户既是网站的浏览者,也是网站内容的制造者1。随着社会不断的向前发展,人们的生活节奏变得越来越快,伴随着每天三点一线的生活方式,出现了不少的宅男宅女,这也使人们的交际圈受到了严重的限制2。在大学生人群中尤其突出。同时,基于人类本身的特性群居动物,人人都渴望与人交流,尤其是宅男宅女们急需通过与人交流来分享自己生活中的点点滴滴3。这样就需要一个基于网络的交流平台。而微型博客的特点非常符合当代人网络交流的特点。首先,相对于强调版面布局的博客来说,微博的内容组成非常简单,其由简单
12、的只言片语组成,从这个角度来说,对用户的技术门槛很低,而且在语言的组织编排上提倡简单明了,不需要华丽的辞藻修饰4。而且随时随地的发布自己的所见所闻所感所想。通过关注他人了解其动态,通过关注事实了解社会万象。校园微博系统旨在建设一个面向大学生的微博平台,通过该平台了解到身边的同学都在做什么、关注什么,为在校大学生提供一个良好交友的平台5。纵观现有的微博系统平台,大多是针对网络名人的,比如新浪微博、腾讯微博等。不可否认,他们已经在微博领域做得非常的完备,但没能凸显出专一特性,虽然交际圈扩展到整个社会,但是专供学生学习生活交流的特点还是不够明显6。因此,构建一个针对校园的微博系统十分必要。综合上述原
13、因,目前需要开发一个有针对性的校园微博系统。该系统主要面对的用户为在校大学生,为同学们提供一个轻松、方便的交流平台。扩大同学们的交际圈,开阔同学们的思维,促进同学们之间的交流。1.2 国内外微博系统现状说起微博就不得不说一说SNS(即社会性网络服务),其全称Social Network Site,也就是“社交网站”或者“社交网”,社会性网络是指人与人之间的关系网络,这种基于社会网络关系思想建立的网站就叫社会性网站7。根据美国哈佛大学心理学教授Stanley Milgram1967年创立的六度分割理论:两个陌生人之间所间隔的人不会超过六个,也就是说,一个人最多通过六个人就可以认识一个陌生人8。按
14、照六度分割理论,每个个体的社交圈都不断放大,最后成为一个大型网络。这就是社会性网络的早期理解。后来人们根据这种理论创立了面向社会性网络的互联网服务。微博客就是这样一种社会性网络服务。其允许用户及时更新简短信息并可以公开发布博客内容。他允许所有微博用户阅读或者好友阅读,使微博用户之间的交流更加方便快捷,同时也是一个信息快速传播的有效途经。微博起源于美国,Twitter公司推出的微博是最早也是最著名的,其提出了微博的核心概念,根据相关公开数据,截至2011年6月份,其活跃用户数已经达到1亿,且其随着IOS设备的不断发展,其用户数量还在急剧增加。Twitter每日微博发布量现已超过2.5亿条。Twi
15、tter上所发布的各类稀奇古怪家长里短的信息,已经吸引了广大的网友们。网友们通过了解Twitter上的那些重要的或不重要的信息,提高了与他人交流的频率,并从某种程度上感受到了“社交”的温暖9。国内的微博网站,最初的先行者是由人人网创始人王兴于2007年建立的饭否网。其当时是中国大陆地区第一个提供微型博客服务的类Twitter网站,用户可以用过网页,Wap页面,IM(InstantMessenger即时通讯)软件等发布消息或者上传图片。用户间通过互相关注等方式互动。至2009年新浪微博上线,在功能设计上,保留了通信、社交功能,极大强化了微博的媒体和传播功能,成为国内最具影响力的微博网站。随着新浪
16、微博的蓬勃发展,国内各大门户网站如腾讯、搜狐也都纷纷投入建立了自己的微博网站。微博能成为时下最为流行的社交网络,是因为其具有Web2.0时代的核心特性:互动与分享。首先微博具有便捷性、背对脸、原创性三大主要特征,大多数网友在微博客上找到了展示自己的舞台。微博客背对脸的交流,可以一点对多点,也可也点对点。据了解,新浪微博则采用的是当下流行的php语言,其中面对庞大的用户访问量,采用的集群方式将海量访问负载均衡到各个不同的服务器以减轻访问量给服务器带来的压力,面对海量数据采用分布式存储,面对及时性后台采用了异步处理数据,前台及时更新,用memcacheQ做服务器端数据缓存。针对不同地区的用户采取就
17、近访问服务器原则,减轻服务器压力。但每个服务器使用的却是同一个开发平台的数据,这就保证了数据的一致性和实时性。随着互联网技术的不断革新,高校教师的教学方式、工作方式、学生的学习方式、生活方式等发生重大变化,有关高校方面的信息需要及时个让同学们知道,这就需要一个方便快捷的信息交流平台。校园微博系统将采用B/S架构开发,将系统分为客户端、Web服务器端和数据库服务器端:(1)采用B/S架构开发。之所以采用B/S这种架构,其原因在于软件的可维护性强,利于将来对系统的升级。也更符合在互联网上进行信息的共享,无需考虑客户端的差异和对程序的兼容性,尤其是AJAX技术、CSS技术的应用,使得用户界面更加的美
18、观友好,客户端只需要一个可以上网的浏览器就可以,且其响应速度相比C/S更快。在此基础上实现信息的及时分享,更符合当前用户的需求10。(2)用户发布微博信息,采用的是AJAX异步更新客户端界面,从用户整体感受出发,在用户发布微博的过程中,页面是不整体刷新的,这将给用户更好的体验11。在发布微博的同时,可以上传图片,如果采用原始的form表单提交来上传图片,这将会刷新整个页面,页面的刷新将覆盖到用户原先所浏览的信息。而且还无法将图片加载到用户即将发布的微博中,经过自习研究和分析,结合AJAX技术和ifream技术实现了AJAX异步上传图片的功能来解决图片上传后不刷新页面的问题。从而提高了用户的体验
19、和降低了客户端对服务器的请求压力12。 (3)对校园微博系统的信息存储,主要分为两种,一种是文字信息的存储,另一种是图片信息的存储。对于文字信息的存储,将直接用MySQL数据库来存储,而对于图片信息的存储,则将其保存到指定目录下,而将其在服务器上的请求地址存入到数据库中,这样在用户请求图片时,能非常方便的获取图片。具体的做法在后序章节会有详细的说明。 1.3 课题内容及论文的结构课题所研究的校园微博系统,是一套基于B/S模式开发的信息处理系统。采用Java语言作为后台开发语言,采用当下流行的Struts2框架、Hibernate框架、Spring框架三者结合,前台展示采用JSP,数据交换大部分
20、用AJAX技术实现异步通信,服务器也是使用的时下流行的Tomcat服务器(免费开源),整个系统的主体为MVC架构1314,针对现有网络用户的需求,设计和实现一个适合大学生用户的校园微博系统,其主要功能模块包括:用户管理模块,微博用户关系模块、微博内容模块、微博搜索模块、系统通知模块、后台管理模块。本文共分为3章,按如下方式组织:第1章是全文的绪论部分,包括了系统开发的背景、目的和意义,国内外现有微博系统的发展现状,现有网络用户需求现状以及课题工作内容和论文结构。第2章包括了对系统的需求分析以及系统的总体设计,用业务流程图、用例图等阐明系统的需求;用系统结构图表明了系统的总体架构,简要的描述了各
21、个功能的概要设计。介绍了数据库系统的设计,对数据库中的所有信息表的结构以及表与表之间的联系进行了详细的描述。第3章包括了系统的详细设计和具体实现方法,对系统的用户界面和功能模块对于系统中比较重要的功能详细阐述了实现方法、实现过程和结果。还包括对系统进行全面检测,提出了部分在测试中遇到的问题和解决方案。最后是本文的结论部分,对本文工作进行了总结。3第2章 系统需求分析与总体设计第2章 系统需求分析与总体设计本章将对整个系统作一个全面概括的介绍,从系统的需求分析开始介绍,详细阐述系统的业务需求,功能需求以及性能需求。根据需求分析进行系统的总体设计,根据需求分析进行数据库设计。2.1 系统需求分析在
22、软件设计中,需求分析的地位可谓是举足轻重,只有通过需求获取,需求分析,需求验证和需求变更这几个主要的需求管理阶段,才能保证开发出来的系统具有合理性和正确性,并且能够大大减少后续开发中和系统上线后维护阶段的返工工作量。在绪论中也有简单的提及到校园微博系统的部分用户需求,但都只是从个别功能点来描述,并不完整。对于一个完整的校园微博系统来说,还应包括业务、功能以及性能等多方面的需求。下面将对微博系统需求详细阐述。2.1.1 业务需求系统的整个业务流程是以校园微博系统资源为中心,系统的用户主要分为普通用户和管理员用户两种。普通用户即为微博使用者(主要为大学生),系统管理员主要通过登录后台管理系统来管理
23、微博,如发布微博公告、处理举报微博等。普通用户和系统管理员操作业务不一样,实现的功能也不一样。校园微博系统属于网站类的软件系统,根据其系统本身的特点将其分为前台系统和后台系统。前台系统主要是提供给普通用户访问的,而后台系统主要是归管理员使用。在微博前台系统中,用户登录界面提供用户进入微博系统的入口,且同时提供了供新用户加入校园微博的入口(新用户注册)。新用户注册微博后便可以通过注册的帐号密码登录进入到属于自己的微博首页。在用户成功登录自己的校园微博系统后,可以用简短的语言发布一条微博。发布微博的同时,如果觉的需要在微博中添加图片以增强微博的感染力,可以发布带图片的微博。在浏览好友所发微博时,如
24、果用户感兴趣可以转发其微博,也可对其进行评论,发表自己的见解和看法,以此参与某个问题的讨论。如果觉的自己所发布的微博不好或是其他原因想要删除,则可以点击首页中的相应删除按钮或者是进入个人主页里面点击删除按钮以删除其微博。微博前台系统还提供了搜索功能,可以搜索好友,在好友搜索框里,输入好友昵称就可以检索好友,如果不知道好友昵称,则可以点击高级搜索,在高级搜索里面,可以按照好友所在大学、院系、入学年份等多条件搜索。检索出好友后,可以对其添加关注,也可以访问其个人主页。除了好友检索功能外,微博系统还提供了微博搜索功能,用户输入想要搜索的内容或者微博主题就可以搜索与输入内容相关微博,当然也可以进行高级
25、搜索,按照微博发布时间检索。前台网站的基本业务流程如图2.1所示。图2.1 校园微博系统前台业务流程图在校园微博后台系统中,主要的业务包括超级管理员对管理普通管理员的管理。普通管理员对举报的处理,微博公告业务的处理。2.1.2 功能需求系统的功能需求可以按照用户类别分为网站前台用户的需求和系统管理员的需求。由于不同类别的用户在系统中的使用权限不同,扮演的角色和所具有的行为更是不同,因此对于系统功能的需求也是各有不同。网站前台用户是对网站前台的需求,其是网站的主要使用者,也是网站信息的创建者和传播者,大的功能模块可分为:用户模块、微博用户关系模块、微博内容模块、微博检索模块。用户模块主要包括:用
26、户注册子模块、用户登录微博子模块、安全退出子模块、资料微博子模块、密码修改子模块、头像修改子模块。用户模块功能用例图如图2.2所示。微博用户关系模块,本模块主要是关于用户与用户之间的关系,校园微博系统中关于用户之间的关系采用的是一种弱关系,如用户A和用户B,用户A可以对用户B添加关注,而无需强制用户B也要关注用户A,这种单向的好友关系非常有利于信息的传播,比如用户A关注了用户B,那么用户B所发的微博,用户A不用访问用户B主页就可以看到,不仅仅是用户A可以看到用户B所发的微博,所有关注了用户B的用户在自己的主页上都可以看到用户B所发的微博,这中发散式的传播和简单的关系是分不开的。图2.2 用户模
27、块功能用例图在该模块中包括以下几个子模块:查看好友子模块、加关注子模块、取消关注子模块、访问好友主页子模块、普通检索好友子模块、高级检索好友子模块、用户推荐子模块。微博用户关系用例图如图2.3所示。微博内容模块,这个模块是校园微博系统的核心模块,校园微博信息的创建、传播、销毁皆源于此,用户所感所想,所见所闻,通过此处以微博的形式输入到系统中,关注了该用户的好友就可以看见,可以了解该用户最近的动态,其他用户也可以加入该条微博中进行讨论,比如用户A发布了一条关于用Java语言实现二叉树的微博,那么其他微博用户可以对其发表自己的看法,也就是评论微博,当然另一些用户也可以对用户的评论进行回复,从而达到
28、一种学习交流的作用。如果有其他用户对用户A的微博进行了评论,在微博顶部会有明显的通知提示,如果用户的好友发布了新的微博,则在用户主页也会有新微博的提示。如果用户觉的自己发布的微博信息有误,可以删除该条微博。在用户浏览好友微博时,如果对好友微博感兴趣,可以转发为自己的微博,在转发的同时也可以对其微博进行评论。图2.3 微博用户关系用例图为了进行文明的交友,如果用户发现某用户发布不良微博,则可以举报不良微博。如果用户想查找与某个话题有关的微博,那么可以在微博检索框里输入内容进行检索,也可进行高级搜索,按照主题、发布时间来检索微博。校园微博是针对校园的,那么如果用户只想查看自己同学的微博,则可以选择
29、分类查看微博。在这里提供了查看全部微博,校友微博,同学微博的三种简单的分类。在微博内容里面还包括获取系统通知,查看系统通知的功能。微博内容用例图如图2.4所示。对于校园微博后台系统,其用户主要分为超级管理员和普通管理员,他们都是网站后台的维护者。超级管理员具有对普管理员进行管理的功能,包括添加普通管理员、删除普通管理员。而对于普通管理员来说,主要负责公告管理和举报管理,公告管理包括发布公告、删除公告,举报管理则包括处理微博举报。用户所发微博被举报并经管理员审查后确实属于非法微博,则将对用户的行为进行限制,视情况不同限行不同,如用户发表违反国家法律法规的言论,则将对其进行封号;如果用户发表虚假宣
30、传,则将对用户进行禁言多少天等等。后台管理模块用例图如图2.5所示。综合上述分析,校园微博系统主要需要实现的功能包括:前台登录、用户注册、安全退出、后台登录、后台注销、发布微博、转发微博、评论微博、回复评论、删除回复、删除微博、举报非法微博、添加好友、取消关注、检索好友、检索微博、修改个人信息、上传个人头像、设置微博权限、查看系统通知、查看评论、添加管理员、举报处理、公告管理。图2.4 微博内容用例图图2.5 后台模块用例图对于好友或者微博检索都有简单通配检索功能和复合条件的高级的检索功能的需求。系统的功能结构图如图2.6所示。图2.6 系统功能结构图2.1.3 性能需求校园微博系统属于网站类
31、软件,其用户量可能上万,其的运行环境是互联网络,因此校园微博系统的性能也与互联网用户对于系统的性能的需求息息相关。首先,网站的响应速度要快。即通过浏览器打开网页速度要在用户能够容许的时间之内(5s),用户点击链接或按钮的响应时间要短,尽量减少用户的等待时间。对于图片的上传,保证上传成功且能正确访问,在发布微博时,能够及时的将新发布的微博展示给用户,在用户好友发布微博后能够及时给出提示。转发微博时,弹出框要在点击转发按钮后及时弹出,并且在转发成功后及时显示在页面上。其次,对于多用户同时访问网站时,网站不会出现瘫痪现象或者假死现象。在用户直接在浏览器地址栏里输入连接想避开登录直接进入系统是不允许的
32、。系统在互联网上使用时需要保证系统安全无漏洞,保证用户在校园微博中信息的完整性和安全性。系统在运行时应当无异常,对于客户端的请求,服务器保持较快响应速度,系统要能够支持大量的网络用户同时在线访问资源。2.2 系统总体设计在系统需求分析部分已经提出了对校园微博系统的功能和性能需求,本小节将给出研发本系统所给出的在总体设计中为实现需求模型中的需求进行系统的结构设计,运行环境设计,开发工具和界面设计等。工欲善其事必先利其器,这里将对开发本系统所涉及到的技术进行简单的介绍。1、MVC设计模式在以前开发软件时,通常将前后台逻辑混在一起开发,这样不仅开发效率低下,而且后期难以升级维护。后来MVC模式给程序
33、员带来了希望,将程序员们从无尽的痛苦中解救了出来。MVC开发模式就是把一个Web开发项目分成M、V、C三层,实现项目分工。M即model,模型,就是数据库操作类,通过数据库操作类去操作各个数据表,比如增删改查。本系统中因采用了SSH2项目开发框架,model层主要是用Hibernate封装数据对象,使用Spring中对Hibernate库的调用来实现对数据库的操作。同时由spring控制数据库的事物机制。V即view,视图,就是用户所看到的界面,或者说是前台的模板,显示给用户看的。并提交用户行为给控制器,主要通过url来提交。在SSH2框架下面,V是由JSP来呈现的。C即control,控制器
34、,通过控制器来调度模型和视图的运行。主要通过判断、验证等操作,再提交给模型和视图进行处理,控制器中有不同的方法,用以调用不同的模型进行操作。在本项目中采用Struts2来充当控制器。以现实中的工厂为例,整个Web项目是一个公司。模型就是生产部,视图就是市场部,控制器就是管理层。在市场部接到一个订单后,首先询问管理层,管理层通过判断决定接下订单,然后交给生产部门,生产部门生产完毕后告诉管理层,管理层让市场部通知客户来取货,整个流程结束。2、AJAX(Asynchronous JavaScript and XML)在面对大量用户访问某个网站时,其响应速度是影响用户体验的重要因素,而减少Web通信中
35、的数据流量是提高响应速度的方法之一,而AJAX技术则是专门针对此设计的。通过AJAX,不用刷新页面便可以与Web服务器进行数据交换,这就避免了很多不必要的信息的重复传送。AJAX技术使用简单方便,现在已有很多好的JavaScript封装库对其进行了封装。本系统中将采用jQuery封装库进行开发。3、Hibernate技术针对以前的面向过程开发,Java的强项在于面向对象。而现在的数据库基本上都是面向关系存储的。如何将面向对象和面向关系连接起来成为了一个问题。Hibernate技术实现了对面向过程向面向对象的转换,也实现了将对象转换为关系模型的功能。本系统利用Hibernate中的注解将对象映射
36、到数据库中,这种映射实现了数据的封装,实现了面向对象的思想。同时亦简化了对数据的操作(因为所有操作都是面向对象的)13。4、Spring技术面对与数据库的连接和数据的一致性问题,本系统采用了Spring技术,其主要功能并不在于维护数据的一致性,而是面向切面编程。但本系统主要利用的是其维护数据一致性提供事物支持的功能。面向切面的简单应用。5、Struts2技术面对以前的servlet,每写一个控制器就需要一个servlet,这样如果需要很多控制器的话那么将会有很多servlet需要配置。而本系统采用Struts2技术提供的servlet封装,其配置更加简单,而且还支持面向对象。比如在用户注册的表
37、单里面,采用面向对象的模型驱动。底层的赋值全都交由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架构进行开发,该架
38、构将整个系统分为用户浏览器端、Web服务器端和数据库服务器端。1、子系统划分与开发模式的选择按照结构化的设计方法,校园微博系统可以分为微博前台子系统,微博后台管理子系统。微博前台子系统统包括了用户登录、用户注册、用户退出、发布微博、转发微博、评论微博、回复评论、图片上传、检索好友、检索微博、修改个人信息、修改密码、上传头像、访问好友个人主页、查看好友、添加好友、取消关注、查看感兴趣的人、获取评论通知、点击评论通知便可以查看具体的评论、还可以访问单个微博页进行针对一个微博进行讨论。其中不管是好友检索还是微博检索都提供了相应的高级检索来提高检索精度。管理员子系统包括用户权限管理、添加普通管理员、查
39、看公告、发布公告、处理举报微博。虽然校园微博系统可以分为上面两个子系统来实现,但若不选择一种合理的设计模式,开发人员在实现过程中就可能将表现层代码和数据层代码混合到一起,这将使得代码的重用率很低,更不利于代码的维护。因此必须为系统选择一个合理的开发模式,来确定系统开发的总体架构。经过网络调查和资料查阅得知,当下大部分系统或者网站采用的是MVC模式。通过采用MVC模式之后的开发可以让软件系统的结构非常完整清晰,通过视图层和业务层的分离大大降低了系统内部的耦合性,提高代码重用率的同时减少了错误重复出现的问题。这为系统业务的扩展和系统升级维护提供了可行性和便利性;视图层和业务逻辑层的分离让程序开发员
40、可以专注于功能的优化,而界面程序员则可集中精力于界面的美化,使得开发时间大大缩短。通过上述分析,校园微博系统也非常适合采用MVC模式,按照该模式系统总体结构如图2.7所示。图2.7 系统总体结构图2、系统总体类的设计通过总体结构设计采用的MVC模式来完成系统的开发,以及系统子系统的划分和需求部分各功能模块的划分,微博系统中类分为五类,工具类,DAO类,Service类,action类,POJO模型类。工具类包括时间工具类、分页工具类等。DAO类为数据访问层的类,所有DAO层的类的类名均DAOImpl结束(如用户DAO类:UserDAOImpl.java),其主要负责和数据库交互,这些类中的方法
41、只针对数据库的操作,无其他如验证操作。Service类属于服务层,这些类组合了DAO类,其除具备相应DAO类的功能外,还具有其他额外的功能,如用户服务类里面(UserServiceImpl.java)中的用户登录验证方法。Action类主要负责业务流程的转向,如登录成功转向首页,如果登录失败返回登录界面等。其中Action层、Service层、DAO层和POJO的总体类图设计如图2.8所示。图2.8 总体类图以上总体类图是所有模块都符合的抽象类图。图中的Xxx表示POJO中的一个模型类。IXxxDAO表示访问数据库中Xxx表的数据访问接口,XxxDAOImpl是表示其实现类,Service也一
42、样。其中的方法针对不同的模型类有不同的方法,但最基本的对数据库的增删改查方法都是有的。如IUserDAO.java中有getUserByNickname方法,而IWeiboDAO.java类中有getWeiboByWeiboId方法。而针对Action中,一个模型类可能对应多个Action,如用户登录action,UserLoginAction这个类,为了功能更加的清楚而单独作为一个action,主要负责用户登录流程控制。而至于用户登录验证是在UserServiceImpl里面实现的。UserLoginAction中只需要组合IUserService类的对象就可以。3、系统公共类的设计在软件开
43、发中,为了提高代码的重用率,可以采用抽象继承面向接口编程来实现,同时也可以将一些公共的代码提取出来作为单独的类来使用,如果时间转换类,可能在用户类中需要日期类型,但是在微博里面需要时间的长整型格式。为了统一同时也为了减少系统开发中不必要的bug,设计日期格式转换工具类DataTool.java。在数据库中对日期的存储皆采用长整型的形式存储。在页面端需要什么格式则调用日期工具类DataTool.java在后台相应的Service中为其准备好。在校园微博首页微博列表里,需要将时间转换为几分钟前、几小时前、几天前和日期几种类,而数据库中存储的是以毫秒形式的长整型数据,DataTool类中的getMi
44、llsecond()方法为获取当前时间以毫秒形式返回,而getTime()方法则是计算给定时间和现在时间之差。时间工具类图如图2.9所示。图2.9 时间工具类图微博系统中首页微博数量太多,不可能全都显示出来,而且在个人主页也需要分页显示数据,所以就必须要做一个分页功能。为了重复利用分页,这里创建了一个分页类PagerModel模型类和AbstractPagerManager类,PagerModel类属于模型类,其中有三个属性:int类型的表示显示第几页的offset、int类型的表示总的数据条数的total、List类型的用于存放当前页需要显示的数据的list。AbstractPagerMan
45、ager类主要是封装了数据查询的功能,在查询数据时采用预编译查询,加快了查询速度。分页组件类图设计如图2.10所示。为保证用户使用校园微博系统时的帐号安全,必须对其登录密码进行加密,为此设计了MD5加密工具类。MD5工具类中只提供了一个方法toMD5(String password),该方法旨在将用户输入的密码进行加密,主要是在用户注册帐号时将密码加密后保存到数据库中和登录验证时将用户输入的密码经MD5加密后与数据库中密码做对比时使用。图2.10 分页组件类图2.2.2 运行环境设计软件系统的运行环境包括硬件平台、软件平台和网络平台等。校园微博系统是以互联网作为其服务范围的软件系统,因此运行环
46、境的设计不仅包括服务器端的运行环境,还包括客户端的运行环境。服务器端的运行环境采用装有Windows7操作系统和装有JDK1.6的Java运行环境的PC机,以Tomcat6.0作为网络服务器,采用MySQL5.0作为数据库,采用大容量存储磁盘作为专用存储设备。客户端运行环境要求客户端PC机安装IE8及以上版本的浏览器,支持网络连接。2.2.3 主要功能简要设计1、用户的注册与登录功能在校大学生可以使用该功能进行注册,在注册页面,用户需要输入注册邮箱,注册昵称和密码等注册必填信息,系统通过AJAX异步查询数据库判断用户输入的注册邮箱和用户昵称是否已被注册,如果已经注册过了,则给出用户提示(该邮箱已被注册),并以红色高亮显示,且将鼠标定位到输入框要求重新输入,若不存在,且其他必填项已填完,则注册成功并跳转到用户登录页面。在注册页面,所有必填项均要进行JS判断,用户昵称不能为空,长度必须在1到20字符之间,登录密码必须在6到20之间,且确认密码必须和登录密码一致,如果不一致给出提示。邮箱格式采用正则表达式验证。如果邮箱格式不正确也必须给出红色醒目提示“邮箱格式不正确”15。在选择大学时,采用二级联动菜单。二级联动菜单中数据采用JSON数据形式