基于mvc的bbs含源文件.docx
《基于mvc的bbs含源文件.docx》由会员分享,可在线阅读,更多相关《基于mvc的bbs含源文件.docx(59页珍藏版)》请在冰豆网上搜索。
基于mvc的bbs含源文件
摘要
本系统是采用jsp+servlet技术开发设计的计算机论坛网站系统,基于MVC的设计模式,结合JSTL+EL以及AJAX等的页面显示技术,使JSP页面中无JAVA代码的显示,保证了代码的安全,同时简化了JSP页面的编码。
系统实现了论坛信息的动态发布,使得对信息的管理更加及时、高效,提高了工作效率。
数据库采用了SQLServer2005数据库,操作简单、方便而且廉价易维护性高。
软件采用的是B/S的设计结构,主要分为前台显示和后台管理两部分。
前台是用户注册、密码修改、登录、浏览帖子、回复帖子、根据关键字搜索帖子等;后台主要实现对帖子的查看、对非法的帖子进行删除,对回复的帖子进行查看、删除等管理操作以及公告的发布、添加、删除、修改等操作。
本文通过对计算机论坛网站系统设计到实现流程的描述,目的是让人们了解计算机论坛网站的结构以及系统从设计到实现中各个部分的解决方案,让大家了解JAVA网络编程广泛采用的设计模式。
关键词:
计算机论坛,系统,JSP,公告
Abstract
Thehot-fishforumnetsystemisdesignedinthepaper,whichemployingthetechnologyofjsp+servlet,basingonthemodeofMVC.Inordertoensurethesecurityofthedesigncode,thispaperadoptsthedisplaytechnology,suchasJSTL+ELandAJAX.Inthemeantime,thepagecodeissimplifiedbyuseofsomerelateways.Thedynamicissuesystemisfinishedinthispaper,whichmadethemanagementofinformationrealizereal-timerenewandtheefficiencyrise.ThispaperemployedtheSQLServer2005database,havingmanyadvancedcharacteristics,suchasoperatesimple,thelowpriceandthemoreconvenientmaintainprocedure.
TheB/Sdesignstructureisusedinthissoftware,whichdividedintotwoparts,thestatedisplayandthebackstagemanagement.Consumertoregister,thepasswordmodification,passwordretrieve,register,browse,replyaninvitationcardandsearchinvitationcardetcareoperatedintheformerpart;Thelaterpartmainlycarriesoutthemanagementoperation,includingestablishandcanceltotheessenceoftheinvitationcard,lookintototheinvitationcardanddeletestotheillegalinvitationcardprogress,research,deletetotheinvitationcardprogressoftherecoveryetc,andwhatismore,theoperationofissuingreleasing,increasing,deleting,modifyingtheannounceetcisrealizedinthispart.
Thispaperreleasedthetechnologyofthenetstructureandthemethodtosolvetheproblemencounteredinthedesign,basingondescriptiontotheprocessofforumnetsystem.LeteveryoneunderstandJAVAnetworkplaitdistanceofthedesignmodeoftheextensiveusage.
Keywords:
forum,system,JSP,announce
基于JSP技术的计算机论坛网站的设计与实现
前言
网站论坛是一个以文化交流,学习知识,娱乐游戏为目的的,借助网络传输媒体和WEB共享实现的应用系统。
所以定位要准确,什么样的目的就要体现什么样的特色!
本网站是以热带鱼知识交流为主要的目的,所以在服务和内容方面要从知识交流这个方面考虑,体现互联网的优势,消息的实效快,传播的速度广!
为了能更好的服务于人,本论采用MVC设计模式即:
Model+View+Controller的设计模式,以软件工程的思想从全局把握开发流程,增加了系统的可靠性和可维护性,从而降低了投入。
伴随着网络的出现,网页逐渐融入人们的生活。
随着Internet的进一步发展,建站的技术日新月异。
就现在开发web技术来说,主要集中分为三大类:
基于C/S结构的应用程序开发;结合C/S结构和Web技术的复合应用程序;基于B/S结构的动态网页技术。
C/S结构系统:
是传统开发模式,一般以数据库和客户端的两层结构实现,也有加入中间件的三层或多层结构,在web早期是标准的系统模式,但随着计算机技术的发展和网络的发展,C/S结构的不足越发明显,B/S结构系统逐渐成为了时尚,而该结构的实现技术中最流行的就是.NET和JSP,而从安全性的角度将JSP又更胜一筹,因此采用JSP技术开发该计算机论坛系统。
本系统能够让人们更加方便的在网上进行热带鱼知识交流,从而促进热带鱼文化知识的传播以及各类热带鱼信息技术的传播,同时达到人们网上交流、学习的目的。
开发本系统用到了如下相关技术:
(1)JSP技术
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。
(2)JSTL+EL技术
EL全名为ExpressionLanguage,它原本是JSTL1.0为方便存取数据所自定义的语言。
JSTL是由JCP(JavaCommunityProcess)所指定的标准规格,它主要提供给JavaWeb开发人员一个标准通用的标签函数库。
Web程序开发人员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序(Scripting)的做法,以提高程序可读性、维护性和方便性
(3)AJAX技术
Ajax(AsynchronousJavaScriptandXML)是结合了XHTML技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。
Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。
系统采用Microsoft公司的SQLServer2005数据库,该数据库操作简单,可靠性较高,完全可以满足中小型网站的建设需求。
1可行性分析
1.1技术可行性
技术上的可行性主要是根据系统分析得到的需要开发的软件,来分析利用现有技术是否能实现待开发的软件。
本系统需要连接到互联网上,运用jsp+servlet技术开发,方便快捷,开发所需要的软件工具都是简单易操作的且开源,安全,可维护性强。
如下所示:
Web服务器:
Apache-Tomcat-6.0.1版本.
开发技术:
jsp+servlet技术.
开发工具:
Eclipse3.2及其MyEclipseEnterpriseWorkbench5.1.0版本以及网页开发工具MacromediaDreamweaver8.
数据库:
SQLServer2005
服务器操作系统:
由于JAVA语言的跨平台性,开发过程采用Windows2000Professional操作系统,也可以采用WindowsXP操作系统。
现有的硬件和软件在功能上是可以满足系统开发的需求,开发所需要的软件工具也都是简单易操作的,开发人员的技术水平完全可以胜任系统的开发。
所以该系统在技术上是可行的。
1.2操作可行性
该系统具有易用性,B/S结构使得客户端不必安装任何软件,只要有浏览器并连接到Internet或企业内部的Intranet上即可使用,免除了非专业人员操作技术上的困难。
服务器操作系统采用WindowsXP,Web服务器为Apache-Tomcat-6.0.1版本,数据库为SQLServer2005。
该系统具有友好亲切的使用界面,功能丰富并且使用简单,一般用户无需培训即可使用,对运行的平台和机器配置要求不高,便于配置和应用。
1.3分析结论
经以上分析,说明该系统在开发上是可行的,在技术、操作上都有可行性,可以进行开发。
2需求分析
2.1系统的功能需求
计算机论坛具有标准论坛系统所具有的分类管理,注册会员可发表文章,浏览文章,文章回复,查询文章,后台管理维护界面,真正实现节约资源、提高效率、业务处理的同时真正实现计算机论坛的功能作用。
2.1.1会员功能
为了使论坛有良好的秩序,在身份确定方面一定要作准确无误。
在进入论坛之前每一个用户都要在网站注册一个会员的账号。
当然,网站在用户资料的保密方面承诺不外泄。
注册号账号之后,用户就可以用账号登录网站,进行发表文章、回复帖子等,对于没有注册的用户是不能回复帖子的,更不能发帖子。
2.1.2搜索功能
用户可以根据自己的实际需求,搜索论坛里的全部文章。
可按标题、类别以及关键字来查找各种需要的信息。
2.1.3版主功能
版主功能主要是对帖子的管理,其中包括删除帖子、回复帖子。
删除帖子主要是有的帖子有不健康信息,对于这些信息给予删除。
接收到需要回复的帖子时,提出意见、发表见解,给予适当的回复。
2.1.4论坛展区功能
论坛展区是主要是各类信息的主题,其中包括用户自拟的主题,这样用户就可以用帖子进行交流。
其中包括各种帖图、热带鱼养殖技术、时事等。
在经过管理员的筛选,保留下来提供给大家的。
在这里可以供用户浏览帖子,发送帖子以及对别人的帖子给予自己的意见,即回复帖子。
2.1.5后台数据维护功能
后台管理主要是对用户的信息管理,其中包括用户管理、帖子管理、修改密码处理。
主要是帖子管理,对用户发表的不健康信息给予删除,也包括对不同分区的信息管理,通过对数据库的更新来修改用户密码和发布公告。
综合上述分析进行概要设计。
2.2JSP技术简介
JSP(JavaServerPage服务器网页)是从1998年开始出现的新技术。
由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的web开发技术。
在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(*.jsp)。
JSP技术为创建显示动态生成内容的web页面提供了简便的方法。
JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。
在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。
2.3JSP工作原理
JSP是面向服务器的,因此支持任何浏览器。
当Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给服务器端的相关组件,比如JavaBean组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JSP引擎。
JSP引擎将响应对象传递给JSP页面,根据JSP页面的HTML格式完成数据编排,最后Web服务器和JSP引擎将格式化后的JSP页面以HTML格式返回客户浏览器。
这就是当前网站构建中广泛采用的浏览器——Web服务器——后台数据库的三层架构模式。
因为JSP所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。
2.4JSP体系结构
JSP网站开发标准给出了两种使用JSP的技术,可以归纳为模式一、模式二。
模式一:
JSP+JavaBeans技术 在这种模式中,JSP页面独自响应请求并将处理结果返回给客户。
Bean处理所有数据访问,JSP实现页面的表现,以实现内容生成与显示相分离。
当处理复杂的大型应用时,页面被嵌入大量的脚本或Java代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的内嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。
所以模式一可用于小型应用,不能够满足大型应用的需要。
模式二:
JSP+Servlet+JavaBeans技术 Servlet技术是一种采用Java技术来实现CGI功能的一种技术,Servlet技术非常适于服务器端的处理和编程,并且Servlet会长期驻留在内存。
从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的MVC结构(Model/view/controller),其中Servlet对应controller,处于控制者的位置,处理HTTP请求,负责生成JSP中使用的Beans组件或对象,并判断应将请求传递给哪个JSP等,JSP对应view,负责生成最终的动态网页并返回给浏览器。
而JavaBeans对应的是Model,实现各个具体的应用逻辑与功能。
2.5JSP的特点
1.简化的页面生成技术。
JSP页面用标准的HTML或XML命令来处理页面的格式化和布局设计,而用类似HTML、XML的标记和Java语言编写的脚本程序生成页面内容。
这使得页面形式与页面内容互相独立,非常有利于大型项目的分工合作。
2.与Java平台有机集成。
JSP技术是Java2平台的重要组成部分,JSP使用Java语言作为它的脚本语言。
在JSP页面中可以使用几乎所有的Java组件和JavaAPI,这就能充分发挥出Java语言的强大功能。
使用JSP技术可以创建具有高度可伸缩性和可靠性的Web应用程序。
3.硬件平台和服务器无关性。
JSP作为Java家族的一员,秉承了Java技术的“一次编写,随处可用(WriteOnce,RumAnywhere)”的特性,可以运行于大多数流行的操作系统平台及Web服务器,这种与服务器硬件和操作系统平台的无关性是JSP相对于其它动态网页技术最大的一个优点。
4.功能可扩展性。
如同Microsoft的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过JavaBean和EJB(EnterpriseJavaBean)以及自定义的标记来扩展功能。
JSP可以通过JDBC,与诸如Oracle、SQLServer这样的大型关系数据库进行连接。
JSP提供了一些隐含对象。
这些隐含对象在JSP页面中可以直接引用,而不必首先声明。
利用JSP提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。
例如,利用request对象,可以很容易地接收用户在HTML表单中提交的信息。
2.6系统数据库连接
JDBC技术是JavaDataBaseConnectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口(ApplicationProgrammingInterface)。
它由一组用Java语言编写的类和接口组成。
通过这些类和接口,程序开发人员可以在Java语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。
因此,开发人员使用JDBCAPI可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问Microsoft的SQLServer。
不但如此,使用Java语言编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的应用程序。
简单地说,JDBC能完成下列三件事:
1.同一个数据库建立连接;
2.向数据库建立连接;
3.处理数据库返回的结果。
JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。
说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的API或开发工具基础。
很多可视化的Java开发工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为Java类,程序员通过可视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。
另一种使用JDBCAPI的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及Java程序。
通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。
数据库访问的三层结构如图5.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。
图5.1使用中间件的数据库访问三层结构
用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户。
这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。
本系统采用的正是这样的三层结构的数据库访问模式。
在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。
数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。
其模型如图5.2所示。
图5.2JDBC的三层模型
因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。
所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。
JDBC是JAVA应用程序与数据库的沟通桥梁。
它提供了三项服务功能:
一、与数据库建立连接。
二、将SQL语句传递给数据库。
三、从数据库取得SQL语句的执行结果。
当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName()即是在执行此项工作。
建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(JavaVirtualLMachine)中,本系统中利用java.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。
完成载入驱动程序的步骤后,必须使用java.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。
此连接对象的类类型为java.sal.Connection,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。
当取得连接对象后,还必须取得Statement对象才能对数据库执行SQL指令。
Statement主要实现两个功能:
执行SQL语句以及取得执行结果。
在java.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。
每个Statement对象只能产生一个ResultSet对象。
数据库连接如图5.3所示:
图5.3数据库的连接处理
数据库的连接处理具体实现如下:
//建立JDBC——ODBC桥
sun.jdbc.odbc.JdbcOdbcDriver;
//桥建立不成功时的错误处理
catch(ClassNotFoundExceptionevent){}
//建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中
Con=建立JDBC——ODBC桥
Sql=SQL查询语句
执行查询
Rs=返回结果
//SQL出错处理
catch(SQLExceptione1){}
2.7SQLSERVER2005数据库
SQLServer2005名字的来历
SQLServer2005最初的开发者的意图是用SQLServer2005和他们自己的快速低级例程(ISAM)去连接表格。
不管怎样,在经过一些测试后,开发者得出结论:
SQLServer2005并没有他们需要的那么快和灵活。
这导致了一个使用几乎和SQLServer2005一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于SQLServer2005而写的第三方代码更容易移植到SQLServer2005。
SQLServer2005的概述
SQLServer2005是一个关系型数据库管理系统,开发者为美国Microsoft公司。
目前SQLServer2005被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了SQLServer2005作为网站数据库。
SQLServer2005的特性
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2.支持MacOS、Windows等多种操作系统
3.为多种编程语言提供了API。
这些编程语言包括C、C++、Eiffel、Java、Perl、Python、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
7.提供TCP/IP、ODBC和JDBC等多种数据库连接途径
8.提供用于管理、检查、优化数据库操作的管理工具
9.可以处理拥有上千万条记录的大型数据库
SQLServer2005的应用
与其他的大型数据库例如Oracle、DB2等相比,SQLServer2005自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少