




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STRUTS2技术的跑步社区后台系统的设计与实现摘要STRUTS是目前广受欢迎的基于MVC的JAVAWEB框架,HIBERNATE则是JAVAWEB开发中一个功能强大的持久化中间件。STRUTS与HIBERNATE相结合在B/S系统开发中有着广泛的应用。本网络跑步社区系统的开发,正是使用了它们。本系统采用的是模块化设计,并采用接口化编程思想降低模块之间的耦合度。该系统主要采用STRUTS框架,涉及到前台页面的展示,后台与数据库的交互,中间层业务逻辑的处理等。我所负责的是后台方面的设计与实现,用到了MYECLIPSE开发工具,HIBERNATE持久化中间件,以及SERVLET等技术。该系统具备数据查询、修改、增加、删除等功能,实现了会员基本信息管理,短信息管理,好友管理,管理员后台管理等模块的全部功能。系统具有界面直观友好、操作简单的特点,并且能够承受多用户同时上线,满足了用户在网络交流方面的需求。关键词MVC模式;STRUTS框架;HIBERNATE;跑步社区THEBACKGROUNDSYSTEMOFRUNNINGCOMMUNITYWEBSITEBASEDONTHESTRUTS2FRAMEWORKABSTRACTSTRUTSISAWELLLIKEDFRAMEWHICHONTHEBASICOFMVCATTHEPRESENTTIME,ANDHIBERNATEISAPOWERFULPERSISTENTMIDDLEWAREINTHEDEVELOPMENTOFJAVAWEBSTRUTSJOINSHIBERNATEHAVEWIDELYAPPLIEDINTHEDEVELOPMENTOFB/SSYSTEMTHERUNNINGCOMMUNITYSYSTEMJUSTUSEDTHESETECHNOLOGIESTHESYSTEMADOPTSTHEMODULARITYDESIGNANDTHEMINDOFINTERFACEPROGRAMMINGTOREDUCETHECOUPLINGDEGREEOFEACHMODELTHESYSTEMMAINLYUSESTHESTRUTSFRAMEINTHEDEVELOPMENTITREFERENCESTOTHESHOWOFTHEFRONTPAGE,INTERACTIONWITHTHEDATABASEINTHEBACKGROUND,ANDDEALINGWITHTHEBUSINESSLOGICLAYERETCIAMRESPONSIBLEFORTHEDESIGNANDIMPLEMENTATIONOFBACKGROUNDMANAGEMENTIUSEMYECLIPSEASTHEDEVELOPMENTTOOL,HIBERNATEPERSISTENTMIDDLEWAREANDSERVLETTECHNOLOGYDURINGMYDEVELOPMENTPROCESSTHESYSTEMHAVETHEFUNCTIONOFQUERYINGDATA,MODIFYINGDATA,ADDINGDATA,ANDDELETEINGDATAITREALIZEALLTHEFUNCTIONSOFFOURMODULESINCLUDINGMEMBERINFORMATIONMANAGEMENT,MESSAGEMANAGEMENT,FRIENDSMANAGEMENTANDMANAGERBACKGROUNDMANAGEMENTTHESYSTEMHASFRIENDLYINTERFACEANDSIMPLEOPERATION,WHICHCANBEARMANYUSERSAREONLINEATTHESAMETIMEANDSATISFYUSERSNEEDONTHEMATTEROFCOMMUNICATINGONLINEKEYWORDSMVCSTRUTSFRAMEWORKHIBERNATERUNNINGCOMMUNITY目录摘要IABSTRACTII1绪论111开发背景112开发意义113开发环境1131开发语言1132开发工具1133开发框架2134STRUTS2和HIBERNATE组合的优点22系统需求分析421可行性研究分析4211理论可行性4212技术可行性分析4213经济可行性分析422功能需求分析4221用户自管理用例4222短信管理用例5223我的好友用例5224后台管理用例63总体设计731系统模块设计7311总体设计框架7312用户基本信息管理模块设计框架7313短管理模块设计框架8314联系人管理模块设计框架9315后台管理模块设计框架932数据库结构设计10321ER图10322各实体间的对应关系图1133数据库具体表结构的设计13331存放会员信息13332存放会员的个性化的信息14333存放会员级别的评判规则14334存放会员获取积分的流水记录15335存放积分动作15336存放短信信息15337存放好友名单16338黑名单16339管理员信息164系统详细设计1741建立数据库1742建立连接1743配置模块17431配置WEBXML17432配置STRUTSXML18433配置SERVICE和DAO架构2044日志设计20441配置日志模块21442日志信息2145程序设计22451用户登陆功能设计22452修改个人空间功能设计23453发送信息功能设计25454收件箱的功能设计26455查询好友的功能设计2846对本社区的说明29461查询数据库的说明29462使用本社区的说明315系统测试与维护3251软件测试32511测试简介32512具体测试32513测试结论3652运行和维护36结论37参考文献38致谢40外文原文41中文翻译481绪论11开发背景21世纪是科技信息高速发展的时代,计算机网络作为这一时代重要的生产工具,给各个国家带来了巨大的发展机遇,已经被应用于许多领域,尤其是在管理领域,它可以简化大量繁琐的工作,提高工作效率,更重要的是能提高保密文件的安全性。为了在以用户为中心的市场竞争中获胜,各单位须对不断变化的市场做出快速反应,把单位各关键部门结合成一体,形成一个坚强的信息共享共同体。国内一些中小型企业为了提高自身的工作效率,适应市场的需要,都实现了办公自动化。12开发意义随着计算机的发展和普及,它已经成为人们获取信息的一种方便、快捷、有效的手段。现在我国很多管理机构信息的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,必然被以计算机为基础的信息管理所取代。跑步社区站点系统是专门为运动爱好者提供的一个交流的平台,使跑步爱好者不需要进行面对面的交流,只需在网上查看运动爱好者的个人空间,从而了解他人的跑步爱好习惯,如果与自己的爱好相同或相似,就可以加对方为好友,并且能够发送短信息给自己的跑步好友。而且运动爱好者之间可以在运动论坛中交流彼此对运动的看法道出运动爱好者之间的心声。除此之外本系统管理者还可以通过后台管理对注册的会员信息和积分进行管理。13开发环境131开发语言对HIBERNATE语言简介及其优点HIBERNATE是一个数据持久层框架,是一种实现对象和关系之间映射(O/RMAPPING)的工具,它对JDBC进行了轻量级的对象封装,使程序员可以使用对象编程思想来操作数据库。它不仅提供了从JAVA类到数据表的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来操作数据库,使用HIBERNATE能大大的提高实现的效率。HIBERNATE框架用配置文件的形式来定义JAVA对象和数据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为JAVA对象之间的继承及包含等关系。通过使用HQL语句将复杂的关系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在HIBERNATE中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉HIBERNATE保存即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化。132开发工具运用MYECLIPSE开发工具,该开发工具是ECLIPSE的一个插件。ECLIPSE本身就是一个功能非常强大的开发工具,而MYECLIPSE在功能上与TOMCAT进行了集成,并且能做到自动打包,并将包自动部署到服务器上。这从很大程度上提高了开发的效率,节约了开发的时间。MYECLIPSE提供了对多重平台特性的支持。开发者可以使用他们感觉最舒适、最熟悉的平台,例如WINDOWS、LINUX等。ECLIPSE对每个平台都有其单独的图形工具包,这使得应用程序具有接近本地操作系统的外观和更好的性能。133开发框架用STRUTS2实现MVC架构。MVC(MODELVIEWCONTROLLER)由TRYGVEREENSKAUG提出,首先被应用在SMALLTALK80环境中,是许多交互和界面系统的构成基础。根据界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器三部分。模型(MODEL)是软件所处理问题逻辑在独立外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,独立于具体的界面表达和I/O操作。视图(VIEW)把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。控制器(CONTROLLER)是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图对应一个控制器。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化传播机制。STRUTS2是STRUTS社区和WEBWORK社区的共同成果,我们甚至可以说,STRUTS2是WEBWORK的升级版,他采用的正是WEBWORK的核心,所以,STRUTS2并不是一个不成熟的产品,相反,构建在WEBWORK基础之上的STRUTS2是一个运行稳定、性能优异、设计成熟的WEB框架。134STRUTS2和HIBERNATE组合的优点典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的HIBERNATE,为了将控制层与业务逻辑层分离,又细分为以下几种。WEB层,就是MVC模式里面的“C”(CONTROLLER),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用STRUTS。SERVICE层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI组件很好的耦合。在传统的MODEL1的程序结构中,只要有一点小的需求发生改变,将意味着放弃整个页面。或者改写。虽然前期的开发速度快,除非可以保证以后永远不会改变应用的结构,否则不要采用MODEL1的结构。采用HIBERNATE作为持久层技术的最大的好处在于可以完全以面向对象的方式进行系统分析、系统设计。归纳起来,网络跑步爱好者社区系统的开发与运行环境如下采用B/S架构;服务器操作系统WINDOWSSERVER;数据库服务器ORACLE10G;WEB服务器TOMCAT;开发工具MYECLIPSE软件开发技术前台界面JSP,HTML,JAVASCRIPT,CSS后台系统HIBERNATE,STRUTS,SERVLET2系统需求分析21可行性研究分析211理论可行性该系统是网上的一个虚拟平台,能够模拟现实中的交流过程,并且展示个人的风采,满足广大运动爱好者的需求。同时也为商家展示自己的产品,获取用户需求提供了方便。不管对那个用户群体来说都起了很好的桥梁作用,一旦推出必将受到商家与个人的追捧。212技术可行性分析运用MYECLIPSE开发工具,该开发工具是ECLIPSE的一个插件。ECLIPSE本身就是一个功能非常强大的开发工具,而MYECLIPSE在功能上与TOMCAT进行了集成,并且能做到自动打包,并将包自动部署到服务器上。这从很大程度上提高了开发的效率,节约了开发的时间。213经济可行性分析网上运动社区的创建,降低了商家成本,扩大了客户资源,打破了地域的界限,方便了人们的需要。所以,不论是商家还是客户都是比较喜欢这种方式的。可以判定运动社区还是比较有前景的。可行性分析的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。通过需求阶段对该系统的可行性进行了彻底分析,随着计算机硬件的发展,各项功能日趋完善,使用MYECLIPSE、ORACLE10G开发此系统无论从技术上、经济上、硬件上和操作上都是可行的。22功能需求分析结合“基于STRUTS2的跑步社区”的用户信息,切实了解跑步运动爱好者们对整个系统期望具有的功能,分析所有收集的信息特点,决定系统具有会员信息管理,短信管理,好友管理,管理员后台管理等功能模块。221用户自管理用例1注册新用户描述用户在新用户信息页面上输入详细信息,提交到服务器,结果是将信息保存到数据库。参与者用户。主方式从浏览器上选择注册新用户链接进入到注册界面。异常方式用户提交新用户信息后,服务器发现用户登录名已经存在用户提交的信息不完整。2认证用户描述用户输入登录名和密码,提交到服务器,其结果是服务器验证输入信息,并将登录信息存放到会话状态中。如果用户选择了自动登陆,将用户信息保存到COOKIE中,实现自动登陆功能。参与者用户。前提用户已经注册过。主方式在地址栏中输入登陆页面地址,进入到登录界面。其他方式用户选择了自动登陆功能,进入主页面自动登陆。异常方式登录名或密码不对,用户已经登陆过了。3导航栏描述用户在登陆成功后,在主页上方可看到我的导航栏面板,其中包涵链接内容音乐跑不停、跑步装备库、专业跑步指南、跑步论坛。参与者用户。主方式在地址栏中输入登陆页面地址,进入到登录界面,点击各个链接跳转到相应的界面内容。4我的地盘描述用户在登陆成功后,在主页下方可看到我的地盘这一面板,其中包涵链接内容我的信息、我的信箱、我的好友、个性空间。前提用户已经登录。主方式从主页中下方显示的我的地盘栏目选择相应的项目链接。222短信管理用例1新建短信描述用户在我的信箱页面上点击写纸条就可以跳转到新建短信页面,填写好相应的信息,提交给服务器,其结果是信息保存到数据库,接收者能够看到已收短信,发送者能看到已发短信。参与者用户。前提用户已经登录,接收者存在。主方式从我的地盘我的信箱中点击写纸条链接。2收(发)件箱描述用户在短信管理页面上点击收(发)件箱就可以显示自己的收(发)件箱列表。参与者用户。前提用户已经登录。主方式我的信箱中点击收(发)件箱链接。3个性空间描述用户在个性空间页面可以查看自己的个性空间面板,如果该用户没有创建个性空间,提示用户创建个性空间。参与者用户。前提用户已经登录。主方式从我的地盘面板点击个性空间链接。223我的好友用例1我的好友描述用户在联系人管理页面上点击好友名单就可以查看到所有好友的列表,还可以查看好友详细信息,也可以删除好友或者添加到黑名单。参与者用户。前提用户已经登录。主方式从我的地盘点我的好友链接好友名单。2黑名单描述用户在联系人管理页面上点击黑名单就可以查看到所有黑名单的列表,还可以从好友名单中添加到黑名单,也可以将好友从黑名单移除。参与者用户。前提用户已经登录。主方式从我的地盘点我的好友链接黑名单3好友速配描述用户在联系人管理页面上点击好友速配进入到速配页面,可以选择随机匹配或者按照条件匹配。参与者用户。前提用户已经登录。主方式从我的地盘点我的好友链接好友速配。224后台管理用例1管理员登录描述在系统登录首页可选择进入后台,进行管理员登录,完成管理员的相应功能。参与者管理员。主方式在LOGIN界面点击进入后台链接。2会员列表描述用户在后台管理页面上点击还原列表进入到会员列表显示界面,可以查看所有已经注册会员的信息,以及删除会员。参与者用户。前提管理员经登录。主方式从后台管理系统点击会员列表链接。3积分动作描述用户在联系人管理页面上点击好友速配进入到速配页面,可以选择随机匹配或者按照条件匹配。参与者用户。前提管理员已经登录。主方式从后台管理系统点击积分动作链接。4管理员密码修改描述用户在联系人管理页面上点击好友速配进入到速配页面,可以选择随机匹配或者按照条件匹配。参与者管理员。前提管理员已经登录。主方式从后台管理系统点击密码修改链接。3总体设计31系统模块设计311总体设计框架在前面的系统规划与需求分析的基础上,对该系统进行了总体设计,不仅能满足用户修改个人的各种基本信息,能够创建和修改自己的个性空间,使更多的跑步爱好者了解自己,能够随机查找一个好友或根据条件查找到多个好友,而且还能够给自己的好友发送短信,交流各自的跑步心得。总体功能模块如图31所示图31功能模块结构图312用户基本信息管理模块设计框架首先要实现它的基本功能,如用户的注册,登陆,密码的找回,信息的修改等最基本的功能,而这些是需要用户来完成的,也就是说可以定义在用户管理的模块中。为了更好的展示用户的的个人特征,也就是我们平时说的个性化,我们可以加上一个个人空间的管理。于是我们可以定义出用户管理信息的用例图,如图32所示管理用户信息注册信息用户检测自动登录基本信息管理找回丢失密码个性空间管理用户登录查看基本信息修改基本信息创建个性空间修改个性空间图32用户基本信息管理313短管理模块设计框架为了方便用户间的交流系统提供一个收发信息的功能,它包括短信的创建,对已收信息和已发信息的删除和查看等功能。其用例图如图33所示短信管理新建短信管理已发信息管理已收信息查看已发信息删除已发信息查看已收信息回复已收信息删除已收信息图33短信息管理314联系人管理模块设计框架联系人管理模块主要要实现对好友的管理和黑名单的管理可用如图34的用例图来表示联系人管理好友管理黑名单管理好友速配查看黑名单黑名单加好友随机速配按条件匹配增加好友查看好友删除好友好友移至黑名单删除黑名单图34联系人管理315后台管理模块设计框架管理员为了更好的维护这个系统设计了后台管理模块主要实现对会员的管理、对积分动作的管理和对管理员的管理。其用例图可用如图35表示后台管理会员管理积分动作管理管理员管理查看积分动作修改密码查看好友查看会员信息好友移至黑名单修改积分动作图35后台管理根据系统功能模块结构图和管理流程,以及网络运动爱好者社区系统的需要总结出如下的数据字典。1系统用户数据包含的数据项有系统用户名,密码,性别,年龄,邮箱,省份,地址,密码提示问题,密码提示答案等。2用户个人空间数据包含的数据项有跑步观点,跑步时间,跑步地点,跑步习惯,电话,上传的图片等。3短信息数据包含的数据项有发送者,接收者,发送时间,标题,内容等。4好友名单数据包含的数据项有自己的名字,好友的名字。5黑名单数据包含的数据项有自己的名字,黑名单的名字。6管理员数据包括管理员的名字,管理员的密码,以及对管理员的描述。7省份数据包括省份的代码,省份的名称,省份的ID值8积分等级数据最小积分,最大积分,等级名称,对应头像9积分动作数据积分动作名称,可获积分,动作描述10积分记录数据用户名称,获得时间等。32数据库结构设计321ER图在需求分析之后,数据库设计的第一步就是对系统的概念结构进行设计,设计的目标是产生反映整个系统信息需求的整体数据库的概念结构,描述概念结构的工具就是ER图。各实体详细信息的概念描述是第一步工作,各实体属性关系图如图36至39所示用户性别电子邮箱购物账户个人空间等级编号所在省份地址推荐人积分电话密码提示答案用户名密码年龄注销状态在线状态上次登录时间密码提示问题注册时间图36用户属性关系图用户主题内容编号发送人接收人发送时间图37短信属性关系图得分纪录得分描述编号得分时间得分图38得分纪录属性关系图个人空间运动习惯编号运动站点用户形象联系方式运动主张运动时间所属用户喜欢的明星图39个人空间属性关系图322各实体间的对应关系图在确认了实体具体信息后,下一步是确认各实体之间的对应关系图,各实体之间的关系图如图310所示图310各实体间关系图各数据表之间的对应关系,特别是主外键对应关系对数据库的持久化操作有直接影响,涉及到数据表之间的级联操作,虽然在数据表中已经对各表之间的主外键关系进行了描述,但由于表较多,不便于总体了解他们之间的对应关系,如图311对所有表之间的主外键关系进行相应描述MEMBERINFOPK,FK1,FK5IDFK2,FK3,FK4,FK6NICKNAMEPASSWORDGENDERAGEEMAILPROVINCECITYADRESSPHONEPASSWORDQUESTIONPASSOWRDANSWERRECOMMENDERPOINTREGISTEDATELATESTDATESTATUSISONLINEGRADEIDMEMBERSPACEPKIDOPTIONRUNTIMERUNPLACERUNSTARRUNHABITCELLPHONEICONMEMBERIDMESSAGERECORDPKIDSENDERRECEIVERSENDATETITLECONTENTSENDERSTATUSRECEIVERSATUSSTATUSPOINTRECORDPKIDNICKNAMERECIVEDATEPOINTACTIONIDFRIDENRECORDPKIDSLEFNAMEFRIDENNAMEBLACKRECORDPKIDSELFNAMEBLACKNAMEPOINTACTIONPK,FK1IDACTIONNAMEPOINTDESCRIPTIONGRADERECORDPKIDMINPOINTMAXPOINTGRADENAMEICONPATH1对11对多1对多1对11对11对多1对多图311表之间的主外键关系关系图33数据库具体表结构的设计在确定了各实体详细信息后,下一步就是各实体在数据库中的具体实现,依据ER图中实体的具体信息,共设计了9张数据表,各表的字段信息,约束信息和描述如下331存放会员信息表31MEMBERINFO字段名字段类型约束或索引描述IDNUMBERSEQUENCEPK记录流水号NICKNAMEVARCHAR220NOTNULL用户昵称PASSWORDVARCHAR250NOTNULLMD5加密口令,页面上限制为16字节GENDERVARCHAR21NOTNULL性别表31(续)字段名字段类型约束或索引描述AGENUMBERNOTNULL年龄EMAILVARCHAR2100NOTNULL电子邮件PASSWORDQUESTIONVARCHAR2200密码提示问题PASSWORDANSWERVARCHAR2200密码提示问题答案PROVINCECITYVARCHAR220所在省市ADDRESSVARCHAR2200地址PHONEVARCHAR250联系电话POINTNUMBERDEFAULT0当前积分RECOMMENDERVARCHAR220推荐人REGISTERDATEDATE注册时间LATESTDATEDATE上次上线时间STATUSNUMBERDEFAULT00正常1注销ISONLINENUMBERDEFAULT00下线1在线GRADEIDNUMBER等级ID外键332存放会员的个性化的信息表32MEMBERSPACE字段名字段类型约束或索引描述IDNUMBERSEQUENCEPK记录流水号SPORTPLACEVARCHAR220运动地点SPORTTIMEVARCHAR220运动时间SPROTHABITVARCHAR220运动习惯SPROTSTARVARCHAR220喜欢的运动明星CELLPHONEVARCHAR220正在使用的手机OPINIONVARCHAR2200个人对运动的看法ICONVARCHAR250个人空间头像图片存在的路径MEMBERIDNUMBER会员IDREFERENCEMEMBERINFO333存放会员级别的评判规则表33GRADERECORD字段名字段类型约束或索引描述IDNUMBERPK记录流水号表33(续)字段名字段类型约束或索引描述GRADENAMEVARCHAR220NOTNULL级别名称ICONPATHVARCHAR250NOTNULL每个级别分别对应不同的头像MINPOINTNUMBERNOTNULL积分的上限MAXPOINTNUMBERNOTNULL积分的下限334存放会员获取积分的流水记录表34POINTRECORD字段名字段类型约束或索引描述IDNUMBERSEQUENCEPK记录流水号NICKNAMEVARCHAR220NOTNULL获取积分的会员RECEIVEDATEDATENOTNULL获得积分的日期POINTACTIONIDNUMBERNOTNULL所获积分335存放积分动作表35POINTACTION字段名字段类型约束或索引描述IDNUMBERSEQUENCEPKACTIONNAMEVARCHAR220标示积分操作名称,比如”REGISTER”表示会员注册。POINTNUMBERNOTNULL可获积分DESCRIPTIONVARCHAR200描述336存放短信信息表36MESSAGERECORD字段名字段类型约束或索引描述IDNUMBERSEQUENCEPK记录流水号SENDERVARCHAR220NOTNULL发件人登录名RECEIVERVARCHAR220NOTNULL收件人登录名SENDDATEDATEDEFAULT当前时间,NOTNULL发送日期TITLEVARCHAR2NOTNULL短信标题表36(续)字段名字段类型约束或索引描述STATUSNUMBERDEFAULT00未阅读1已阅读SENDERSTATUSNUMBERDEFAULT00表示未删除1表示已删除(发送者)RECEIVERSTATUSNUMBERDEFAULT00表示未删除1表示已删除(接收者)CONTENTVARCHAR2NOTNULL短信内容337存放好友名单表37FRIENDLIST字段名字段类型约束或索引描述IDNUMBERSEQUENCEPK记录流水号SELFNAMEVARCHAR220NOTNULL会员登录名FRIENDNAMEVARCHAR220NOTNULL好友登录名338黑名单表38BLACKLIST字段名字段类型约束或索引描述IDNUMBERSEQUENCEPK记录流水号SELFNAMEVARCHAR220NOTNULL会员登录名BLACKNAMEVARCHAR220NOTNULL被加入黑名单者登录名339管理员信息表39MANAGERINFO字段名字段类型约束或索引描述IDNUMBERSEQUENCEPK记录流水号NICKNAMEVARCHAR220NOTNULL管理员登录名PASSWORDVARCHAR220NOTNULL管理员密码4系统详细设计我负责的是后台的设计与实现,主要用到STRUTS,HIBERNATE,ORACLE等技术,并完成于前台界面的衔接。41建立数据库本系统数据库使用ORACLE,数据库名为“EX系统默认的数据库”,下面简单的介绍以下数据库建立的过程。1手工创建数据库RUN,密码设置为RUN。2手工创建RUNSQL文件,用语创建数据库表。3创建数据库数据文件,执行脚本RUNSQL。42建立连接本系统使用HIBERNATE连接ORACLE数据库,其实其底层使用JDBC连接的ORACLE数据库,连接的配置界面如图41图41连接ORACLE数据库的配置界面43配置模块目的为了降低各个部分代码的耦合性提高代码的内聚从而提高代码的健状性。以及便于代码的后继更新升级常常把一些有可能变动的需要从系统外围传入的数据通过配置文件(通常用XML文件的形式传入)。431配置WEBXMLSTRUTS2ORGAPACHESTRUTS2DISPATCHERNGFILTERSTRUTSPREPAREANDEXECUTEFILTERSTRUTS2/AUTHIMGCOMBRIUPRUNWEBSERVLETAUTHIMGAUTHIMG/AUTHIMGHTML/LOGINJSP432配置STRUTSXML在此展示部分STRUTS代码/HTML/LOGINJSP/HTML/MEMBERLOGINACTIONAUTOLOGIN/HTML/LOGINJSP/HTML/MEMBERAFTERLOGINACTION/HTML/LOGINJSP/WEBINF/MEMBER/ACTIVITYJSP/HTML/LOGINJSP/HTML/LOGINJSP/HTML/REGISTERJSP/HTML/PASSWD_MISSINGJSP/HTML/PASSWD_MISSINGJSP/HTML/LOGINJSP/HTML/EXCEPTIONJSP/HTML/MEMBERAFTERLOGINACTION/HTML/EXCEPTIONJSP433配置SERVICE和DAO架构SERVICE层和DAO层结构如图42所示图42SERVICE层和DAO层分布44日志设计功能通过把系统运行的状态信息写入日志,管理员可以清楚地看到系统当前运行的状态以及系统出现异常的原因以。这样便于管理员对系统的维护。441配置日志模块部分配置代码LOG4JROOTLOGGERDEBUG,A1,RLOG4JROOTLOGGERINFO,A1,RLOG4JAPPENDERA1ORGAPACHELOG4JCONSOLEAPPENDERLOG4JAPPENDERA1LAYOUTORGAPACHELOG4JPATTERNLAYOUTLOG4JAPPENDERA1LAYOUTCONVERSIONPATTERNDYYYYMMDDHHMMSS,SSSTCPMNLOG4JAPPENDERRORGAPACHELOG4JROLLINGFILEAPPENDERLOG4JAPPENDERRFILEBBSCS7LOGTXTLOG4JAPPENDERRMAXFILESIZE500KBLOG4JAPPENDERRMAXBACKUPINDEX10LOG4JAPPENDERRLAYOUTORGAPACHELOG4JPATTERNLAYOUTLOG4JAPPENDERRLAYOUTCONVERSIONPATTERNDYYYYMMDDHHMMSS,SSSTCPMNLOG4JLOGGERORGSPRINGFRAMEWORKTRANSACTIONINTERCEPTORDEBUG442日志信息如果在数据库连接异常的时候就会输出如下的日志信息用于可以很容易通过这个日志的信息知道系统的当前运行情况来维护系统,如图43所示图43日志信息45程序设计451用户登陆功能设计功能该模块主要对用户的登陆名和密码进行验证,如果用户名和密码都正确,则进入用户的主界面;如果是新用户,则先进行注册,然后进入登陆界面;如果是已经注册的用户忘记了密码,则进入找会密码的界面,根据密码提示问题和密码提示答案找回密码,最后进入登陆界面重新进行登陆。用户登录界面如图44所示图44用户登录界面在登陆窗体代码中实现身份验证功能,即需要检验用户登陆的用户名和密码是否正确。如果不正确,则提示“该用户不存在,或密码不正确,请从新输入”;如果是新用户,那么进行新用户注册,如果用户忘记密码,则可以使用下面的找回密码按扭找会密码,如果正确,则进入网络跑步爱好者社区系统。用户登陆窗体部分关键代码如下HTTPSESSIONSESSIONSERVLETACTIONCONTEXTGETREQUESTGETSESSIONTRY/对验证码的检验STRINGCODESTRINGSESSIONGETATTRIBUTE“AUTHCODE“IFAUTHCODENULL|AUTHCODEEQUALSCODE/验证码校验不通过,抛出异常SYSTEMOUTPRINTLN“验证码输入有误,请正确输入“SETTIP“验证码输入有误,请正确输入“RETURNERRORMEMBERINFOMEMBERINFOMEMBERINFOSESSIONGETATTRIBUTE“USERLOGIN“IFMEMBERINFONULL/表明用户已经登录,不需要进行数据的交互,减少服务器负担LOGINFO“INLOGINACTIONEXECUTE用户已经登录,又重新登录“RETURNSUCCESSMEMBERINFOMEMBERSERVICELOGINUSERNAME,PASSWDSYSTEMOUTPRINTLN“MEMBERSERVICE“MEMBERSERVICESESSIONSETATTRIBUTE“USERLOGIN“,MEMBERINFO/检查AUTOLOGIN,是否是自动登录,自动登录则编写COOKIEIF“1“EQUALSAUTOLOGIN/表示自动登录LOGINFO“INLOGINACTIONEXECUTE编写COOKIE“COOKIEUSERNAMECOOKIENEWCOOKIE“LOGINNAME“,MEMBERINFOGETNICKNAMEUSERNAMECOOKIESETMAXAGE60602414/默认保存两个星期COOKIEPASSWORDCOOKIENEWCOOKIE“PASSWORD“,MEMBERINFOGETPASSWORDPASSWORDCOOKIESETMAXAGE60602414ACTIONCONTEXTGETCONTEXTGET“RESPONSE“SERVLETACTIONCONTEXTGETRESPONSEADDCOOKIEUSERNAMECOOKIESERVLETACTIONCONTEXTGETRESPONSEADDCOOKIEPASSWORDCOOKIERETURNSUCCESS用户登录成功后,界面如图45图45运动社区首页452修改个人空间功能设计功能用户在创建自己的个性空间以后对空间的信息进行更新。用户可以修改自己的个性空间照片、跑步时间、习惯等,如图46、47所示图46创建个人空间界面图47创建完成个人空间的界面创建个性空间的主要代码如下PUBLICSTRINGEXECUTETHROWSEXCEPTIONLOGINFO“INCREATESPACEACTIONEXECUTEBEGIN“SYSTEMOUTPRINTLN“FILE“GETICONGETABSOLUTEPATHSYSTEMOUTPRINTLNMEMBERSPACEGETOPINION/将上次的文件写入服务器的磁盘中IFGETICONNULLFILEOUTPUTSTREAMFOSNEWFILEOUTPUTSTREAMGETSAVEPATH“GETICONFILENAMEFILEINPUTSTREAMFISNEWFILEINPUTSTREAMGETICONBYTEBUFFERNEWBYTE1024INTLEN0WHILELENFISREADBUFFER0FOSWRITEBUFFER,0,LENMEMBERSPACESETICONICONFILENAME/存储头像路径/此处最好使用一个拦截器来完成用户的登录权限控制,以为如果没有权限而执行ACTION,会出现空指针异常MAPSESSIONMAPACTIONCONTEXTGETCONTEXTGET“SESSION“MEMBERINFOMEMBERINFOMEMBERINFOSESSIONGET“USERLOGIN“/表示该用户没有注册空间,可以调用SERVICE方法进行注册MEMBERSPACESETMEMBERINFOMEMBERINFO/关联对应的MEMBERINFO对象MEMBERSERVICECREATEMEMBERSPACEMEMBERSPACERETURNSUCCESS/注册成功,跳转到注册成功的个人空间SPACEHTML中去,其余的为注册失败,跳转的到原页面继续进行注册453发送信息功能设计功能用户可以给自己的好友发送短信,只需要在以下的界面中填写收件人的姓名,主题,消息内容,并提交后,就可以发送给自己的好友,并在自己的发件箱中查看给好友的邮件。发送信息的界面如图48所示图48发送信息的界面发送信息的主要代码如下PUBLICCLASSSENDMESSAGEACTIONEXTENDSACTIONSUPPORTPRIVATESTATICLOGGERLOGLOGGERGETROOTLOGGERPRIVATEIMESSENGERSERVICEMESSENGERSERVICEIMESSENGERSERVICEBEANFACTORYGETBEANBEANFACTORYMESSENGERSERVICEPRIVATESTRINGTIPPRIVATEMESSAGERECORDMESSAGERECORDPUBLICSTRINGEXECUTETHROWSEXCEPTIONMAPSESSIONMAPACTIONCONTEXTGETCONTEXTGET“SESSION“MEMBERINFOMEMBERINFOMEMBERINFOSESSIONGET“USERLOGIN“MESSAGERECORDSETSENDERMEMBERINFOGETNICKNAMEMESSENGERSERVICESAVEMESSAGEMESSAGERECORDSETTIP“您的邮件已成功发送“RETURNSUCCESSLOGINFO“INSENDMESSAGEACTIONEXECUTECOMPLETE“454收件箱的功能设计功能在收件箱中可以查看好友发送过来的短信,如果是已经查看的短信,那么该短信的状态变为已读短信;没有查看的短信的状态是未读短信;并可以删除收件箱中的短信。收件箱的界面如图49所示图49收件箱的界面根据客户端传递过来的邮件ID,查询邮件信息,跳转进行显示。查看收件箱信息的主要代码如下PUBLICCLASSVIEWMESSAGEACTIONEXTENDSACTIONSUPPORTPRIVATESTATICLOGGERLOGLOGGERGETROOTLOGGERPRIVATEIMESSENGERSERVICEMESSENGERSERVICEIMESSENGERSERVICEBEANFACTORYGETBEANBEANFACTORYMESSENGERSERVICEPRIVATESTRINGTIPPRIVATELONGID/接收需要阅览的邮件的IDPUBLICSTRINGEXECUTETHROWSEXCEPTION/权限控制有拦截器完成LOGINFO“INVIEWMESSAGEACTIONEXECUTEBEGIN“SYSTEMOUTPRINTLNIDTRYMESSAGERECORDMESSAGERECORDMESSENGERSERVICECHECKMESSAGEID/根据邮件ID查找邮件MAPREQUESTMAPACTIONCONTEXTGETCONTEXTGET“REQUEST“REQUESTPUT“MESSAGERECORD“,MESSAGERECORDRETURNSUCCESSCATCHEXCEPTIONESETTIPEGETMESSAGEEPRINTSTACKTRACELOGINFO“INVIEWMESSAGEACTIONEXECUTECOMPLETE“RETURNERROR/跳转到异常页面提示455查询好友的功能设计功能用户可以在好友速配界面中查询与自己爱好相同的系统,可以随机的查询一位好友,也可以根据多个条件查询好友,并可以给自己的好友发送短信。查询好友的界面如图410所示图410查询好友的界面查询好友的主要代码如下所示PUBLICCLASSMATCHFRIENDSACTIONEXTENDSACTIONSUPPORTPRIVATESTATICLOGGERLOGLOGGERGETROOTLOGGERPRIVATEIMESSENGERSERVICEMESSENGERSERVICEIMESSENGERSERVICEBEANFACTORYGETBEANBEANFACTORYMESSENGERSERVICEPRIVATESTRINGAGEPRIVATESTRINGGENDERPRIVATESTRINGPROVINCECITYPRIVATESTRINGTIPPUBLICVOIDSETPROVINCECITYSTRINGPROVINCECITYTHISPROVINCECITYPROVINCECITYSUPPRESSWARNINGS“UNCHECKED“OVERRIDEPUBLICSTRINGEXECUTETHROWSEXCEPTIONLOGINFO“INMATCHFRIENDSACTIONEXECUTEBEGIN“MAPREQUESTMAPACTIONCONTEXTGETCONTEXTGET“REQUEST“TRYLISTLISTMESSENGERSERVICEFINDFRIENDSAGE,GENDER,PROVINCECITY/放置在REQUEST范围,跳转到MATCHFRIENDJSP进行显示REQUESTPUT“MATCHFRIEND“,LISTLOGINFO“INMATCHFRIENDSACTIONEXECUTECOMPLETE“RETURNSUCCESSCATCHEXCEPTIONESETTIPEGETMESSAGEEPRINTSTACKTRACERETURNERROR46对本社区的说明本系统前台用MYECLIPSE开发,后台使用ORACLE作服务器,MYECLIPSE通过HIBERNATE来访问后台数据库的。461查询数据库的说明下面三个小节是使用HIBERNATE技术查询数据库的数据所使用的环节(部分实现代码),由于HIBERNATE使用的是面向对象的方式访问数据库,所以首先建立一个对象,然后在数据库中建立相应对象的表格,最后建立对象和表格的映射文件。下面从建立好友对象(POJO对象),创建映射文件,和查询好友三个方面进行说明。1建立好友对象PUBLICCLASSFRIENDRECORDIMPLEMENTSSERIALIZABLEPRIVATESTATICFINALLONGSERIALVERSIONUID338755691492060243LPRIVATELONGIDPRIVATESTRINGSELFNAMEPRIVA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湘南学院《人工智能伦理学》2024-2025学年第一学期期末试卷
- 长春医学高等专科学校《国际贸易实务模拟》2024-2025学年第一学期期末试卷
- 江西医学高等专科学校《田径(1)》2024-2025学年第一学期期末试卷
- 广东南华工商职业学院《机器学习基础实践》2024-2025学年第一学期期末试卷
- 武汉船舶职业技术学院《生物学课程教学论》2024-2025学年第一学期期末试卷
- 西安文理学院《社会查与研究方法》2024-2025学年第一学期期末试卷
- 肇庆医学高等专科学校《工程水文》2024-2025学年第一学期期末试卷
- 眉山职业技术学院《酒店服务营销》2024-2025学年第一学期期末试卷
- 新疆大学《装饰画工艺与技法》2024-2025学年第一学期期末试卷
- 美容院合同范本
- 温硝化制硝基苯装置的改进
- 保教知识与能力幼儿园课件
- 财务部半年度述职汇报PPT模板
- 药品种类清单
- 公共基础知识(社区工作者基础知识)试题(附答案)
- GB/T 37915-2019社区商业设施设置与功能要求
- GB/T 31298-2014TC4钛合金厚板
- 《电业安全工作规程》
- 卡西欧gw5600说明书
- 中兴NGN培训教材 MSG9000结构原理介绍课件
- 穿湖隧道施工组织设计
评论
0/150
提交评论