基于J2EE的论坛系统.doc_第1页
基于J2EE的论坛系统.doc_第2页
基于J2EE的论坛系统.doc_第3页
基于J2EE的论坛系统.doc_第4页
基于J2EE的论坛系统.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如需要程序请联系qq270061727 第0页基于J2EE的论坛系统摘 要随着网络的普及,网上论坛的热潮开始兴起。网上论坛是公告版的一种具体形式,它主要是网站管理员通过在互联网上开设板块,网民通过网络浏览相关信息,并可以在网上进行评论,采用多种方式进行交流的模式。本文所设计和开发的网上论坛系统采用的技术方案为JSP+Tomcat+MySql,即使用JSP作为Web服务器端开发语言,采用Tomcat作为Web服务器和JSP引擎,采用MySql作为后台网络数据库管理系统,实现了网上论坛系统的构建。本文首先介绍了JSP和Java等相关技术,针对网上论坛的特点和系统的功能要求,对网站作出整体规化。与其它论坛网站类似,本论坛系统由前台系统和后台管理系统组成。前台系统是面向用户的网页界面,它是用户直接访问和进行交流活动的地方。用户可以在网上进行注册、登录、发帖、浏览、回帖、查看个人信息等操作。后台管理系统是网站所有者利用计算机对论坛网站各种功能进行管理、控制的系统。由于Web服务器、数据库服务器多数情况下不在“本地”,所以后台管理系统通常执行的是远程控制管理。该网上论坛后台管理的功能主要实现板块和用户的管理。该系统是基于B/S三层数据库应用体系结构。B/S结构简化了客户机的工作,客户机上只需安装浏览器即可。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。关键词:网上论坛;JSP ;Java ;B/S结构Management System Of Online BBSAbstractKeywords:Online Supermarket ;JSP ;Java ;B / S structure 1 绪论1.1 项目背景大约是从1991年开始,国内开始了第一个BBS站。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,BBS才逐渐被人们所认识。1996年更是以惊人的速度发展起来。国内的BBS站,按其性质划分,可以分为2种:一种是商业BBS站,如新华龙讯网;另一种是业余BBS站,如天堂资讯站。由于使用商业BBS站要交纳一笔费用,而商业站所能提供的服务与业余站相比,并没有什么优势,所以其用户数量不多。多数业余BBS站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络China FidoNet(中国惠多网)。于是,各地的用户都可以通过本地的业余BBS站与远在异地的网友互通信息。这种跨地域电子邮件交流正是商业站无法与业余站相抗衡的根本因素。由于业余BBS站拥有这种优势,所以使用者都更乐意加入。这里“业余”2字,并不是代表这种类型的BBS站的服务和技术水平是业余的,而是指这类BBS站的性质。一般BBS站都是由志愿者开发的。他们付出的不仅是金钱,更多的是精力。其目的是为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平。国内的BBS站,单线站还占大多数。随着计算机的普及,特别是调制解调器的大量使用,BBS的活动将会进一步高涨。但是,随之而来的拨号难和抢线难的问题将会加剧。尽管BBS站台的数量在不断增长,但这种增长的幅度总也赶不上用户群的增长。许多人同时拨号一个站台,不可避免地发生冲突。每回要拨上几十次乃至上百次才能成功连上一个BBS站的状况已经成为困扰今日中国BBS用户的一个难题。随着BBS活动的深入,国内已经出现了一些多线站,一次可以允许2人以上同时访问。 BBS的发展过程中,也出现了一些问题。由于国内使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。 1999年是中国网络的发展年。但是,我们应该清醒地认识到,目前一些BBS站并没有走上“简单、易用”这一层次。包括一些厂商架设的BBS站,实用性还需要加强。今后,国内的BBS站将向着个性化和专业化的方向发展。 1.2 项目开发的意义BBS的英文全称是Bulletin Board System,翻译为中文就是“电子公告板”。BBS最早是用来公布股市价格等类信息的,当时BBS连文件传输的功能都没有,而且只能在苹果计算机上运行。早期的BBS与一般街头和校园内的公告板性质相同,只不过是通过电脑来传播或获得消息而已。一直到个人计算机开始普及之后,有些人尝试将苹果计算机上的BBS转移到个人计算机上,BBS才开始渐渐普及开来。近些年来,由于爱好者们的努力,BBS的功能得到了很大的扩充。 目前,通过BBS系统可随时取得国际最新的软件及信息,也可以通过BBS系统来和别人讨论计算机软件、硬件、Internet、多媒体、程序设计以及医学等等各种有趣的话题,更可以利用BBS系统来刊登一些“征友”、“廉价转让”及“公司产品”等启事,而且这个园地就在你我的身旁。只要您拥有1台计算机、1只调制解调器和1条电话线,就能够进入这个“超时代”的领域,进而去享用它无比的威力!1.3 研究的主要内容在开发本网上论坛系统过程中,作者深入的研究了论坛系统相关的各种理论知识与技术手段,主要包括:论坛系统的基本知识、论坛系统的安全技术、建立论坛系统网站的基本流程和所需的各种技术等。在此过程中,研究网页制作工具Dreamweaver,以及图像生成工具Photoshop的使用方法与技巧,深入研究了Java、JSP、Servlet和JDBC等相关技术理论知识和应用技巧,同时实现了如何用JSP技术访问后台数据库、如何利用MySql对数据库管理和维护等。论坛系统的发展对传统的Web技术提出了强有力的挑战,以英特网为基础的论坛系统由于安全性、诚信度、交易平台等原因,要求Web技术提出足够的复杂度和灵活性以适应论坛系统的需求。目前国内的论坛网站大部分都是用ASP来编写的,但ASP由它的局限性。APS的程序是解释运行的,在多个客户访问的情况下会变得比较慢,而且网站服务器的负荷也很重,且只能运行在微软的操作系统和服务器上,另外不安全性也是需要注意的问题。而JSP拥有JAVA语言“一次编写,多处运行”的特点,程序执行效率高,具有强大的服务器端组件和数据库支持。因此JSP的速度远远大于ASP,而且可以跨操作系统,安全机制和性能均大于ASP。综合各方变得考虑,决定采用Java、JSP、Servlet和JDBC等技术来开发网上论坛。作为研究网上论坛系统的案例,其最大的特点在于程序的通用性,因为不同的论坛系统之间,功能模块存在很大的相似性,例如:模块管理、用户信息、访问数据库等等。因此,充分利用JSP、Servlet和JDBC等技术,对设计功能强大的论坛系统具有理论与现实的意义。2 技术跟踪2.1 Java技术Java技术是由美国Sun公司倡导和推出的,是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。Java技术包括Java语言和Java MediaAPIs、SecurityAPIs、ManagementAPIs、Java Applet、Java RMI、Java Beans、Java OS、Java Servlet、JDBC、JNDI、Enterprise JavaBeans等。随着Java Servlet的出现和JSP的渐渐成熟,让Java正式的走向了Web开发技术的舞台。Java以其强大的移植能力,多线程处理和网络处理能力已成为研究人员,开发人员瞩目的焦点,它与Web技术的有机结合尤其适宜进行网络计算和动态多媒体信息的开发处理。Java技术带来的是一场革命,它是第一个真正独立于平台的语言,基于Java语言开发的软件可以实现“一次设计,到处运行”,即Java程序不经改变即可部署到任何运行Java虚拟机的计算机结构和操作系统,使得整个Web世界发生了翻天覆地的变化1。目前,Sun公司已经将Java技术分成了4大类:服务器使用的企业版(J2EE)、台式电脑使用的标准版(J2SE)、小型设备使用的微型版(J2ME)以及在欧洲销售的手机中使用的具有智能卡和标识标签功能的Java Card。2.2 JavaBeanJavaBean是描述Java的软件组件模型,JavaBean就是一个Java类,是一种Java语言写成的可重用软件组件,它在内部有接口或有与其相关的属性,以便不同人在不同时间开发的bean可以询问和集成。JavaBean分为两类:可视化的JavaBean和非可视化的JavaBean。传统的JavaBean应用在可视化界面,例如:利用JavaBean编写可重用的软件组件如按钮、文本框等。非可视化的JavaBean与JSP结合起来使用,在JSP程序中常用JavaBean来封装事务逻辑(功能实现部分)如数据运算、数据处理、数据库操作等,然后在JSP网页中调用,而JSP文本着重的是网页界面设计,实现了业务逻辑和前台显示部分的分离,这样不仅使JSP网页变得清晰,而且可以节省软件开发时间和降低以后维护的难度,使系统变得健壮和灵活。JavaBean的任务就是:“Write once,run anywhere,reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用” 2。2.3 Java ServletServlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。Servlet是使用Java Servlet应用程序设计接口及相关类和方法的Java程序,它在Web服务器上或应用服务器上运行并扩展了该服务器的能力。Java Servlet对于Web服务器就好像Java Applet对于Web浏览器。Applet装入Web浏览器并在Web浏览器内执行,而Servlet则是装入Web服务器并在Web服务器内执行。Java Servlet API定义了Servlet和服务器之间的一个标准接口,这使得Servlet具有跨服务器平台的特性。Servlet通过创建一个框架扩展服务器的能力,采用请求-响应模式提供Web服务。当客户机发送请求至服务器时,服务器将请求信息发送给Servlet,Servlet生成响应内容并将其传给Server,然后再由Server将响应返回给客户端。与传统的CGI(Common Gateway Interface公用网关接口)和许多其他类似CGI的技术相比,Java Servlet有许多优点。在Servlet中,每个请求由一个轻量级的Java线程处理,如果处理请求的是N个线程,只需要一份Servlet类代码,具有很高的效率;Servlet提供了大量的实用工具例程,更容易使用;许多使用传统CGI程序很难完成的任务都可以由Servlet轻松地完成,功能更强大;Servlet用Java编写,几乎所有的主流服务器都直接或通过插件支持Servlet,具有更好的可移植性。在未来的技术发展过程中,Servlet有可能彻底取代CGI。Java Servlet是JSP技术的基础,大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。2.4 JDBCJDBC是Java的开发者Sun公司制定的Java数据库连接(JavaDataBase Connectivity)技术的简称。它是Sun公司联合数据库开发商开发出来的独立于DBMS的API(Application Programming Interface,应用程序接口),它为Java开发者使用各种数据库提供了统一的API。JDBC的功能和Microsoft的ODBC(Open DataBase Connectivity,开放式数据库连接)类似,但与ODBC还是有一定的差别,JDBC是一个真正跨平台的API,而ODBC是一个C语言程序接口,必须在本地执行。大多数ODBC驱动程序需要安装一系列的代码模块在客户机上,而JDBC可以直接在本地或在远程服务器上执行,且JDBC的维护和部署工作更简单。JDBC提供了四种连接数据库的驱动程序方法。第一种是JDBC-ODBC桥驱动程序。第二种是本机代码和Java驱动程序。第三种是纯Java驱动程序。第四种是本机协议Java驱动程序。利用JDBC实现数据库的操作一般可分为以下几个步骤。(1)加载JDBC驱动程序。(2)获取连接接口。(3)创建Statement对象。(4)执行Statement对象。(5)查看返回的结果集。(6)关闭结果集对象。(7)关闭Statement对象。(8)关闭连接接口。2.5 MySQL数据库管理系统网络数据库,就是指把数据库技术引入到计算机网络系统中,借助于网络技术将存储在数据库中的大量信息及时发布出去,实现用户与数据库的实时动态交互。常用的网络数据库管理系统有SQL Server、Oracle、IBMDB2、MySQL、Sybase及Access等。其中MySQL由瑞典的T.c.X公司负责开发和维护,是一个快速、多线程、多用户和强壮的SQL数据库服务器。SQL是世界上最流行的标准化的数据库语言。MySQL是具有客户机/服务器体系结构的分布式数据库管理系统,是完全网络化的跨平台关系型数据库系统,是目前运行速度较快的SQL语言数据库。MySQL具有功能强,使用简便、管理方便、运行速度快、安全可靠性强等优点,总结其主要特点有(1)完全支持ISO8859-1标准。(2)同时访问数据库的用户数量不受限制。(3)可以保存超过5千万条记录,即处理大型数据。(4)完全支持多线程,适于多CPU使用。(5)提供多种语言的API接口,以及为windows等操作系统提供ODBC接口。(6)支持多种平台。在Unix系统上该软件支持多线程运行方式,从而能获得相当好的性能。在Windows NT系统上以系统服务方式运行,或者在Windows95/98系统上以普通进程方式运行。(7)开放式的分发,可以获得帮助且源代码公开。(8)提供多样的数据类型,支持多种语言。(9)支持灵活和安全的权限设置、密码加密等。(10)无内存泄露3。2.6 JSP 技术JSP是Java Server Page(Java服务器页面)的简称,它是由SunMicrosystems公司倡导,多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页。JSP继承了Java语言的特点,允许Web开发人员开发和维护与平台无关、信息丰富、动态的Web页面,它能使Web开发人员轻易搭建网络平台,建立起功能强大的Web网站。JSP可以把用户界面从内容层次中分离出来,使Web开发人员不必修改底层的动态内容,就可以修改整体的页面布局。JSP在传统的网页HTML文件中加入Java程序片断(Scriptlet)和JSP标记,构成JSP页面(也可称为JSP文件)。Web服务器在遇到访问JSP页面的请求时,首先执行其中的程序脚本,然后将执行结果以HTML格式返回给客户,JSP页面中的程序脚本可以操作数据库、重定向网页、发送电子邮件等。所有程序的执行都是在服务器端完成的,通过网络传送给客户端的仅是得到的结果,因此对客户浏览器的要求很低。绝大多数JSP页面可依赖于可重用、跨平台的组件(JavaBeans或Enterprise JavaBean)来执行Web应用程序中较复杂的处理,Web开发人员能够交换和共享一些执行普通操作的组件。这种基于组件的开发方法可以加快Web应用程序的整体开发进度,并大大降低Web应用的开发成本。JSP的主要技术特点如下:(1)一次编写,随处运行JSP是以Java语言作为基础的,它继承了Java语言的特点,主要运行在操作系统的JVM(Java Virtual Machine,Java虚拟机)上,能够运行JVM的操作系统就能运行JSP,如Windows系列、Linux、Unix、AIX等。(2)有统一的技术标准JSP是由Sun公司倡导、多家公司参与一起建立的一种动态网页技术标准,获得了大多数厂商的支持。(3)自由扩展的JSP标签JSP可以让Web开发人员自由扩展JSP标签,Web开发人员还能自定义标签库,并能利用XML的强大功能。(4)执行性能高只需将JSP编译一次使之成为Servlet文件,当有相同的客户请求时,JSP服务器将产生一个该Servlet文件的一个线程来响应,而不是重新编译JSP文件,这样就大大提高了Web服务器端的响应速度。(5)开发工具多而强大目前市面上有很多优秀的Java开发工具,如JBuilder、Eclipse等,开发JSP页面可以借助这些开发工具,高效地编写JSP代码5。2.7 JSP的开发模式JSP规范提出了两种用JSP技术建立应用程序的方式,这两种方式分别称作JSP Model 1和JSP Model 2,如图1和图2所示。图2.1是Model1的工作模式图2.2 是Model2的工作模式Model1体系结构把所有的代码都放在JSP中或抽取部分业务逻辑代码放于JavaBean中。这样做的好处是简单、开发快、易于实现。缺点是JSP页面中存在着大量Java代码,整个JSP页面显得混乱,可读性差,难以维护,代码重用性低,还必须另外添加用于控制业务流程的代码。Model1体系十分适合简单应用的需要,它却不能满足复杂的大型应用程序的实现。Model 2体系结构是一种把JSP与servlets联合使用来实现动态内容服务的方法。用JSP生成表达层的内容,让servlets完成深层次的处理任务。servlets充当控制者的角色,负责完成接受请求,根据请求改变模型中的数据,在数据改变后,通知相关的视图进行刷新。Model 2体系的优点是JSP网页专门用于表现数据而无需进行其他操作,使得JSP页面没有或只含很少的Java代码,使得页面清晰,提高了可读性,便于维护。Model2实现了业务逻辑、表示输出和请求处理之间的分离,项目越复杂,使用Model 2体系结构的好处就越大6。2.8 JSP与其他技术的比较JSP与ASP,PHP均为动态网页开发技术。三者都提供在HTML代码中混合某种程序代码、有语言引擎解释执行程序代码的能力。在ASP、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通HTML页面只依赖于Web服务器,而ASP、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP、PHP、JSP三者都是面向服务器的技术,客户端浏览器不需要任何附加的软件支持。但JSP代码被编译成Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生,因此采用JSP技术的页面执行速度较快。从应用范围来看,ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统,只能执行于微软的服务器产品,IIS(InternetInformation Server)和PWS(Personal Web Server)上。在UNIX下也有ChiliSoft的组件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的群组合来扩充,在UNIX的COM实现起来非常困难。PHP可在Windows,UNIX,Linux的Web服务器上正常运行,还支持IIS,Apache等一般的Web服务器。用户更换平台时,无需变换PHP代码,可即拿即用。JSP与PHP类似,几乎可以执行于所有平台,如Windows NT、Linux、UNIX。在Windows NT下IIS通过一个外加服务器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在Windows NT,UNIX和Linux上,因此JSP有更广泛的执行平台。虽然现在WNT操作系统占了很大的市场份额,但是在服务器方面,UNIX的优势仍然很大,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合于一些小型的商业站点。首先,PHP缺乏规模支持;其次,它缺乏多层结构支持。1、JSP的强势(1)一次编写到处到处运行(2)系统多平台支持(3)强大的可伸缩性(4)多样化和功能强大的开发工具支持2、JSP的弱势(1)与ASP一样,Java的一些优势正是它的致命问题所在,正是由于为了跨平台的功能,为了极度的伸缩能力,所以增加了产品的复杂性。(2)Java的运行速度使用class常驻内存来完成的,所以在一些情况下有些“最低性价比”了。在提及的三种技术中,JSP应该是未来发展的趋势,尤其是电子商务类的网站,多采用JSP,世界上一些大的电子商务解决方案提供商都采用JSP/Servelet7。由于考虑到JSP的先进性和普遍性,本次毕业设计选用JSP作为主要开发工具来实现网上超市。2.9 MVC模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。MVC设计模式的思想是把B/S应用系统中的各个部件分离,减少部件间的耦合度,以方便系统的开发、维护。1、模型(Model)模型是应用程序的主体部分。它表示业务数据,或者业务逻辑。2、视图(View)视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。3、控制器(controller)控制器是根据用户的输入,控制用户界面数据显示和更新model对象状态。Model 2在一定程度上实现了MVC8。3 可行性研究 可行性研究(Feasibility Study)是为了弄清所定义的项目是不是可能实现和值得进行。研究的过程,实际上是一次大大简化了的系统分析和系统设计的过程。也就是说在投入大量资金前研究成功的可能性,减小所冒的风险。下面从四个方面分析本系统的可行性:3.1 经济可行性 由于目前我国互联网事业蓬勃发展,网上论坛在国内呈现越演越烈之势,企业的商务网站要想以最低的投入成本获得更高的商业利润,必须开发一个易于管理、维护费用低廉、界面友好、安全可靠的论坛系统。因此JSP的开发简易性、灵活性尤其是经济方面可行迎合了这一开发前景。3.2 技术可行性本系统采用MySQL进行后台数据库的管理、操作和维护,用JSP、Java进行前台界面设计、与后台数据库进行连接。完成数据的添加、删除、查询、修改等功能。由于MySQL和JSP、Java强大的数据库开发功能、方便快捷的数据库设计功能、使用灵活、界面美观、开发周期短,为此,说明在技术方面可行。3.3 运行可行性此系统完全独立的运行在操作系统平台上,不与其他任何任务想矛盾。而且本系统设计清晰,有良好的用户界面,操作简单,有一定的异常处理机制和提示信息,新用户容易上手,因此运行方面可行。3.4 法律可行性本系统没有违反国家相关法律,法律方面可行。4 网上论坛系统的分析与设计软件需求分析4是软件开发期的第一个阶段,也是关系到软件开发成败的关键步骤。准确、完整和规范化的软件需求是软件开发成功的关键。它的重要性在于让用户完全清楚对软件系统的确切要求,它不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作。也就是对目标系统提出完整、准确、清晰、具体的要求。反复的调查和研究,了解数据库的组织的详细情况,了解个部门的业务流程等系统需求,它对于设计好概念模型是至关重要的。一个好的管理系统可以将我们的管理员从繁重的工作中解脱出来,使工作更轻松。而需求分析的好坏直接影响到系统设计的好坏。4.1 系统设计目标网上论坛系统分前台管理和后台管理。前台管理包括,游客(注册,浏览论坛)用户(浏览论坛,查询个人信息,查询本用户发表的主题帖,查询本用户发表的回帖,发表主题,发表回复)版主(浏览论坛,查询个人信息,查询本用户发表的主题帖,查询本用户发表的回帖,发表主题,发表回复,设置版内范围文章状态)后台包括管理员(浏览论坛,设置用户状态,设置文章状态,版块相关操作)4.2 系统需求分析4.2.1功能需求分析需求分析是网上论坛系统开发的第一步也是最重要的一步9。需求分析阶段要通过描述系统的需求。通过定义系统中的关键领域的类来建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的渠道,因此,系统的需求分析应该是开发人员和用户或者客户一起完成的。需求分析可以采用面向对象的方法来完成,即明确系统要服务于哪些用户,对这些用户提供哪些服务等。本系统是一个论坛系统,我的目的是赋予其基本的论坛功能,我应该使本网站的操作尽量简单使它能用吸引更多的在线网民。所以我力图分析理论中对网民有价值的功能,除了基本的浏览功能和网站必备的功能以外,我还提供了管理员的后台管理,可以让管理员在家中就可以工作,力求尽量大可能方便其进行操作。总之,我们将网上论坛系统的功能划分为客户对功能的需求和管理对功能的需求,两个部分。他们的需求如下所列:游客1、注册 addUser()2、浏览论坛 queryAllModule()用户1、浏览论坛 queryAllModule()登陆成功 2、查询个人信息 queryUser() 3、查询本用户发表的主题帖 queryUserSnote() 4、查询本用户发表的回帖 queryUserRnote() 5、发表主题 appearSnote() 6、发表回复 appearRnote()版主1、浏览论坛 queryAllModule()登陆成功 2、查询个人信息 queryUser() 3、查询本用户发表的主题帖 queryUserSnote() 4、查询本用户发表的回帖 queryUserRnote() 5、发表主题 appearSnote() 6、发表回复 appearRnote() 7、设置版内范围文章状态(实现置顶,加精,锁帖等功能)管理员1、浏览论坛 queryAllModule() 登陆成功 2、设置用户状态 (实现设置版主、用户删除、禁言等功能)3、设置文章状态(实现置顶,加精,锁帖,基础积分设置,删除文章等功能) 4、版块相关操作(实现版块的增加和删除等功能)4.2.2非功能需求分析要求系统拥有清爽间接的外观,采用正常平和的界面布局,强调秩序,能达到安定诚实、信赖的效果;要求系统进行小心传递的顺利通畅;界面下载数率快;并且要求系统具有较高的安全性。4.3 系统功能结构分析与设计4.3.1系统功能概述本系统的功能结构如图4.1所示,对不同的用户分配不同的使用权限。根据需求分析,用户可分为游客,用户,版主和系统管理员。一般用户进入该网站后,可以浏览该网站的商品,查询需要的商品信息;注册入该网站后,除了拥有游客的功能外,还具有发表主题,回复主题等功能,系统管理员具有系统全部功能的使用权,而且还可以设置用户成为版主,版主有设置版内文章状态等功能。游客功能游客注册浏览论坛管理员功能管理员浏览论坛设置用户状态设置文章状态版块相关操作用户功能用户浏览论坛查询个人信息查询本用户发表的主题帖查询本用户发表的回帖发表主题发表回复版主功能版主浏览论坛查询个人信息查询本用户发表的主题帖查询本用户发表的回帖发表主题发表回复设置版内范围文章状态4.3.2 系统功能模块分析网上论坛系统包括两大模块:一为系统管理模块,二为系统用户模块。在这两大模块下又可以划分出若干个小模块。本网上论坛主要就实现了这两个模块的功能。1游客模块该模块负责管理所有网上论坛的游客登陆时的功能。主要功能注册,浏览论坛2用户模块该模块负责管理所有网上论坛的用户登陆时的功能。主要功能包括浏览论坛,查询个人信息,查询本用户发表的主题帖,查询本用户发表的回帖,发表主题,发表回复3版主模块该模块负责管理所有网上论坛的版主登陆时的功能。主要功能包括浏览论坛,查询个人信息,查询本用户发表的主题帖,查询本用户发表的回帖,发表主题,发表回复,设置版内范围文章状态4管理员该模块负责管理所有网上论坛的管理员登陆时的功能。主要功能包括浏览论坛,设置用户状态,设置文章状态,版块相关操作4.5 数据库的设计数据库是信息系统的核心和基础,是信息系统开发和建设的重要组成部分,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。在动态网站的设计中,数据库设计的重要性不言而喻。合理地设计数据库结构可以提高数据存储的效率,保证数据的完整和统一。如果设计不当,查询起来就非常吃力,程序的性能也会受到影响。数据库设计一般包括如下几个步骤: 数据库需求分析。 数据库概念结构设计。 数据库逻辑结构设计。4.5.1数据库需求分析根据网上论坛系统功能的要求以及功能模块的划分,针对一般网上论坛的需求,数据库的功能主要体现在对各种信息的提供、保存、更新和查询操作上,包括用户信息、帖子信息、管理员信息,各个部分的数据内容又有内在联系,因此总结出如下的信息表。该库包含了10个数据表,分别是用户表,用户等级表,真实信息表,版块表,主题帖表,回帖表,管理员表,版块用户关系表,用户头像表,帖子基础积分表。设计如下所示的数据项和数据结构。(1)用户表,包括序号、用户名、密码等。(2)用户等级表,包括级别名称,到达级别的最低分数,此级别的最高分数(3)版块表,包括(4)主题帖表,包括用户名、用户密码等。(5)回帖表,(6)管理员表包括管理员名、管理员密码。(7)版块用户关系表(8)用户头像表(9)帖子基础积分表(10)真实信息表4.5.2数据库逻辑结构设计将上面的数据库概念结构转化为数据库的逻辑结构。存放各个实体相关信息的表的定义如下。商品表user的定义如表4.1所示:表4.1 user表的结构用户表 user属性字段名类型备注序号u_id长整型用户名username字符型密码password字符型积分u_point整型用于帖子浏览权限0性别sex字符型邮箱mail字符型个性签名idiograph文本型 用户注册时间r_timedate用户最后访问时间l_timedate等级序号l_id长整型外键用户头像序号p_id长整型外键商品分类表userlevel的定义如表4.2所示:表4.2 userlevel表的结构用户等级表 userlevel属性字段名类型备注序号l_id长整型级别名称level字符型到达级别的最低分数minscore整型此级别的最高分数maxscore整型管理员表rinfo的定义如表4.3所示:表4.3 rinfo表的结构真实信息表 rinfo属性字段名类型备注序号ri_id长整型用户真实姓名realname字符型身份证号码idcard字符型用户所在城市city字符型用户QQqq整型爱好interest字符型备注comment字符型用户序号u_id长整型版块表module的定义如表4.4所示:表4.4 module表的结构版块表 module属性字段名类型备注序号m_id长整型版块名称m_name字符型版块描述paneldescribe字符型版块中总标题帖数a_s_point整型0版块中总访问量a_r_point长整型0最后发帖时间l_s_timedate版块创建时间c_timedate主题帖表 s_note的定义如表4.5所示:表4.5 s_note表的结构主题帖表 s_note属性字段名类型备注序号s_id长整型标题s_title字符型内容s_content字符型时间s_timedate点击数c_point整型0回帖数r_point整型0权限s_purview整型0置顶设置top布尔型加精设置add布尔型锁帖设置lock布尔型用户序号u_id长整型外键版块序号m_id长整型外键回帖表 r_note的定义如表4.6所示:表4.6 r_note表的结构回帖表 r_note属性字段名类型备注序号r_id长整型标题r_title字符型内容r_content字符型时间r_timedate加精设置add布尔型用户序号u_id长整型外键主题贴序号s_id长整型外键管理员表 admin的定义如表4.7所示:表4.7 admin表的结构管理员表 admin 属性字段名类型备注序号a_id长整型用户名a_username字符型密码a_password字符型前台别名name字符型版块用户关系表 m_unote的定义如表4.8所示:表4.8 m_unote表的结构版块用户关系表 m_unote属性字段名类型备注序号id长整型用户序号u_id长整型版块序号m_id长整型用户头像表 userpicture的定义如表4.9所示:表4.9userpicture表的结构用户头像表 userpicture属性字段名类型备注序号p_id长整型图片picture字符型帖子基础积分表 point的定义如表4.10所示:表4.10 point表的结构帖子基础积分表 point属性字段名类型备注序号id整型回帖基础积分r_point整型回帖加精积分r_apoint整型主题帖基础积分s_point整型主题帖加精积分s_apoint整型主题帖置顶积分s_tpoint整型4.6 数据库的链接 对数据库的链接用BussinessService.Java实现的,而且BussinessService类里面有定义了本网站对数据库操作的所有方法,其他的类想要对数据库操作,都要调用BussinessService类里的这些方法。连接数据的部分代码如下:private String dbUrl = jdbc:mysql:/localhost:3306/luntan;private String dbUser = root;private String dbPwd = 1234;private Connection con;private PreparedStatement stmt;private ResultSet rs;/*功能:加载数据库驱动 * 参数:无 * 返回值:无 * 创建人:李锋 * 创建时间:2009/04/14 * 版本:V1.0 */public BussinessService() try Class.forName(com.mysql.jdbc.Driver);DriverManager.registerDriver(new com.mysql.jdbc.Driver(); catch (Exception e) e.printStackTrace();/*功能:获得数据库连接对象 * 参数:无 * 返回值:返回一个连接对象 * 创建人:李锋 * 创建时间:2009/04/14 * 版本:V1.0 */public Connection getConnection() throws Exception return DriverManager.getConnection(dbUrl, dbUser, dbPwd); 4.7 系统的设计模式图4.10 MVC之间的关系设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。目前,在大多数Browser/Server结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,应向用户的请求。虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使JSP界面臃肿不堪,Web服务器的负荷过重10。因此,在中间层上采用基于图形试图控制器(MVC,Model-View-Controller)的设计模式。MVC之间的关系如图4.10所示,Model层用来实现业务逻辑,View层用来现实用户界面,Controller层主要负责View层与Model层之间的控制关系。具体实现时,把Servlet用作应用程序的控制器,把JSP文档作为视图,JavaBeans被用来表示模型。所有的请求都被发送给作为控制器Servlet,他接受请求,并根据请求信息将它们分发给适当的JSP来响应。同时,Servlet还根据JSP的需求生成JavaBeans的实例并输出给JSP环境。JSP可以通过直接调用方法或使用UseBean的自定义标签得到JavaBeans中的数据。这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速。在这种设计模式下,各层次之间的数据传递如图4.11所示。 图4.11 MVC设计模式的数据传递图 4.8 系统架构分析本软件采用B/S架构。虽然C/S架构是目前常用的应用服务器模式之一,它使用客户/服务模式进行工作。在服务端,一般采用高性能的PC、工作站或者专用服务器,并根据需要采用大型的数据系统,如Oracle、Sybase、Informix等;而客户端则需要安装专用的客户端软件。C/S结构是一种非常常见的结构,例如客户端基于Outlook Express,服务器基于Outlook Exchange Server,又如MSN,Yahoo message、网络游戏等都是一些典型的C/S结构的应用。C/S结构充分发挥了客户端PC的处理功能,将很多部分的工作,如计算、数据采集通过客户端处理以后再提交给服务器,这样相对就减少了服务器的压力,从而能很快响应客户端的请求。C/S结构也有很大的限制,客户端需要安装用户专用的客户端软件,这样给开发、安装、升级、维护,以及数据存储都带来一系列问题。同时,客户端程序可能会受到操作系统的限制,如果应用程序不支持跨平台特性,只能运行在Windows系统上,就无法在Linux,Solaris或者其他平台上运行。为了解决这一问题,就出现了B/S结构。B/S架构克服了C/S架构的上述缺点-安装维护不方便、需要在客户端机器上安装程序,B/S结构不需要额外的客户端程序支持,而是通过浏览器与服务器进行通信和数据传输,容易维护和升级。目前一般操作系统自带浏览器,包括Windows、Mac OS、UNIX、Linux等平台都已经安装了浏览器,最常见的浏览器有Microsoft的Internet Explorer、Netscape的NS等。B/S的结构应用也非常广泛,如搜狐、新浪门户网站、各种电子商务网站也普遍适用B/S架构。软件的是先上为适应B/S架构,二分成表示层(第一层)、业户层(中间层)、数据层(第三层),如图4.12所示。中间层由应用逻辑和业务逻辑结构。中间层的代码由用户调用(通过表示层)来获取需求的数据,表示层接收数据并且按照适当的格式显示出来。第三层包含了应用程序所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论