1、基于JSP的新闻发布系统【实用文档】doc文档可直接使用可编辑,欢迎下载基于JSP的新闻发布系统THENEWRELEEYSTMBASDON JSP摘要当今社会是一个信息化的社会,新闻作为信息的一部分有着信息量大,类别繁多,形式多样的特点,新闻发布系统的概念就此提出.简单的说,新闻发布系统就是充当一个网络新闻媒介的功能,主要实现对新闻的分类、上传、审核、发布,模拟了一般的新闻媒介的新闻发布过程。利用JS技术开发的新闻发布系统,主要有五大功能模块:前台查看模块,登陆验证模块,管理员管理模块,新闻类型管理模块,新闻信息管理模块,实现了对网站新闻的动态管理.因为可以用来动态发布新闻信息,所以对信息的管
2、理更加及时、高效,提高了工作效率.本系统采用B/模式,以JDK1。5作为开发环境,以Jav作为开发语言,以MyEclipse+Dreamweaver MX为开发工具,以QLServe 2000作为数据库,以Toca .0或以上版本作为测试服务器.本论文对课题的设计和开发进行了总体论述,然后具体阐述如何运用JSP技术实现基于B/架构的新闻发布系统。系统开发完成后,对课题要求的功能进行测试,测试结果证明本系统完成了课题的主要任务.关键词:新闻发布系统,JS,MyEcpe,SQ Ser 2000Asrace oiety odayis aninfortin sociey。 Thenewhas vari
3、osnfomion anvarous griesas thpart of th infrmton S he conept onewsrea sysm is put forwrd。 Inbf,th news releaseystem acts asa nwork meia I ainly ralizes thefnction o lifiaton, pload, examntion and release for nes and simulted the general mdia e elaercess. he nws elease sstembasd on SP mainly ha fiveu
4、nctionoules: h frontdes hec odle, the loi authenticton due, the adminitratrmanagemeue nd t new tyemaaement mdle。 It ealizes te dynamic managemen o h web nes. This syem can eeas new inormion dynamcall,s i manag iformatn mortimel and effitlyand imprveswork eficienc .heysem ues theB/S modl. I akeJD5 s
5、theevelopmet ironment . taes jva a the delomen laguae. I tes SL Seer 200 as hedatbase.I takes Tmca 5。0or abov versn a theestserverThe aperdcibe the design and deveomet the opicon the wl。 heitxpounds hw t use te JSP tecno to relize th news eease sytem bsed o B/S rcture.We tet the untion requied by te
6、 subet afteropen ofte ssem Tet resltssho hat he systm accomplisesai task of th ubject。Kyods: hNew leas Sysem,JP,yEclipe,QL eer 00目录1引言1.1课题研究背景11课题研究目的和意义12应用系统开发工具2.JS简介2.MyEclpse简介32.3Tmcat简介2.SQerver 及JDBC简介43系统分析与设计53。1需求分析53。2系统简要分析63可行性分析3.实体对象设计73.数据库设计10系统的具体实现1141数据库连接模块114.2新闻发布系统前台14管理员登陆
7、验证184.管理员信息管理04。.1删除管理员2。4。2添加管理员224。4。3 修改管理员3。5新闻类别管理2445。1添加新闻类别4.2查看新闻类别2546新闻信息管理24.。发布新闻信息27查看新闻信息29系统测试35。1软件测试325.2测试效果325.3测试结论46总结35参考文献36致谢37INDEX1Introductin11Research ackgoun11.2Rseah d Significance1AplicatonDeelomnt Tol2。1JSInrouction22。MyEclse Itrodution33TomcaItrduction32.4SQ SrverAn
8、d DBC Inoducion3teAnalyis and esin53。1ysem Biely Analysis3.2mand Anaysis63。3Feasibility Analyss3.4EntiObjecesign73.5atabaseDesig04Sytem azion1。1atabaseCnnection Mdul114。2he Frot-en TeNews Reease Systm4。Amnsrtr Ln eificaon84.4dminsratr nfrmationanagent4。4。1DeetAdiitrtor4。4。Add Adminsor44.3 Modify dmi
9、nistrtor234。5Nes Tpe Maaement4。1A News Tpe244.2iew ws Type25。6NewInormton anaeent274。61Rease NesInformain746。2ViewNews Ination25Systees35.1otware eting32.2s Effet25。TestConcluson346uma35Reference36Ackoedget371 引言Interne的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。由于因特网所容纳
10、的信息量大、内容丰富、信息及时、准确,更有相关信息的全面的介绍与比较,大大地方便了人们的阅读。根据年的调查报告,阅读新闻以6.9%的比例成为使用最多的因特网功能。因此,设计一个界面友好,功能强大的新闻发布系统十分有必要.1.1 课题研究背景新闻发布系统是上个世纪九十年代互联网技术发展以后才出现的技术,最初的表现是解决一些网站的信息动态发布而开发,只是简单的发布和显示,应用于各种不同的站点需要构建不同的系统来满足需要,而且功能很单一,在九十年代后期,互联网技术进一步发展,网络作为新起的新闻媒介工具,其用户大大增加,对系统的要求也越来越高,新闻发布系统在这样的一个环境中提出、开发并改进.到现在,新
11、闻发布系统的成功案例已经不计其数,而且已应用到各种站点上。可以说,各行各业的绝大部分的网站都是用到了新闻发布系统,大量的用户引发了新闻发布系统功能的进一步夸大和深化,给新闻发布系统提出了更高的要求。传统的网站新闻管理主要是静态的HTML页面,更新信息时需要工薪制作页面然后上传页面并修改相应的链接。手工制作发布的网页信息不但无法检索堆积如山的信息,而且每次更新内容并上传的时候都会使服务中断,导致用户无法访问而使形象和服务大打折扣。1.2 课题研究目的和意义本系统是基于JP和脚本语言,将动态网页和数据库结合,能够在网上实现新闻的网上多用户发布,多栏目管理,实时的进行行为统计和记录的网上交互系统。这
12、也将大大减轻了网站更新维护的工作量,通过网络数据库的引用,将网站的更新维护工作简化到只需要录入相关文字信息或者上传图片,从而使网站的更新速度大大缩短,加快了信息的传播速度,也吸引了长期用户群,时时保持网站的活动力和影响力。本系统采用B模式,不需要安装客户端,被授权用户通过浏览器即可登录系统,/S结构极大的简化了客户机的工作,客户机上只需要安装配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。B/S体系的优点是,系统安装维护简便,数据集中管理,便于分散用户使用,适应互联时代软件的发展趋势。2 应用系统开发工具2.1 JSP简介JSP(Javaerv
13、er Pges)是由SunMicrosystes公司倡导、许多公司参与一起建立的一种动态网页技术标准。JS技术有点类似AP技术,它是在传统的网页TML文件(*.ht,。ml)中插入aa程序段(Scritlet)和SP标记(ag),从而形成JSP文件(*。jsp)。 用SP开发的应用是跨平台的,即能在Lin下运行,也能在其他操作系统上运行。JP技术使用Jaa编程语言编写类XL的tg和scriptlts,来封装产生动态网页的处理逻辑。网页还能通过as和scriplets访问存在于服务端的资源的应用逻辑。JS将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得
14、迅速和容易。 eb服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户.插入的va程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与ava Sevl一样,是在服务器端执行的,通常返回该客户端的就是一个HTM文本,因此客户端只要有浏览器就能浏览。 JS页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Jav代码进行处理,然后将生成的HTL页面返回给客户端的浏览器。Ja Servlet是P的技术基础,而且大型的b应用程序的开发需要Jav Sevlt和JSP配合才能完成.J
15、SP具备了ava技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 2.2 MyEclipse简介MyEclips企业级工作平台(MyEclips Entprs Workbnc ,简称MyEcipse)是对Eclpse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2E集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Stuts,S, CS, Javascrip, S, Hiernate。 对于以上每一种功能上的类别,在Ecise中都有相应的功能部件,并通过一系
16、列的插件来实现它们。 Ecipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,My Eclipe是Eclie的插件,也是一款功能强大的JEE集成开发环境,支持代码编写、配置、测试以及除错,MEe60以前版本需先安装Eclips.MEclip6。0以后版本安装时不需安装Ecpe。2.3 Toc简介mct是Apache软件基金会(pace Sofware Fundtio)的akta项目中的一个核心项目,由Apch、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet和SP 规范总是能在Tmcat 中得到体
17、现,Tomct 5 支持最新的Svt.4 和J2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomc 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomt是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好ache服
18、务器,可利用它响应对TML 页面的访问请求。实际上omct 部分是Apche 服务器的扩展,但它是独立运行的,所以当你运行omt 时,它实际上作为一个与Apache 独立的进程单独运行的。 2.4 SQL Server及JDC简介随着计算机技术的不断发展,信息化管理成都的不断提高,数据库技术在信息管理中的作用日益重要。Mcosoft SQ ervr是目前使用最广泛的数据库之一,它与Wnow网络操作系统的无缝集成,智能化的内容管理,强大的功能,使它得到大量用户的喜爱。数据库是数据管理的最新技术,是计算机科学的重要分支.多年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件.由于数据库具有
19、数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。一个数据库能否保持信息的正确性、及时性、很大程度上依赖数据库的更新功能的强弱与数据库的实时更新能力,这些操作包括插入、删除、修改,也成为更新3种操作。JDBC(ava Data Base Connectivty, ava数据库连接)是一种用于执行S语句的Java API,可以为多种关系数据库提供统一访问,它由一组用ava语言编写的类和接口组成.D为工具/数据库开发人员提供了一个标准的AP,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 avaAPI 编写数据库应
20、用程序. 有了JDB,向各种关系数据发送SQL语句就是一件很容易的事.换言之,有了CPI,就不必为访问Sbase数据库专门写一个程序,为访问racle数据库又专门写一个程序,或为访问Infom数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQ调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是aa语言“编写一次,处处运行”的优势.3 系统分析与设计3.1 需求分析1。功能需求分析通过相关调查,要求网站具有以下功能:1)。通过网络,展示各种类型的新闻及详细信息; 2
21、).为后台管理提供登陆入口;3)。管理员信息的管理;4)新闻类型的管理;5)。新闻信息的管理.性能需求分析当用户登录,进行任何操作的时候,系统应该及时地进行反应,反应的时间在五秒以内。系统能检测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,以避免出现长时间等待甚至无响应。3.2 系统简要分析新闻发布系统的主要目的是为用户提供一个方便的、可快速浏览当前最新新闻的界面,并且也可以随时发布最新的信息以达到信息共享的目的。因此要为用户提供个方便易用的使用界面,同时也为具有更高权限的管理用户提供添加、修改和删除新闻等的系统维护功能。访问本系统的用户可分为两大类:普通用户和管理员用户.普通
22、用户可以直接访问新闻发布系统的前台,通过点击每条新闻的标题来查看该条新闻的详细内容。当用户作为管理员成功登陆后,可以对新闻系统进行管理,包括三大模块:1 管理员信息管理:增加管理员、删除管理员、修改管理员信息;2 新闻类型管理:增加新闻类型、查看新闻类型信息;3 新闻标题信息管理:增加新闻信息,查看新闻信息。3.3 可行性分析可行性研究的目的就是用最小的成本在尽可能短的时间内确定问题是否能够解决,它不是真正的解决问题,而是确定问题是否值得去解决。它是系统开发的前期工作,经过仔细地分析决定问题是否值得解决开发,用最小的代价在尽可能短的时间内确定问题是否能够解决。1 经济可行性系统的开发不需要额外
23、增加设备购置费、软件开发费、管理和维护费用。而且系统的开发可以较好地解决新闻内容繁多而造成的处理效率低,出错率偏高的问题,并可以及时了解各种类型的新闻及其详细内容的发布情况,为及时发布最新的新闻消息提供可靠的数据支持,从而明确工作目标,同时还可以减少人工劳动、提高工作效率.2.技术可行性本系统采用Mclipse结合SQServe 2000数据库技术,它们都满足新闻发布系统建设的需求。本系统主要使用Java语言,这是一种简单、安全、稳定的语言,通过在MyEe和Dreamweaver的可视化编程环境下,能够轻松构建出各部分模块,并能够实现各模块功能。新闻发布系统的关键部分在于系统各模块与数据库的链
24、接,在系统界面修改的数据在数据库中能有相应的更新,确保数据的同步更新。3.4 实体对象设计1、新闻类型对象cclass sye pivateinttyped;ivtSig peNam;pvate Strig tpereater;prive Date typTime;riateboolentypSt;publicin gtyped()returntypId;pulioid tpeId(i typId) this。typeId=tped;pulc Stin etTpae()returntypNme;pblicoid sTeName(Sri peNae) tis.tyeae peae;ublic t
25、rg getTyCreter() returnypeCreater;ulicvi setTyeCreter(StrityeCreater) hi.typeCeae =typeCreer;plDate etTpeT() retntypTme;pulicvo setypim(Date typeTime)his.tyeTime =typeTme;pulicboean isTypetate() returypeState;ubivo eTypSate(boolean tyeState) his。yStatetypSat;2、新闻标题对象blclass sInf pateintsId;pivate Sr
26、 nsNam;privatinttpId;rat trnnesContnt;privae tring neCater;private Dtnwie;rivtebooleanesStat;pblin gNewsId() uresId;plcoid tNewsId(itnesId) thsnewsd =esd;pubicString geNewsName() rturnesae;publivoidsetNeame(StrinnewNme) th。nwsa nsName;ubcin getypeId() eturntypI;ulioi etTyId(n tpId) ths.tyId ted;bli
27、ing gtNewsConen() ernnewsCotnt;pucvi setNewCoten(tring ewsntent) thi.wsContent =newConent;ublicString etNsaer() returnnwsear;blcvod setNewsreter(Strng nsrete)this.nsrete = newsCreaer;pubi Dae gNwsTme() renwTme;ulivd seNwsTime(Date nem) his.newsm = newsTi;ublicbool isNewsState() ernnwtate;publvo eNew
28、tate(boolan newstate) tis.newate newsState;3、管理员用户对象pbliccassAdminInf pivateitdminId;rive Sing adminAccount;rivttrn adinPd;ivateitamiClass;ulicin getAdmnId() rturnamId;blicvoid setdmn(int admd)thisadmiI= admind;pbli String gtdmincout() rurnadminAcout;publicvod setAdinAcount(Sn mincount) this.adminAc
29、cout dinccount;plic Strig getAinPd() eturnaminPwd;ulicvietAdPwd(String adminwd) thisadmiP= adiPwd;ublcntgetdmnClass()reunadminls;publcvoid stnCas(itadinCls) this。dnClas=aiass;3.5 数据库设计1。E-R图管理员编号帐号号密码名称创建者创建时间审核状态新闻类型新闻标题创建时间类型编号内容创建者名称编号审核状态1:n1:n1:n编号图31 E-R图2 新闻类型表表3 新闻类型表列名数据类型长度说明typIint4新闻类型标号
30、,主键tyeNavrhar40新闻类型名字tyereatrvarhar20新闻类型创建者tpTimedateime新闻类型创建时间typeStatei1新闻类型是否审核3 新闻标题表表 32新闻标题表列名数据类型长度说明wsIdint4新闻标题编号,主键ewsaevrchar10新闻标题名称typeint所属新闻类型的编号newsContenxt新闻标题下的内容newsatevrchar0新闻标题创建者eTiedaetie新闻标题创建时间newsStaeit1新闻标题是否审核4 管理员用户表表3 管理员用户表列名数据类型长度说明adminIdnt4管理员编号,主键mccutvarcar0管理员
31、账号adminPwdarar2管理员密码4 系统的具体实现4.1 数据库连接模块本系统采用JDBC连接SL Seer200数据库,连接步骤如下:1加载数据库驱动程序QL的JBC驱动程序名称是com。microsft.jbc。qlserverSQSrveDriv,通过Class。oNme(commirost.jdbc。sqsrve.SerrDrivr”);注册这个驱动程序。这样就能使用这个驱动来连接SQLever数据库。2.数据库连接数据库连接是由DrivrManaer这个工厂类的getotion方法获得的。getCnnction方法在获得连接过程中,需要数据库连接字符串、用户名和密码,SQLe
32、rv数据库的连接字符串格式如下:db:microsoft: qserver:/dbip:ort/atabasenme其中dpp是数据库所在主机的ip,如果在本机,可以填写calhos或12。0。r是数据库的端口,SQervr默认端口是143,dataename 是所用的数据库实例名称3执行QL语句得到数据库连接后,可以通过连接对象的createttment方法来创建一个Staement对象,Staent是用于执行QL语句的接口。有了taeet对象后,可以调用executQury或excut方法执行给定的SQ语句.4 得到结果集Stement执行exeutQuey或exue方法后,返回一个eul
33、st对象,Reulte是用于指向结果集对象的接口,遍历该对象就能遍历结果集。5 对结果集作相应的处理这一步骤主要是遍历结果集取出相应的记录,根据业务需要对这些记录进行展现等处理.6 关闭结果集,关闭Sttment,关闭连接当连接完成了,就要关闭相应的资源以释放内存,后打开的资源应该先关闭,所以关闭顺序为:结果集 Sttement 数据库连接。为方便以后连接数据库的使用,将数据库的连接和关闭放在一个DataUtl类中,使用连接SQLServ数据库具体实现主要代码如下:ubliclssDatUil /得到连接rern/pubicsttic onncongetCnn()Connectocon = n
34、l;yClss。frNam(cm。microftlserr。dbc。SQLServerive”);nn DrvrMagr。geCnnecion(jdbc:sqservr:/loalhs:43;dataaseNme=nesDB,sa”,”a”);改成自己的数据库连接,用户名和密码cc(xceptio e)e.printStackTrae();retrnonn;/关闭连接parars*paamstparamcon*/publicsatcvoidcloseCon(Rultetrs,Statemt st,nnetincon)try rs.lose(); atc(Excion e) try stclos
35、e(); cth (Exeption) tr conn。clos(); cch (Ecption e) /*关闭连接*pamtparamconn/pblicstcvid coseonn(Statmet ,Connetio cnn)ry stose();atch (Excepti e) trcn。cls(); catch (Exepton e) 4.2 新闻发布系统前台1主要界面新闻发布系统前台界面如图4所示:图41新闻发布系统前台界面此为index.s页面的效果,所有用户都可以访问此页面,头部下方显示“当前位置”和“管理员登录”部分,中间主体部分显示所有已经发布的并且通过审核的新闻类型以及其下
36、的新闻标题,这些都是从数据库中查询显示的,随着数据库的变化,显示的内容也会相应变化。主要代码如下:!- 中间显示内容部分 d id=”mide”spa stl=backond-lor:lme;margn: 5px; ty。gtypeName)/spabrabrdi其中NewsTypDAO是一个新闻类型nesTye的数据库操作类,有多种方法,添加新闻类型方法,根据编号删除新闻类型方法,根据编号修改新闻类型方法,查看所有新闻类型方法,查询所有通过审核的新闻类型方法,根据i查询新闻类型方法。本类中主要用到了查询所有通过审核的新闻类型这一方法,代码如下:/*查询所有通过审核的新闻类型*etun*/bl
37、ic ArraListNesye erNesypBytate()ArryLstewsType list = new ArryLstNesype();Cnecin conn ull;rerdtatentquery = null;RsSet rs = ull;tryconn Datil。eConn();quey = conn.peprttement(”selec *fo ewsTpe her yeState 1);rs queryexcutQuery();hile(rs.next()Nwse newstye = ew NesTyp();newtye.setTyped(rs。eIn(tyeId”);estype.etTpeme(rs。getStrig(”yeNae”);newstype.setTypeCater(rs.etSrig(typeCeater));nestypesetypTime(rs。gtte(”tyeTime”));ewspe.etTpeState(s。getBooean(”typeSate));st