




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
更多相关文档资源请访问AAAAAAAAAAAA完整设计文件及源代码,资料请联系AA索要毕业设计(论文)论文题目基于WEB的易语言论坛系统的设计与实现THESISTOPICDESIGNANDIMPLEMENTATIONFORBBSSYSTEMBASEDONWEB2015年5月18日学生姓名学号所在院系软件工程学院专业班级软件工程1102班导师姓名职称完成日期2015年5月18日编号_毕业设计(论文)答辩许可证软件工程学院软件工程系软件工程专业学生所编写的毕业设计论文58页,字数22877,符合毕业设计论文大纲的要求。经审查该生已学完教学计划规定的全部课程,成绩合格,毕业设计电子文档最后一稿已交,准予参加毕业设计(论文)答辩。相关材料材料名称数量毕业设计(论文)1册毕业论文缩写1册答辩汇报稿1份毕业设计(论文)电子版(最后一稿磁盘文件)1套指导教师(签名)院长系主任(签名)年月日毕业设计(论文)任务书毕业设计(论文)题目基于WEB的易语言论坛系统的设计与实现毕业设计(论文)要求及原始数据(资料)(1)综述国内JAVAEEWEB应用开发技术的现状,了解JAVAEEWEB项目开发的相关技术。(2)掌握JAVAEEWEB项目开发的基础知识与基本能力,掌握SPRINGMVC与HIBERNATE两大框架技术,掌握使用框架技术开发JAVAEEWEB项目的能力。(3)设计并实现一个基于WEB的论坛系统项目,总结通过此次项目实战在知识与技能方面的收获。(4)训练检索文件和利用文献资料的能力,训练撰写技术文档与学位论文的能力。(5)题目应简洁、明确、有概括性,字数不宜超过20个字;(6)摘要要有高度的概括力,语言精练、明确,中文摘要约300字;(7)关键词从论文标题或正文中挑选35个,最能表达主要内容的词作为关键词(8)目录写出目录,标明页码;(9)正文本科毕业论文正文字数一般应在25000字以上,毕业论文正文包括前言、本论、结论三个部分前言(引言)是论文的开头部分,主要说明论文写作的目的、现实意义、对所研究问题的认识,并提出论文的中心论点等。前言要写得简明扼要,篇幅不要太长。本论是毕业论文的主体,包括相关需求分析,设计,编码,测试,界面体现,流程介绍等,主要是界面设计和代码的编写及效果体现。结论是毕业论文的收尾部分,是围绕本论所作的结束语。其基本的要点就是总结全文,加深题意。(10)谢辞简述自己通过做毕业论文的体会,并应对指导教师和协助完成论文的有关人员表示谢意;(11)参考文献在毕业论文末尾要列出在论文中参考过的专著、论文及其他资料,所列参考文献应按文中参考或引证的先后顺序排列;毕业设计(论文)主要内容1描述国内网上论坛系统的现状;2综述国内JAVAEEWEB应用开发技术的概况;3简单介绍JAVAEEWEB项目开发的相关技术;4描述框架技术在JAVAEEWEB项目开发的重要性;5描述本项目开发环境的配置与项目运行的部署;6分析本项目需要的功能并做出相应的设计;7实现本项目的所有功能并保证足够的健壮性;8总结通过本项目所获得的知识与技能的提升;学生应交出的设计文件(论文)1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。主要参考文献(资料)1孙鑫JAVAWEB开发详解M电子工业出版社,20062孙卫琴,李洪成TOMCAT与JAVAWEB开发技术详解M电子工业出版社,20033袁建洲JAVASCRIPT编程宝典人民邮电出版社,20074李刚基于J2EE的AJAX宝典电子工业出版社,20075耿祥义JSP基础编程M清华大学出版社,20046林信良JSPTHEPOSTBARSUBJECTINFORMATIONINTERACTION目录1绪论111背景和意义112设计目标213开发与运行环境22可行性分析221经济可行性分析322技术可行性分析323运行可行性分析324法律可行性分析425开发方案可行性43需求分析431需求采集4311功能需求5312性能需求632功能模块6321基本功能设计7322扩展功能设计84系统设计941数据库设计9411TABLE_MEMBER会员表9412TABLE_TIEBA贴吧表10413TABLE_TIEZI帖子表11414TABLE_FLOOR楼层表12415TABLE_MESSAGE信息表13416TABLE_REMIND提醒表1442相关技术15421JAVAEEWEB15422JSP16423SERVLET16424JAVASCRIPT17425AJAX17426HIBERNATE17427SPRING18428SPRINGMVC1843功能设计18431登录注册19432查看贴吧列表20433查看帖子列表22434查看帖子详情22435查看提醒信息2344展望24结束语26参考文献28致谢291绪论11背景和意义当今的社会是一个信息高速发展的社会,在信息的交流和传递当中,互联网占据着一个非常重要的位置。随着INTERNET技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨问题、交换观点的场所,各种网络应用应运而生。随着网络应用的兴起,人们交流的方式也发生了翻天覆地的变化。网络聊天、网络视频和邮箱系统等网络应用的出现正在改变着人们彼此之间沟通、交流的方式。此外,为了满足人们在某一特定主题下的知识获取和信息发布的需求,网上论坛顺势诞生了。随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为WEB信息库的重要组成部分,自网上论坛诞生20多年以来,随着WEB技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间,影响和改变着我们的生活。论坛是一个让人足不出户即可了解外界世界,了解他人所想的工具。给天下的网民都提供了交流的平台,为网络的互动性作出了巨大的贡献。人们根据自己的专业特长和兴趣爱好在论坛上提出自己的问题,即提出主题。而后其他人根据主题内容可以发表自己的意见和看法,即回复主题。一千个人有一千个哈姆雷特,论坛集大家之所长,所感,为每一个用户提供了丰富的知识矿藏。通过论坛,网民们得以更方便的交流,更便捷的发表自己的观点,而且发布信息都是通过有记录的文字来进行,所以这样也避免了精华内容的流失。通过论坛来征得自己想要的信息,有更高的效率和时效性,也最节约成本和资源。在论坛的交流过程中,参与讨论的人可以处于一个平等的位置,且无论喜怒哀乐都是在虚拟的环境中进行,避免了正面的尴尬和冲突等。在论坛中,人们可以演变成任何角色,变换多种身份,因为网络的特征,使得人民更加依赖于论坛中的交流。12设计目标百度贴吧,是全球最大的主题中文社区,其基于搜索引擎和开放关键词的形态已变成一种通用的互联网产品模式,被中文网站广为学习采纳,产生了大量类似“贴吧”的平台。而本系统也正是借鉴了百度贴吧开放关键词的特点,在实现了论坛基本功能的基础上,扩展了论坛系统的现有功能。游客用户可以查询贴吧,浏览帖子,也可以通过注册功能获得系统账号,从而登录本系统,升级成为登录用户,获得对应的权限。登录用户不仅可以查询贴吧,浏览帖子,还可以发表帖子,回复帖子,查看通知,参与贴吧活动,创建贴吧,管理贴吧等,是本系统的核心用户。管理员用户不仅仅具有贴吧的所有权限,同时还肩负着发展贴吧的重任,是贴吧的核心人物。13开发与运行环境操作系统MICROSOFTWINDOWS7ULTIMATE64BITJDKJAVASEDEVELOPMENTKIT7U75开发工具ECLIPSELUNASERVICERELEASE2442数据库ORACLEDATABASE11GRELEASE2EXPRESSEDITION1102服务器APACHETOMCAT70592可行性分析可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题作出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统可行性的分析,要求用最小的代价在尽可能短的时间内确定系统是否可行。可行性研究的目的不是解决问题,而是确定问题是否值得去解。如何实现不能靠主观猜想而只能客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否实现,系统完成后能带来的效益是否大到值得投资开发这个系统的程序。任务可行性研究实质上是要进行一次大的压缩简化了的系统分析和设计的过程。分析员应该给出系统的逻辑模型,然后从系统逻辑模型出发,寻找可供选择的解法,研究每一种解法的可行性。一般来说,应从经济可行性,技术可行性,运行可行性,法律可行性和开发方案等方面研究可行性。21经济可行性分析经济可行性研究主要进行成本效益分析,包括估计项目的开发成本,估算开发成本是否会高于项目预期的全部利润。对于本系统来说,开发与运行所使用到的软件与工具都是免费的,都可以在网络上下载到,而且整个系统皆由作者本人独立完成,经济问题完全不存在,所以本设计在经济方面是可行的。22技术可行性分析技术可行性是最难决断和最关键的问题。根据系统功能、性能及实现体统的各项约束条件,从技术的角度研究系统实现的可行性。本系统使用JAVA语言开发,同时采用了HTML,JSP,CSS,JAVASCRIPT,AJAX,SERVLET以及SPRINGMVC与HIBERNATE两大框架技术,在数据库上采用的是ORACLE数据库,服务器采用的是TOMCAT。本系统使用到了这些技术,但是涉及却不是很深,作者可凭借所学知识以及网络来解决所遇见的问题。23运行可行性分析运行可行性研究内容包括新系统规定的运行方式是否可行,如果新系统是建立在原来已担负起它任务的计算机系统上的,就不能要求它在实时在线状态下运行,以免与原有的任务相矛盾。另外就是用户是否可以熟练的运用它。本系统最终将会运行在本地计算机上,即使需要联网运行,也可以使用花生壳软件来映射内网,达到使用域名访问该系统的效果。本地计算机只负担该项目一个运行任务,而且本系统的用户量也很少,所以运行在本地计算机上没有任何问题。24法律可行性分析法律可行性是指研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。本系统在开发过程中使用的都是免费的开源的软件以及代码,所参考的资料也是免费的或者是通过付费获得的,所以不会涉及任何法律相关的问题。25开发方案可行性提出系统实现的各种方案并进行评价之后,从中选择一种最优秀的方案。本系统经过了作者深思熟虑,结合作者之前在其他项目上的开发经验,最终确定下了一套开发方案,这套开发方案完全可行。3需求分析需求分析是在软件开发的初始阶段进行,它对于整个软件开发过程以及软件开发后质量是举足轻重的。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。在需求分析的研究中,系统开发人员必须对用户的需求进行调查和分析,结合实际环境的特征,正确定义目标软件的特征。所谓需求分析,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说需求分析是做系统之前必做的。31需求采集在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后,他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。311功能需求就本系统来说,本系统属于BBS系统,而且结合了百度贴吧开放关键词的设计模式,应该具备如下功能,现在按照游客与会员(登录用户)来介绍。游客是指一些访问本系统的时候没有进行过登录操作的用户。游客只有查询的权限,可以访问本系统包含的所有贴吧,可以浏览某个贴吧的所有的帖子,但是游客没有执行任何操作的权限,游客不能创建新的贴吧,不能发表新的帖子,不能回复已有的帖子。游客可以通过系统提供的注册页面来获得系统承认的账号,通过账号登录本系统,以获得与会员一致的权限。会员会员是本系统的核心用户,他们参与在贴吧建设的方方面面。会员在拥有游客的所有权限的同时,还拥有更多与系统进行交互的权限。会员可以更新自己账号的信息,可以创建暂不存在的贴吧,可以在任何贴吧发表新的帖子,可以回复任何已存在的帖子。会员们可以通过帖子进行交流,当有会员与你发生信息交互时,系统会给出相对应的通知,而会员也可以通过查看通知来获得信息详情。管理员用户,即吧主,也是会员,是某一个贴吧的管理者,肩负着壮大该贴吧的责任。会员可以通过创建一个贴吧来成为该贴吧的吧主,拥有该贴吧的最高权限。可以修改该贴吧的信息,可以管理本吧的帖子。吧主仅仅在属于其自己的贴吧才是吧主,到了别的贴吧,其权限就会变成普通会员。此外,吧主还拥有着游客和会员的所有权限。312性能需求本系统是BBS论坛系统,为了给用户较好的体验,需要本系统响应快速,所以在此对硬件及软件做了需求分析。硬件环境处理器INTER酷睿I5或更高内存大小4GB或更高硬盘空间10GB或更高软件环境操作系统WIN7或更高服务器TOMCAT60或更高数据库ORACLEDATABASE10G或更高32功能模块画出功能模块图是软件工程过程中的一个重要环节,它将显示出工程所要实现的各种功能,并分类,然后软件工程师根据功能模块图来通过代码具体实现这些功能。功能模块图就是讲系统的功能进行分解,按功能从属关系表示的图表。管理系统的各子系统可以看作是系统目标下层的功能,对其中每项功能可以继续分解为第三、第四,甚至更多的功能。图中的每一个框都称为一个功能模块,其功能根据实际情况分的大小不完全相同。图31贴吧系统用户类型及对应功能概览图321基本功能设计通过需求分析,论坛的基本功能可以从众多的需求中筛选出来。顾名思义,基本功能就是构成论坛系统的必要功能,具备这些功能的WEB系统即是论坛。基本功能1浏览帖子。发表了帖子,就要供他人浏览查看,与他人分享自己的想法和经验。2发表帖子。论坛最初是为了相互讨论话题而诞生的,发表帖子就是表达自己的看法,与他人进行讨论,因此发帖是论坛首要的功能。3回复帖子。浏览了他人发表的帖子,想要发表自己的想法,参与讨论,就可以回复这个帖子。其实,浏览帖子发表帖子回复帖子三大功能周而复始的循环进行,就构成论坛。每个参与论坛的人,主要目的就是发帖,查看已经发表的帖子,针对自己感兴趣的帖子进行回帖,参与讨论。三大基本功能的相互关系如图图32贴吧系统基本功能相互关系图322扩展功能设计除了基本功能之外,其他的论坛功能都是扩展功能。注册登录。用户登录系统之后,用户信息被系统读取到,用户执行操作的时候,系统直接获取这个信息,所以会员的权限比游客高。分板块浏览帖子。其实不同的贴吧就是不同的板块,在某一个主题为某关键词的贴吧里只讨论与该关键词相关的话题。这样,就使得对某一话题感兴趣的用户不会被其他帖子干扰,也有利于相同兴趣的用户相互间讨论,不易跑题。3查看用户信息。每一个用户可以查看所有用户的信息。4删除帖子。如果用户发表了不符合论坛规则的帖子,则需要管理员删除这些帖子,这就引出了删除帖子的扩展功能。5置顶帖子。帖子一般是根据发表以及回复时间到序排列的,这样先发的帖子就慢慢排到后面,管理员如果需要强调某些帖子重要,又必看性,就要打乱默认的排列顺序,将这些帖子放在列表的最前端,不再按照时间进行顺序的变化,但是还要保证其他帖子按照时间变化顺序进行排列,这就引出了置顶帖子的扩展功能。6精华帖子。如果管理员认为某个帖子的内容非常好,可以打上标记,推荐给看帖的用户,这就引出了指定精华帖的扩展功能。用户可以选择只看打上标记的精华帖。7搜索帖子。论坛中的帖子越来越多,用户需要从大量的帖子中找到自己需要的内容,这就引出了搜索帖子的扩展功能。8设置参数。论坛一般有一些初始化信息,比如论坛名称,每页显示帖子数量等参数信息,用户可以在页面底部设置这些信息。帖子列表浏览帖子回复帖子发表帖子9查看通知信息。比如说管理员删帖,删帖后系统会提醒发帖用户。10查看回复信息。在用户发帖或回帖之后,被其它用户回帖,系统也会给出相应的提醒信息。11查看提到情况。有时候别人发帖回特别提醒你一下(用户),系统也会做出相应的提醒。4系统设计41数据库设计数据库系统是在文件系统的基础上发展而来的,经历了层次数据库、网状数据库、关系数据库三个阶段。由于关系数据库采用人们比较容易理解和接受的二维表格来组织数据,发展迅速,已成为数据库产品的主流。本次系统设计所使用的数据库就是关系数据库ORACLE。ORACLE数据库管理系统是一项全面完整的数据库与分析产品。ORACLE容易学习、使用,介绍、学习资料比较多,ORACLE全面支持WEB功能的数据库解决方案。与此同时,ORACLE11G提供了高性能、伸展性、可用性和安全性,并能更方便地在低成本服务器和存储设备组成的网络上运行,相对过往版本而言,ORACLE11G具有了于总不同的特性,这也是企业数据库系统在激烈市场竞争中克敌制胜的关键所在。正是由于ORACLE和其它的大型数据库相比较,ORACLE具有可靠的安全性、较快的存储速度、高度的兼容性和可扩展性、数据的大量性、数据保存的持久性、数据的共享性、简单易用等等一系列的特性。因此,我采用了ORACLE11G作为后台的数据库。本系统的数据库暂时包含了7张表,分别为TABLE_MEMBER,TABLE_LEVEL,TABLE_TIEBA,TABLE_TIEZI,TABLE_FLOOR,TABLE_MESSAGE,TABLE_REMIND。他们之间存在一些依赖或包含的关系,系统可以有很多贴吧,每个贴吧下可以有很多帖子,每个帖子下可以有很多层楼,每层楼又可以包含很多个信息。下面将对这几张表作相应的介绍。411TABLE_MEMBER会员表字段描述字段名类型说明ID_MEMBERNUMBER17主键,会员ID,根据注册时间得到的17位数字USERNAMEVARCHAR220用户名PASSWORDVARCHAR232密码,MD5加密后为32位字符串PHONEVARCHAR211电话EMAILVARCHAR230邮箱GENDERVARCHAR23性别,只能为男或女BIRTHDAYVARCHAR210生日,格式为YYYYMMDDADDRESSVARCHAR2150地址QQNUMBERVARCHAR211QQ账号SIGNATUREVARCHAR2150个性签名EXPERIENCENUMBER10经验值ROLENUMBER1角色,1普通会员0吧主,会员在每个吧的角色都不同,进入贴吧会自动更新STATUSNUMBER1状态,1正常2加黑3封禁有专门的加黑表,封禁表,会员在每个吧的这些状态不同,进入贴吧会自动更新表41TABLE_MEMBER会员表建表语句CREATETABLETABLE_MEMBERID_MEMBERNUMBER17,USERNAMEVARCHAR220,PASSWORDVARCHAR232,PHONEVARCHAR211,EMAILVARCHAR230,GENDERVARCHAR23,BIRTHDAYVARCHAR210,ADDRESSVARCHAR2150,QQNUMBERVARCHAR211,SIGNATUREVARCHAR2150,EXPERIENCENUMBER10,ROLENUMBER1,STATUSNUMBER1,CONSTRAINTPK_MEMBER_1PRIMARYKEYID_MEMBER412TABLE_TIEBA贴吧表字段描述字段名类型说明ID_TIEBANUMBER17主键,贴吧ID,根据创建时间得到的17位数字ID_MEMBERNUMBER17外键,吧主ID,根据注册时间得到的17位数字NAMEVARCHAR230贴吧名称SIGNATUREVARCHAR2150贴吧签名STATUSNUMBER1状态,1可视0不可视表42TABLE_TIEBA贴吧表建表语句CREATETABLETABLE_TIEBAID_TIEBANUMBER17,ID_MEMBERNUMBER17,NAMEVARCHAR230,SIGNATUREVARCHAR2150,STATUSNUMBER1,CONSTRAINTPK_TIEBA_1PRIMARYKEYID_TIEBA,CONSTRAINTFK_TIEBA_2FOREIGNKEYID_MEMBERREFERENCESTABLE_MEMBERID_MEMBER413TABLE_TIEZI帖子表字段描述字段名类型说明ID_TIEBANUMBER17主键,外键,贴吧ID,根据创建时间得到的17位数字ID_TIEZINUMBER17主键,帖子ID,根据发帖时间得到的17位数字ID_MEMBERNUMBER17外键,会员ID,根据注册时间得到的17位数字NAME_MEMBERVARCHAR220会员用户名,发帖用户STATUSNUMBER1状态,1可视0不可视TITLEVARCHAR2150帖子标题表43TABLE_TIEZI帖子表建表语句CREATETABLETABLE_TIEZIID_TIEBANUMBER17,ID_TIEZINUMBER17,ID_MEMBERNUMBER17,NAME_MEMBERVARCHAR220,STATUSNUMBER1,TITLEVARCHAR2150,CONSTRAINTPK_TIEZI_12PRIMARYKEYID_TIEBA,ID_TIEZI,CONSTRAINTFK_TIEZI_1FOREIGNKEYID_TIEBAREFERENCESTABLE_TIEBAID_TIEBA,CONSTRAINTFK_TIEZI_3FOREIGNKEYID_MEMBERREFERENCESTABLE_MEMBERID_MEMBER414TABLE_FLOOR楼层表字段描述字段名类型说明ID_TIEBANUMBER17主键,外键,贴吧ID,根据创建时间得到的17位数字ID_TIEZINUMBER17主键,外键,帖子ID,根据发帖时间得到的17位数字ID_FLOORNUMBER17主键,楼层ID,根据发帖时间得到的17位数字ID_MEMBERNUMBER17外键,会员ID,根据注册时间得到的17位数字NAME_MEMBERVARCHAR220会员用户名,发楼用户STATUSNUMBER1状态,1可视0不可视表44TABLE_FLOOR楼层表建表语句CREATETABLETABLE_FLOORID_TIEBANUMBER17,ID_TIEZINUMBER17,ID_FLOORNUMBER17,ID_MEMBERNUMBER17,NAME_MEMBERVARCHAR220,STATUSNUMBER1,CONSTRAINTPK_FLOOR_123PRIMARYKEYID_TIEBA,ID_TIEZI,ID_FLOOR,CONSTRAINTFK_FLOOR_12FOREIGNKEYID_TIEBA,ID_TIEZIREFERENCESTABLE_TIEZIID_TIEBA,ID_TIEZI,CONSTRAINTFK_FLOOR_4FOREIGNKEYID_MEMBERREFERENCESTABLE_MEMBERID_MEMBER415TABLE_MESSAGE信息表字段描述字段名类型说明ID_TIEBANUMBER17主键,外键,贴吧ID,根据创建时间得到的17位数字ID_TIEZINUMBER17主键,外键,帖子ID,根据发帖时间得到的17位数字ID_FLOORNUMBER17主键,外键,楼层ID,根据发帖时间得到的17位数字ID_MESSAGENUMBER17主键,楼层ID,根据发帖时间得到的17位数字ID_FROMNUMBER17外键,会员ID,根据注册时间得到的17位数字NAME_FROMVARCHAR220会员用户名,信息发送人ID_TONUMBER17外键,会员ID,根据注册时间得到的17位数字NAME_TOVARCHAR220会员用户名,信息接收人STATUSNUMBER1状态,1可视0不可视CONTENTVARCHAR23000信息内容表45TABLE_MESSAGE信息表建表语句CREATETABLETABLE_MESSAGEID_TIEBANUMBER17,ID_TIEZINUMBER17,ID_FLOORNUMBER17,ID_MESSAGENUMBER17,ID_FROMNUMBER17,NAME_FROMVARCHAR220,ID_TONUMBER17,NAME_TOVARCHAR220,STATUSNUMBER1,CONTENTVARCHAR23000,CONSTRAINTPK_MESSAGE_1234PRIMARYKEYID_TIEBA,ID_TIEZI,ID_FLOOR,ID_MESSAGE,CONSTRAINTFK_MESSAGE_123FOREIGNKEYID_TIEBA,ID_TIEZI,ID_FLOORREFERENCESTABLE_FLOORID_TIEBA,ID_TIEZI,ID_FLOOR,CONSTRAINTFK_MESSAGE_5FOREIGNKEYID_FROMREFERENCESTABLE_MEMBERID_MEMBER,CONSTRAINTFK_MESSAGE_7FOREIGNKEYID_TOREFERENCESTABLE_MEMBERID_MEMBER416TABLE_REMIND提醒表字段描述字段名类型说明KINDNUMBER1提醒类型,1通知2回复3提到ID_REMINDNUMBER17主键,提醒ID,根据创建时间得到的17位数字ID_TIEBANUMBER17贴吧ID,根据创建时间得到的17位数字NAMEVARCHAR230贴吧名称ID_TIEZINUMBER17帖子ID,根据发帖时间得到的17位数字TIELEVARCHAR2150帖子标题ID_FLOORNUMBER17楼层ID,根据发帖时间得到的17位数字ID_MESSAGENUMBER17信息ID,根据创建时间得到的17位数字ID_FROMNUMBER17外键,会员ID,根据注册时间得到的17位数字NAME_FORM会员用户名,提醒发送人ID_TONUMBER17外键,会员ID,根据注册时间得到的17位数字NAME_TO会员用户名,提醒接收人STATUSNUMBER1状态,1未读0已读CONTENTVARCHAR23000提醒内容表46TABLE_REMIND提醒表建表语句CREATETABLETABLE_REMINDKINDNUMBER1,ID_REMINDNUMBER17,ID_TIEBANUMBER17,NAMEVARCHAR230,ID_TIEZINUMBER17,TIELEVARCHAR2150,ID_FLOORNUMBER17,ID_MESSAGENUMBER17,ID_FROMNUMBER17,NAME_FORMVARCHAR220,ID_TONUMBER17,NAME_TOVARCHAR220,STATUSNUMBER1,CONTENTVARCHAR2150,CONSTRAINTPK_REMIND_12PRIMARYKEYKIND,ID_REMIND42相关技术本项目是一个动态WEB项目,系统采用SPRINGMVC框架实现了页面的切换和数据的传递,采用HIBERNATE框架实现了数据的持久化操作,前台页面采用JSP技术编写,其数据合法性采用了JAVASCRIPT,JQUERY和AJAX技术,结合后台SERTLET进行验证。现在简单介绍一下这些技术以及系统详细设计。421JAVAEEWEBJAVAEE(JAVAPLATFORM,ENTERPRISEEDITION)是SUN公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端JAVA应用程序。JAVAEE是在JAVASE的基础上构建的,它提供WEB服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SERVICEORIENTEDARCHITECTURE,SOA)和WEB20应用程序。在当今网络时代,无论是因特网(INTERNET)、内联网、外联网都离不开WEB技术的应用。随着网络技术尤其是WEB应用技术的发展,企业级应用对系统各方面的性能要求越来越高,特别是速度、安全、可靠性以及分布式应用等方面,在一定程度上决定着系统能否成功。在这些要求的共同作用下,SUN的JAVAEE(JAVA平台企业版)规范利用JAVA编程语言和企业API的强大功能,包括EJB技术,提供了一种业界领先的WEB编程技术平台。JAVAEEWEB编程技术已成为计算机领域中最重要的的技术之一,它是软件学科中一个不可或缺的分支,是计算机专业和信息管理专业一门专业基础课,越来越多的人都开始学习JAVAEEWEB编程技术。422JSPJSP全名为JAVASERVERPAGES,中文名叫JAVA服务器页面,其根本是一个简化的SERVLET设计,它1是由SUNMICROSYSTEMS公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件HTM,HTML中插入JAVA程序段SCRIPTLET和JSP标记TAG,从而形成JSP文件,后缀名为JSP。用JSP开发的WEB应用是跨平台的,既能在LINUX下运行,也能在其他操作系统上运行。它实现了HTML语法中的JAVA扩张(以形式)。JSP与SERVLET一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP技术使用JAVA编程语言编写类XML的TAGS和SCRIPTLETS,来封装产生动态网页的处理逻辑。网页还能通过TAGS和SCRIPTLETS访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于WEB的应用程序的开发变得迅速和容易。JSPJAVASERVERPAGES是一种动态页面技术,它的主要目的是将表示逻辑从SERVLET中分离出来。JAVASERVLET是JSP的技术基础,而且大型的WEB应用程序的开发需要JAVASERVLET和JSP配合才能完成。JSP具备了JAVA技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。423SERVLETSERVLET是在服务器上运行的小程序。最早支持SERVLET技术的是JAVASOFT的JAVAWEBSERVER。此后,一些其它的基于JAVA的WEBSERVER开始支持标准的SERVLETAPI。SERVLET的主要功能在于交互式地浏览和修改数据,生成动态WEB内容。这个过程为1客户端发送请求至服务器端;2服务器将请求信息发送至SERVLET;3SERVLET生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;4服务器将响应返回给客户端。SERVLET看起来像是通常的JAVA程序。SERVLET导入特定的属于JAVASERVLETAPI的包。因为是对象字节码,可动态地从网络加载,可以说SERVLET对SERVER就如同APPLET对CLIENT一样,但是,由于SERVLET运行于SERVER中,它们并不需要一个图形用户界面。从这个角度讲,SERVLET也被称为FACELESSOBJECT。一个SERVLET就是JAVA编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求响应”编程模型来访问的应用程序。虽然SERVLET可以对任何类型的请求产生响应,但通常只用来扩展WEB服务器的应用程序。424JAVASCRIPTJAVASCRIPT一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JAVASCRIPT引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。425AJAXAJAX即“ASYNCHRONOUSJAVASCRIPTANDXML”(异步JAVASCRIPT和XML),是指一种创建交互式网页应用的网页开发技术。AJAX异步JAVASCRIPT和XML(标准通用标记语言的子集)。AJAX是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页页面。426HIBERNATEHIBERNATE是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序使用,也可以在SERVLET/JSP的WEB应用中使用,最具革命意义的是,HIBERNATE可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。427SPRINGSPRING是一个开源框架,SPRING是于2003年兴起的一个轻量级的JAVA开发框架,由RODJOHNSON在其著作EXPERTONEONONEJ2EEDEVELOPMENTANDDESIGN中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。SPRING使用基本的JAVABEAN来完成以前只可能由EJB完成的事情。然而,SPRING的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何JAVA应用都可以从SPRING中受益。SPRING的核心是控制反转(IOC)和面向切面(AOP)。简单来说,SPRING是一个分层的JAVASE/EEFULLSTACK一站式轻量级开源框架。428SPRINGMVCSPRINGMVC属于SPRINGFRAMEWORK的后续产品,已经融合在SPRINGWEBFLOW里面。SPRING框架提供了构建WEB应用程序的全功能MVC模块。使用SPRING可插入的MVC架构,可以选择是使用内置的SPRINGWEB框架还可以是STRUTS这样的WEB框架。43功能设计1本系统的前台JSP页面使用如下代码重新设定了相对路径。“这样把相对位置设置成了BASEPATH,完美解决了相对位置发生改变导致页面找不到的问题。2本系统的服务器使用了80端口,并配置了如下信息重新设置了访问地址。这样只需要一个域名或IP地址就可以访问到本项目了,不需要加端口号和项目名,设计比较人性化,测试也较为方便。431登录注册登录与注册功能几乎是WEB项目里不可或缺的存在,当然本论坛系统也不例外。在本系统里,登录注册模块完全独立了出来,单独设置成了一个JSP页面,在其他所有页面里面调用该页面即可。系统会根据不同情况在SESSION里面设置不同的参数以及相对应的数据,而本JSP页面则会根据参数是否为空来选择不同的显示方式。而且本JSP页面采用浮动技术,会一直固定在页面的最顶部,不会随着页面的滚动而移动。本JSP页面会显示贴吧名称以及贴吧签名信息,同时还兼具用户登录与注册功能。其通过JQUERY与AJAX来做登录验证。登录成功后,会重新加载页面,这样很多游客不具备的权限都会随着用户的登录而变得可视或可操作。用户点击了注册按钮,系统会跳转到注册页面,用户只需要填写最关键的账号,密码,手机,邮箱,通过合法性验证,即可完成注册,其他信息可以在注册之后完善,账号一经注册不能修改。同时还会显示未读提醒的数量,点击之后会跳转到查看提醒页面,这个在下面的查看提醒信息里会介绍到。图42用户未登录状态头文件显示情况图43用户已登录状态头文件显示情况图44会员注册页面图45更新用户信息432查看贴吧列表系统会将已存在的贴吧显示在贴吧首页,用户可以通过点击每一个贴吧的“进入贴吧”按钮来跳转到对应贴吧的贴吧主页,也可以通过点击“查看贴吧信息”或“查看吧主信息”来查看用户感兴趣的信息。所有的贴吧按照创建时间从早到晚的顺序排列,创建的越早则显示的位置越靠前。用户也可以通过在贴吧搜索框里面输入贴吧名称的关键字(关键字可以有多个,中间使用空格来区分),来查找相应的贴吧,系统会把满足搜索条件的贴吧全都列出来,显示在贴吧列表之前,便于用户查看。若是用户没有找到自己想要找的贴吧,也可以通过点击“创建贴吧”按钮来创建一个新的贴吧。如果贴吧创建成功,那么该用户就会成为这个贴吧的吧主,拥有本吧里的最高权限,但是在其他非吧主的贴吧里,该用户仍然只是普通会员,受该吧吧主的管制。图46贴吧首页图47创建贴吧图48更新贴吧信息433查看帖子列表用户通过点击“进入贴吧”按钮,跳转到某一个贴吧的首页,该吧的所有的可视的帖子,都会被系统检索到,然后显示到这里。帖子的显示分两种,一种是置顶帖,一种是普通帖。置顶帖会优先显示到列表最顶端。两种类型的帖子都会按照时间顺序,较新的帖子会显示在靠前的位置。游客与会员的功能第一次显现差别,在这里登录用户可以直接发表新的帖子,可以删除自己发的帖子,但是游客则没有这样的权限,必须得通过登录系统才可以。图411帖子列表434查看帖子详情用户通过点击帖子列表页面的任何一个帖子标题,即可进入查看该帖子的详情。同样,所有可视的信息都会被系统读取到,然后显示出来。在这里游客与登录用户的区别再一次体现了出来,游客只能浏览而不能回复,登录用户可以发表一个新的楼层,也可以在某个已有楼层下回复某一个用户,也可以只回复层主,回复的楼层会显示在当前帖子的最末楼,回复的信息会显示在某一楼的最末信息位置。在这里,系统会根据登录用户与帖子的关系以及登录用户的权限来显示不同的操作权限。首先是大前提,用户不能回复自己,如果信息是楼层的第一条信息,那么不能删除该信息,而只能删除该楼层。其次是小限制,吧主拥有大前提下的最高权限,用户(楼主)在自己发的贴子里拥有与吧主一致的权限,用户(层主)在自己发的楼层里拥有与吧主一致的权限。用户(发信息者)只对自己发的信息拥有与吧主一致的权限。图412帖子详情435查看提醒信息提醒信息总共分为三种类型,通知提醒,回复提醒,提到提醒。通知提醒包括有管理员删帖,管理员置顶帖,管理员精华帖等。回复提醒就是有别人对你的发言进行了回复后系统发给你的提醒,提到提醒就是别人发帖或回帖是特地到你后体统发给你的提醒。在本系统中,提醒模块所包含的内容有系统通知,回复我的,提到我的,我回复的,我提到的共5部分。图413回复我的图414我回复的44展望由于本人技术水平有限以及时间不足的原因,系统现在暂时还没有图片上传功能,在图片方面,我的设计初衷就是用户注册以及贴吧创建的时候,必须同时上传一张图片作为用户头像和贴吧LOGO,还有用户发帖子的时候也可以上传图片,这个功能在接下来的时间里我还是会集成到现有系统里面去的。还有一点,就是分页设计功能,目前还处于研发之中。现在已经在测试项目里面实现了这个功能,但是代码比较分散,JSP页面里面有,后台SERVLET里面也有,想要往本系统里面集成实在是不易。所以我将会在后续的修改中,继续加油,尽量把分页功能整合一下。一次实现,多次调用。把本系统里面涉及到分页功能的地方,全部替换掉。结束语在经历了三个月左右的时间后,本系统的开发工作基本算是结束了,为什么要用基本这个词汇呢因为时间条件的原因,在本系统里,其实还是有很多的缺陷与不足没有来得及修正。不过我在之后还是会针对这些不足作修改的。毕业设计就是对学生近四年来的学习成果在专业方面做了一次比较针对性的全面的测试。我学的专业以及方向是软件工程的WEB方向,我比较擅长使用JAVA进行WEB项目的开发。我见有好多人在做各种各样的购物系统,再加上我也做过购物系统了,再做的话没有什么新意,所以我选了一个BBS论坛系统。我平时接触百度贴吧比较多,对其功能等较为熟悉,而且百度贴吧其实也是一种新形态的论坛系统,其开放关键词的思想非常利于论坛的扩展,所以我本次毕业设计的目标就是模仿百度贴吧,做一个实现了其基本功能的贴吧系统。出于对百度贴吧设计者的敬意以及可能会造成的法律问题,所以我把系统起名为“十度贴吧”。现在比较先进和流行的开发框架中有一款非常优秀,那就是SPRINGMVC,我在实习公司里见到的很多项目也使用了这个框架,所以我借此机会学习一下它。经过简单的学习,我开始了这个项目的设计与开发。由于我现在能力有限,认识不足,对该框架的使用仅仅限于页面的跳转与传值。不过,在经过各种尝试与失败之后,我收获挺多的,在我心里真切的体会到了这个框架的人性化设计,以及它功能的强大,以后我会更多的使用它,深入的了解它,我已经爱上了它。在数据持久化方面,我使用的是ORACLE数据库的XE快捷版,因为到目前为止,虽然接触使用过好几种数据库软件,但是我最熟悉的还是ORACLE。在程序里,我使用的是HIBERNATE框架来做数据的持久化,本来我想试一试MYBATIS的,但是考虑到这个框架一点都没接触过,而且简单学过的HIBERNATE框架还在一边半生不熟,掌握的不怎么样,所以我就决定使用HIBERNATE了。经过这次毕设,我对HIBERNATE又有了进一步的认识,了解了一些其他的使用方法,还想明白了很多使用习惯的原因,收获也是挺大的,我相信这一定能为我之后学习MYBATIS提供借鉴。在真正进行功能模块设计开发的时候,也是由于考虑不是很周全,做过几次大翻工,各方面的翻工表明了一个事实,那就是我做分析与设计的时候还是不够重视,不够认真,虽然我明明知道分析与设计非常重要,但是结果却还是这样。我总结了一下,不够认真,经验不足,表面原因应该就是这样了。再进一步,其实我的心态有问题,当时确定下这个题目的时候,我就根据我的能力大概想了下,认为这个项目应该没多大问题,大的架构上没什么问题,但是我在小细节上自大了,思考的比较随便,考虑不周全,以后一定会注意。前台的页面设计问题不是很大,主要就是模仿百度贴吧的风格。但是,在开发的时候,实在是叫我头疼,各种问题频出,各种意外不断。我本人对前台技能掌握不好,不擅长开发前台。像DIV标签,JQUERY等的使用都是只知皮毛,所以很多本来用这些能很容易解决的问题,到我这里可能绕很多弯路才能处理掉,最郁闷的是,不少问题得花很多时间,几个小时算是短的以前做的项目前台页
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中英语教学与艺术展览文化语境探究论文
- 艺术生体重管理制度
- 茶坊专用杯管理制度
- 驻外维修工管理制度
- 一年级《夜色》课件
- 财务会计-处理会计信息
- 经典案例-鼠标移过放大
- 大学生恋爱问题调查报告
- 高等教学系列 管理学教学 第三章 计划 内有超多案例分析
- 计算机信息处理技术理论题
- 新材料与绿色制造的关系研究
- 顶管工作井最小尺寸的确定及顶力计算书
- 烤烟房买卖合同范文
- 儿童钻石画课件
- 【MOOC】气候变化与人类社会-南京信息工程大学 中国大学慕课MOOC答案
- 胸痛中心数据填报培训
- 液压升降平台合同范例
- 水毁道路修复工程项目可行性研究报告
- 教科版 六年级下册 科学 2023-2024 温州市小升初学业检测
- 2024版《突发事件应对法》知识培训
- DB43T 244.4-2017 建设项目涉及国家安全的系统规范 第4部分:入侵报警系统规范
评论
0/150
提交评论