




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通用论坛BBS系统设计与实现学 生 姓 名 指 导 教 师 专 业 计算机科学与技术 学 院 计算机与信息工程 2008年06月16日Design and Implementation ofGeneral Forum Bulletin Board SystemStudent Supervisor SpecialtyComputer Science and Technology SchoolComputer and Information Engineering2008-06-16毕业设计(论文)任务书姓名: 学院:计算机与信息工程班级:04-2专业:计算机科学与技术毕业设计(论文)题目:通用论坛BBS系统设计与实现立题目的和意义:目的:设计的首要目的是运用已经学习到的MyEclipse工具和MySQL数据库知识自主实现一个实用的系统,使得现有知识得到更好的巩固,更加熟练的操作MyEclipse工具和MySQL数据库。同时在实现中学习到更多的知识,能更深入掌握JSP和了解软件开发的全过程,为以后的学习与工作打下坚实的基础。意义:BBS(电子布告栏系统)是在网上提供交流的手段。它可以用于公告、群组讨论、社区内通信、联系、在线聊天、找工作等,利用网络实时、便捷的特点来方便人们的交流、联系和娱乐。技术要求与工作计划:技术要求:本设计所做的网站采用三层结构,以MySQL数据库为后台数据库,以JSP网页作为表现层实现,以Struts整合Spring进行模型控制,因此,要求开发人员熟悉数据库的基本知识,通晓MySQL数据库的特点和用法,掌握Java语言的基本知识,能熟练运用JSP进行网站开发,以及对Struts和Spring框架有所掌握。熟练使用MyEclipse开发工具,了解Tomcat服务器的工程部署。工作计划:利用一个月来学习Java语言,JSP语言,Struts及Spring框架,MySQL数据库,同时进行需求分析。利用大约一个半月的时间进行系统设计和编码。利用十天左右进行系统调试和测试。利用半个月时间完成论文编写和审定。时间安排:2008.3.1-2008.3.31 学习Java语言,JSP语言,Struts及Spring框架,MySQL数据库。2008.4.1-2008.5.20 进行系统的概要设计,详细设计,代码的编写。2008.5.21-2008.5.31 进行系统的调试与测试。2008.6.1-2008.6.15 论文的编写和审定。指导教师要求:(签字) 年 月 日教研室主任意见:(签字) 年 月 日院长意见:(签字) 年 月 日毕业设计(论文)审阅评语一、指导教师评语:指导教师签字:年 月 日毕业设计(论文)审阅评语二、评阅人评语:评阅人签字:年 月 日毕业设计(论文)答辩评语三、答辩委员会评语:四、毕业设计(论文)成绩:专业答辩组负责人签字: 年 月 日 五、答辩委员会主任单位: (签章) 答辩委员会主任职称: 答辩委员会主任签字: 年 月 日哈尔滨商业大学毕业设计(论文)摘要通用论坛BBS系统是按照MVC模式进行设计实现的,采用Tomcat作为后台服务器,以MySQL数据库作为数据服务器,使用Struts和Spring进行逻辑控制,表现层用JSP页面显示,用于在网络上为网民提供一个信息发布、获取的场所。实现了查看、发表、删除帖子功能,论坛帖子版块控制,注册用户可以修改自己的个人信息、增加好友与黑名单以及用户之间发送短信息,管理员可以对用户、帖子,版块、用户组、版块权限和用户组权限进行管理。论文从问题的提出、基本设计思想、数据的流向到具体的设计过程都做出了详细论述。关键词:BBS;论坛;主题;回复IIAbstractThe general forum BBS system is based on mode of MVC, using Tomcat as the web server. The data is stored in the MySQL database. The Struts and Spring realizes the logical control and the performance level demonstrated with the JSP page. The system is used to provide a place where people can release and gain information online. The system provide the function to look over, deliver and delete the information and the user registered can change their own information, add good friends and blacklist. The users also can transmit information between each other. The manager may to the user, the card, the sector, the user group, the sector jurisdiction and the user group jurisdiction carries on the management. The paper from the question proposed that the basic design thought that data has made the detailed elaboration flow direction to the concrete design process.Key Words:BBS;forum;topic;Reply目录摘要IAbstractII1绪论11.1课题研究的目的及意义11.2国内外研究动态11.3本文的工作22系统分析42.1可行性分析42.1.1社会可行性42.1.2技术可行性42.1.3经济可行性42.2需求分析42.2.1用户中心52.2.2主题中心52.2.3管理员功能62.2.4统计功能62.3开发工具及相关技术简介62.3.1相关工具简介62.3.2相关技术概述72.4系统的数据流图92.5用例图93总体设计113.1功能分析113.2数据库设计124详细设计与实现154.1数据库连接154.2前台显示模块154.3后台管理模块235测试与运行环境295.1系统测试295.2系统调试295.3运行环境29结论30参考文献31致谢32附录数据表3337哈尔滨商业大学毕业设计(论文)1绪论1.1课题研究的目的及意义设计的首要目的是运用已经学习到的MyEclipse工具和MySQL数据库知识自主实现一个实用的系统,使得现有知识得到更好的巩固,更加熟练的操作MyEclipse工具和MySQL数据库。同时在实现中学习到更多新的知识,能更深入掌握JSP、Java语言,了解软件开发的全过程,为以后的学习与工作打下坚实的基础。BBS(电子布告栏系统)是在网上提供交流的手段。它可以用于公告、群组讨论、社区内通信、联系、在线聊天、找工作等,利用网络实时、便捷的特点来方便人们的交流、联系和娱乐。1.2国内外研究动态进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW(World Wide Web),俗称“万维网”。所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。进入的网页通常不会只有一页,而是整个网站的内容。“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。随着网络的普及,论坛的内容越来越丰富,论坛也由此深受广大网民的喜爱,因此商业网站对论坛也重视起来,提供与网民交流的平台,同时在线技术支持也在论坛中开展起来。1.3本文的工作BBS系统就是提供给注册用户一个平台,会员用户可以通过Internet接入,登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。此类系统通常有以下四种类型的操作用户:匿名用户、普通用户、版主、管理员、超级管理员。每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。与之相应,此类系统通常应具有以下功能:用户注册、用户登录、发表文章、阅读文章、回复文章、分页查找、主题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。结合BBS论坛系统实际需要,本BBS系统采用B/S结构。论文设计开发的系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的Web平台。另外,通用系统应该具备较大的可扩展性,而Java 语言是面向对象的,面向对象编程注重程序的可扩展性,且Java 语言是跨平台执行的,JSP相对其他网页编程语言有更多的优点,所以本系统采用Java+JSP作为编程语言。2系统分析2.1可行性分析商业软件是根据客户的根本目的和需要而设计和开发的,可行性是开发的系统具有使用价值和生命力的保证。2.1.1社会可行性当前社会是一个网络化的社会,网络就在人们周围,人们从网络上获取并发布信息,而本系统正是应这一需求而产生,为企业,个人发布,获取有价值的信息提供场所。所以本系统具有社会可行性。2.1.2技术可行性本系统采用三层结构,用MySQL数据库作为后台数据库,安装和使用简单易学,方便操作;前台页面采用JSP动态页面,JSP相比ASP、PHP都有很大的优势;控制层采用Struts+Spring框架,Struts和Spring都是Java Web开发中使用的比较热门的技术。服务器采用Tomcat服务器,它是一个开源软件。开发人员在学习了这些语言或工具之后,有能力开发本系统。2.1.3经济可行性经济可行性是指软件所带来的经济效益与开发设计所需要的投资费用相比较是否适当,软件是否会给使用者带来经济效益。首先随着计算机软件和硬件技术的飞速发展,计算机软、硬件价格不断下降,设计本系统所投入的资金下降。与使用本系统为企业发布、获取信息所节省的价值相比,应用本系统带来的收益较大,经济效益可观,所以在经济上是可行的。2.2需求分析需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出1。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。在需求分析工作中,系统分析人员对用户的需求进行调查和分析,确定现有环境的特征,正确定义目标软件的特征 。因此,需求分析工作是对应用环境及其问题进行理解和分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化。通用论坛BBS系统设计实现以下功能:用户中心:包括用户注册、用户登录、用户注销、增加好友、删除好友、增加黑名单、删除黑名单、发送短信息、查看短信息、删除短信息、修改个人资料等功能。主题中心:包括主题分类(论坛版块)、查看主题、查看回复、发表主题、发表回复、对主题或回复进行搜索等功能。管理员中心:管理员对论坛进行一些基本的维护,包括对帖子的删除、置顶、设为精华帖,对用户的删除、授权,对版块的权限管理,对用户组及用户组的权限的管理等2。统计功能:对论坛的相关参数进行统计。2.2.1用户中心当用户进入网站首页时,会有一个登录窗口,已经注册的会员用户可以在这个窗口中登录。没有登录的用户只能查看主题,不能发表主题或评论。登录之后,用户就可以发表主题或回复;查看或修改自己个人信息,包括修改用户头像,可以选择自己喜欢的图片作为自己的头像;可以给好友发送短信息,查看或删除自己收到的信息;用户可以在好友与黑名单里设置自己的关系网,让用户与自己的好友交流更加方便,也可在让用户不接收不愿意见到的人的信息。没有注册的用户可以在登录窗口中点击注册超链接进入新用户注册页面,输入用户名、密码、密码提示问题、提示问题答案及安全邮箱,即可注册成为网站的会员。密码提示问题是为找密码设置的,当用户忘记密码或密码丢失后可以通过输入提示问题答案来找回密码,如果用户回答正确,系统会自动发送一封邮件到用户的安全邮箱里,提示用户修改密码。2.2.2主题中心系统有版块,主题和回复,其中版块是对主题的分类,回复是在主题下发表的,是用户对主题的评论。当用户进入首页时会显示论坛的所有版块及每个版块下的主题数,帖子总数,最后发表主题的用户、时间。进入版块之后显示该版块下的主题及该主题下的回复数,点击数,最后发表评论的用户、时间。点击主题名进入主题页面,该页面有主题内容,发表该主题的用户的用户名、积分、用户组、注册时间,该主题下的回复及发表回复的用户的个人信息。已登录用户可以在版块下发表主题,在主题下发表回复,还可以按关键字对主题或回复进行搜索,并支持模糊查询。匿名用户只能查看主题内容,对主题或回复进行搜索,但不能发表主题,不能发表回复。2.2.3管理员功能管理员作为一个特殊的用户,除了拥有普通用户拥有的功能外,还可以修改用户权限,管理用户组,管理版面,设置版主,控制用户组权限。版主作为权限最少的管理者只能对自己所管理的版面的主题进行删除、置顶,设置精华贴,屏蔽用户的回复,编辑版面说明等。2.2.4统计功能显示论坛当前注册总人数、当前帖子总数、论坛点击总数、当前在线人数,会员人数以及游客人数。用户表现积分排行,调动用户积极性。用户每次上线、发表主题或回复都会得到相应的积分,并以此来体现用户的活跃程度。系统会对主题按点击数进行排序,对版面按主题数进行排序,帖子点击统计,方便了解热点话题。本日版面排行榜,本日作者排行榜。2.3开发工具及相关技术简介本系统采用的工具有JDK 1.5、Tomcat 5.0、MyEclipse 5.5、MySQL5.0,使用的技术有Java、Servlet、JSP、JavaScript、XML、Struts、Spring。2.3.1相关工具简介(1) JDK 1.5.0JDK是Sun 公司Java应用程序和组件的开发环境,是编译和测试工具,也是提供java程序的Java虚拟机平台,是调试和运行JSP所不可缺少的工具。本系统采用JDK1.5.0版本3。(2) Tomcat 5.0Tomcat是开源的servlet和JSP容器(Sun官方推荐容器),它是Jakarta项目中一个重要的组成,由Apache、Sun和其他一些公司及个人开发。Tomcat内部实现了Servlet和JSP引擎,而且扩展了一些应用服务器的功能,例如JNDI、数据库连接池、用户事务处理等。目Tomcat被广泛地应用于中小规模的Java web应用中4。(3) Eclipse/MyEclipse 5.5Eclipse 是基于Java 的开放源代码的可扩展开发平台,Eclipse平台提供软件开发工具的集成服务,所有开发工具(包括JDE和PDE)都是用插件的形式提供的。这种设计使得Eclipse具有开放式可扩充的结构5。MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的Java领域中,MyEclipse是一个使用非常广泛的工具。MyEclipse是Eclipse软件的一个插件,Eclipse软件是免费的,但MyEclipse不是一个完全免费的产品,需要购买。(4) MySQL 5.0MySQL数据库是一个较小型的数据库系统,同时是一个多用户、多线程强壮的SQL数据库服务器,并提供免费的安装软件6。由于它对平台环境要求不高,安装方便,适合中小型系统的开发。2.3.2相关技术概述(1) Java语言概述Java编程语言是一种通用、并发、基于类且面向对象的语言。Java编程语言与C和C+相关,但是在组织方式上有差别,Java具有C和C+遗漏的许多优点,同时兼有其他语言包括的一些思想。它旨在成为一种生产语言,而不是一种研究语言,并且正是如此7。(2) Servlet技术概述Servlet技术主要是为了使用Web上的HTTP协议而设计的。Servlet是在Web服务器上运行的程序,Java Servlet可以用于处理客户请求或生成动态Web网页。Tomcat是支持Java Servlet和JSP的Web服务器8。(3) JSP技术概述JSP (Java Server Pages)是由Sun 公司倡导,许多公司参与,共同建立人一种动态网页技术标准,JSP技术是在Servlet技术基础上发展起来的。它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。(4) JavaScript技术概述JavaScript是一种基于对象(Object)和事件驱动(Event Driver)并具有安全性能的脚本语言,它所能提供的功能非常强大。JavaScript是一种简洁的面向对象的描述语言,是专门用来开发Internet客户端和服务器端的应用程序,它可以被轻易的嵌入到HTML文件中,使用JavaScript浏览器可以回应使用者的需求事件而不用通过网络来回传资料,这样,使用者的资料就可以直接被客户端应用程序所处理,它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择9(5) XML技术概述从1998年2月W3C正式推出XML(eXtensible Markup Language的缩写,意为可扩展的标记语言)后短短的三年间,XML以惊人的速度在广大的设计人员中传播开来。随着Internet的飞速发展,HTML开始对更多的网络设计要求显露出疲态。XML也就是在这种大环境下孕育而生的10。(6) Struts 概述Struts使用Model2体系结构。 ActionServlet 负责控制流程。另外一个Struts类,Action,负责存取业务逻辑类。当ActionServlet类从窗口中获得一个请求时,它使用请求的URI(也称为路径)来决定是哪一个Action来处理该请求。一个Action可以检验输入的合法性、通过业务逻辑层来读取数据库或者其他数据服务中的信息。要校验输入的合法性或者是使用该输入来修改数据库中的内容,Action需要用户提交给它处理数据。为了避免每一个Action都要处理从请求中输入数据的操作,Struts将这些输入数据绑定到JavaBean中。每一个这样的Bean都是Struts中ActionForm类的子类。ActionServlet通过查看请求的路径就可以决定哪一个ActionForm用来包含输入数据。这些ActionFormod 类都应该是org.apache.struts.action.ActionForm的子类。每一个HTTP请求都必须有一个HTTP响应。一般而言,Struts自已并不生成响应,而是将请求转发到其他的资源上去例如JSP页面。Struts提供一个名为ActionForward的类来将逻辑名保存到每个面的路径。当业务逻辑部分已经执行完成后,Action会选择一个ActionForward,并且将它返回给每个总控servlet。总控Servlet 会使用在该Action Forward中存储的物理路径来调用对应的页面来完成HTTP响应部分。Struts将所有这些方面的细节信息都定义在ActionMapping对象中。每一个ActionMapping对象都对应于一个指定的路径。当该路径被请求时,总控servlet会获取对应的ActionMapp world wide webing对象。该对象会告诉总控servlet该使用哪些Action,ActionForm和ActionForward对象。全部有关 Action,ActionForm,ActionForward以及ActionMapping的信息和其他的配置信息都在Struts-config.xml文件中声明。ActionServlet在启动的时候会读取该文件,并且创建包含所有这些配置对象的数据库。在运行时刻,Struts会使用这些对象,而不是文件本身11。 (7) Spring 概述Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring提供了一种轻量级的解决方案,用于建立“快装式企业应用”。在此基础上,Spring还提供了包括声明式事务管理,RMI或Web Service 远程访问业务逻辑,以及可以多种方法进行的持久化数据库的解决方案。另外,Spring 还有一个全功能的MVC柜架,并能透明地把AOP集成到用户的软件中去12。2.4系统的数据流图数据流图即DFD(Data Flow Diagram)图。是用于分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。BBS系统的第一层数据流图如图2-1所示,描述系统由哪几部分组成,各部分之间有什么联系13。管理员用户BBS系统管理用户管理版块管理主题管理用户组登录发送短信发表回复发表主题注册图2-1 BBS系统的数据流图(第一层)注销登录管理用户组权限管理版块权限增加好友删除好友增加黑名单删除黑名单2.5用例图用例是系统、子系统或类和外部的参与者(actor)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约。在UML中,用例用一个椭圆表示,用例名往往用动宾结构或主谓结构命名14。参与者是指用户在系统中的扮演的角色,其图形化表示是一个小人。BBS系统的用例有用户注册、登录、注销、浏览主题、发表主题、发表回复、查看短信、发送短信息、删除短信;管理员管理用户、管理主题、管理用户组、版块权限、管理用户组权限。用例图如图2-2所示。注册登录注销浏览主题发表回复发表主题发送短信查看短信删除短信管理用户管理版块管理主题管理用户组管理用户组权限图2-2 BBS系统的用例图管理员用户管理版块权限增加好友删除好友增加黑名单删除黑名单修改个人资料3总体设计3.1功能分析后台管理模块BBS系统功能模块前台显示模块图3-1 BBS系统功能模块图BBS系统分为前台和后台两个模块。系统的功能模块图如图3-1所示。前台模块的使用对象包括了所有用户(管理员、用户、游客),提供的功能包括注册帐号、用户登录、用户注销、浏览文章、发表新主题、回复主题、增加好友、删除好友、增加黑名单、删除黑名单、查看短信息、发送短信息、删除短信息、修改个人信息。如图3-2所示。前台显示模块发表主题发表回复删除短信息用户注销浏览主题用户登录用户注册增加黑名单修改个人信息增加好友删除好友删除黑名单发送短信息查看短信息图3-2 BBS系统前台功能模块图后台模块的使用对象为管理人员(版主、管理员、超级管理员),提供的功能包括管理用户、管理版块、管理主题、管理用户组、功能权限管理、版块权限管理。后台功能模块如图3-3所示。后台管理模块版块管理用户管理主题管理用户组管理功能权限管理版块权限管理查询版块新增版块删除版块修改用户删除用户修改主题属性删除主题增加用户组查询用户组删除用户组新增版块权限查询功能权限删除功能权限新增功能权限查询版块权限删除版块权限图3-3 BBS后台功能模块图3.2数据库设计根据前面的需求描述,本系统中可以抽象出来的数据模型有:用户(user)、模块(module)、主题(topic)、回复(retopic)、好友关系(friends)、用户短信息(note)、用户组(groud)、功能(function)、功能权限(group_has_function)、模块权限(modright)模块版主(user_has_module)、积分(integral)。根据需求分析,可设计如下表:(1) 用户信息表:用户ID、用户名、密码、E-mail地址、密码提示问题、提示问题答案、是否公开注册信息、真实姓名、性别、出生年月日、联系电话、详细地址、邮政编码、用户签名档、用户头像、QQ、注册时间、用户组、用户积分、用户登录次数、最后登录时间、发表的帖子数、被推荐的精华帖数、用户最后登录的IP(2) 论坛模块表:模块ID、模块名、上级模块ID、模块介绍、模块一天的总主题数、模块主题总数、模块回复总数、模块状态(1普通模块、2会员论坛、3嘉宾论坛、4加密论坛、5关闭论坛)、是否审核(false否、true是)、加密论坛的密码、模块创建时间(3) 论坛主题表:主题ID、主题名、主题内容、主题发布者、所属模块、主题状态(0表示在审核中、1表示审核通过、2表示草稿)、访问限制积分、点击数、是否为精华帖子、是否置顶、被创建时间(4) 主题回复表:回复帖子ID、回复主题ID、回复标题、回复内容、回复者ID、回复时间、是否屏蔽(false否、true是)(5) 关系表:好友ID、用户名、申请的好友用户名,好友标记(0黑名单、1好友、2未确认好友)(6) 用户短信息表:短信ID、发信者、收信者、短信标题、短信内容、发信时间、发信标记(0已删除1已发送2草稿)、收信标记(0已删除、1已读,2未读)(7) 用户组表:组ID、用户组名、组描述(8) 功能表:功能ID、功能名、功能信息(9) 功能权限表:用户组ID、功能ID(10) 模块权限表:权限ID、用户组名(外键)、访问模块ID,访问权限(11) 模块版主表:用户ID、模块ID(12) 积分表:积分ID、积分、等级由于篇幅所限,关于数据库中的数据表的字段信息请参见附录。表之间的实体关系图(ERD)如图3-4所示。图3-4 BBS系统的ERD图4详细设计与实现4.1数据库连接系统采用JSPStruts+Spring架构,数据库采用MySQL,使用Spring的配置文件beans.xml连接数据库,其连接数据库的配置信息如下:使用注入Dao的形式进行数据库操作,在Dao中实现对数据表的增加、删除、查询、修改操作,Dao不进行其他的逻辑操作。前台JSP页面产生的请求交由对应的Action进行逻辑操作,当其要对数据库进行操作时,通过WebApplicationContext 对象获取Dao,将要操作的对象的相关参数传给Dao即可。这就是对接口编程,使各个模块之间低耦合,有利于程序的可扩展性。4.2前台显示模块前台显示模块包括用户的一些功能,具体的可分为用户注册、用户登录、用户注销、修改个人信息、增加好友、删除好友、增加黑名单、删除黑名单、查看短信息、发送短信息、删除短信息、查看版面、查看主题、查看回复、发表主题和发表回复等功能。由于主题是在版块下存在的,所以在版块下的任何地方都可以发表主题,而回复只能是针对主题进行回复,所以必须在主题下才能发表回复,也就是在主题页面下才能点击发表回复。现将部分功能说明如下:(1) 用户注册:新用户在login.jsp页面中输入用户名,密码,密码提示问题、提示问题答案、安全邮箱,点击提交按钮,数据提交到LoginAction.java中进行处理,在LoginAction.java中,如果用户名已经有人使用则返回注册页面,否则提示用户注册成功,并跳转到登录页面entry.jsp。LoginAction.java的login方法的代码如下:public ActionForward login(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();UserDao userDao = (UserDao)ctx.getBean(userDao);String userName = request.getParameter(username);String pwd = request.getParameter(pwd1);String email = request.getParameter(email);String question = request.getParameter(question);String answer = request.getParameter(answer);int isOpen = Integer.parseInt(request.getParameter(isopen);String realName = request.getParameter(realname);int sex=Integer.parseInt(request.getParameter(sex);String year=request.getParameter(year);String month=request.getParameter(month);String day=request.getParameter(day);String birthDay = year+month+day;String tel=request.getParameter(tel);String address=request.getParameter(address);String postalcode=request.getParameter(postalcode);String qq=request.getParameter(qq);String idioGraph=request.getParameter(idioGraph); User user = new User();user.setName(userName);user.setPwd(pwd);user.setEmail(email);user.setQuestion(question);user.setAnswer(answer);user.setIsOpen(isOpen);user.setRealName(realName);user.setSex(sex);user.setBirthDay(birthDay);user.setTel(tel);user.setRegTime(new Date();user.setLastTime(new Date();user.setAddress(address);user.setPostalcode(postalcode);user.setQq(qq);user.setIdioGraph(idioGraph);user.setGroupId(4);int i = userDao.insertUser(user);if(i=-1)request.setAttribute(returnInfo, 用户名已存在!);return mapping.findForward(login);else if(i=1)request.getSession().setAttribute(returnInfo, 注册成功,请登录!);return mapping.findForward(entry);else request.getSession().setAttribute(returnInfo, 注册失败,请重新注册!);return mapping.findForward(defeat);public ActionForward loginOut(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(this.servlet.getServletContext();UserDao userDao = (UserDao)ctx.getBean(userDao);User user=(User)request.getSession().getAttribute(user);Date date=new Date();user.setLastTime(date);userDao.updateUser(user);request.getSession().removeAttribute(user); return mapping.findForward(bbs);(2) 用户登录:用户在有帐号的前提下,可以在登录页面entry.jsp或主页bbs.jsp中输入用户名和密码点击登录,系统将用户名和密码提交到LoginAction.java中的entry()方法,将用户提交的用户名和密码再转交给后台的Dao进行查询,如果有这样的一条记录存在则登录成功,将用户的个人信息保存在浏览器端的Session中,否则返回登录页面,并提示用户名或密码错误。LoginAction.java的entry方法的代码如下:public ActionForward entry(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) WebApp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东汕头市中心医院招聘编外人员57人模拟试卷附答案详解(典型题)
- 2025安徽宿州学院专职辅导员招聘12人模拟试卷附答案详解(突破训练)
- 2025年杭州拱墅区朝晖街道社区卫生服务中心招聘编外聘用人员1人考前自测高频考点模拟试题带答案详解
- 2025年追风筝的人考试题及答案
- 2025年商务专业考试试题及答案
- 2025年福建福路通城乡发展集团有限公司招聘考前自测高频考点模拟试题及答案详解(必刷)
- 2025年上半年广东广州开发区黄埔区招聘事业单位人员18名考前自测高频考点模拟试题及完整答案详解1套
- 四川省自贡市所属事业单位2025年下半年公开考试招聘工作人员(119人)考试模拟试题及答案解析
- 2025河南新乡某国有企业招聘人力资源部经理1名考前自测高频考点模拟试题及答案详解参考
- 2025年春季内蒙古包头市中心医院引进高层次和紧缺急需人才招聘29人考前自测高频考点模拟试题附答案详解(完整版)
- 生猪定点屠宰场申请书
- 2025年《公共基础知识》试题库(附答案)
- 高二《复活》课文解读
- 大圆满前行考试题及答案
- 【衢州】2025年浙江衢州市柯城区属事业单位招聘工作人员17人笔试历年典型考题及考点剖析附带答案详解
- 钢构农业大棚建设项目可行性研究报告
- 非货币支付管理办法
- 湖北省武汉2025-2026学年度高一上学期开学分班考试-英语(解析版)
- 2025年宜昌专业技术人员公需科目培训考试题及答案
- 临床康复一体化讲课件
- 重症肺炎集束化治疗专题报告
评论
0/150
提交评论