新闻管理系统毕业论文.doc
《新闻管理系统毕业论文.doc》由会员分享,可在线阅读,更多相关《新闻管理系统毕业论文.doc(19页珍藏版)》请在冰点文库上搜索。
湘南学院
题目:
新闻发布系统
组员:
卢相200814070206(组长)
杨思200814070206
廖方洁200814070206
李翠婷200814070206
张春燕200814070206
专业:
计算机科学与技术
班级:
计科二班
指导教师:
摘要
现在是一个科学技术飞速发展、信息更替日新月异的世纪。
计算机已深入到各个领域,并且形成了功能强大、覆盖全球的信息传输网络。
各个领域都向系统化、规范化、自动化的方向发展,使得工作效率、工作成绩和生活水平都日益提高。
新闻网站也是绝大多数人了解时事的渠道,新闻信息管理系统包括对新闻网站信息的查询、删除、更新等,
本文详细论述了运用JavaWeb技术《新闻分布系统》的开发、设计环境及其具体的实现。
该系统采用模块化程序设计方法,便于系统功能的各种组合和修改。
可以及时根据企业需求进行新闻信息的添加、删除、修改等操作。
本系统采用oracle数据库,进一步提高系统安全性。
本系统符合新闻管理的规定,能够满足新闻网站日常更新,并达到操作过程中的直观、方便、实用、安全等要求。
关键字:
JavaWeb;新闻管理;新闻查询;新闻浏览;新闻编辑
II
东华理工大学毕业设计(论文)目录
目录
摘要 II
第一章系统概述 1
2.1需求分析 1
2.2目标设计 1
第二章系统设计 2
3.1总体设计 2
3.1.1系统整体设计 2
3.1.2系统功能模块图 2
3.1.3管理员模块 3
3.2数据库设计 3
3.2.1数据库介绍 3
3.2.2常用数据库介绍 4
3.2.2.1Access数据库 4
3.2.2.2Oracle数据库 4
3.2.2.3SQLServer 4
3.2.2数据库的连接 4
3.2.3系统数据库的概念设计 4
3.2.4数据库的逻辑设计 4
3.2.5数据库的实现 6
第三章系统实现 13
4.1开发工具选择 13
4.2开发平台 13
4.3分页技术问题 13
4.3.1指针分页 13
4.3.2海量的数据查询 13
4.3.3JDBC和分页 14
第四章系统运行 15
5.1运行环境 15
5.2运行效果 15
结束语 16
参考文献 16
16
湘南学院JSP课程设计
第一章系统概述
1.1需求分析
目前,网页制作如火如荼,网站建设热火朝天,及社会的竞争是越来越激烈,各厂家及生产公司都在不断的提高生产的产品质量,特别是电子上午的发展正在关键的时刻,各商家都在最后的冲刺、网页月月改版,信息日日更新,这时他们就得借助媒体来提高他们的产品的知名度,而网络新闻发布信息就是一种很好、很现代的工具。
JSP是一种简单的、安全的,性能非常之高的、动态的脚本语言。
JSP可以用来开发Web应用程序,JSP具有较高的执行效率,强大的数据库支持和网络支持,具有多平台特性和极大的开放性和扩充性,拥有广泛的应用前景。
1.2目标设计
用JSP完成网络新闻发布系统的总体设计及各个细化模块的具体编程实现所开发的新闻发布网站系统必须具有新闻发布、新闻修改系统、各类新闻显示及相关内容浏览等功能。
在新闻浏览之前,要对新闻进行发布。
在发布的时候,出点错误和遗漏是在所难免,这时就需要对新闻进行修改。
因为新闻是直接与广大浏览者进行会面的,所以必须对所发布的新闻做到尽可能的正确、准确,这样浏览者才会经常浏览我们所发布的新闻。
第二章系统设计
2.1系统整体设计
此系统主要是内部新闻管理系统应用管理系统。
而系统的功能模块划分既要注重各个部分本身的功能,又要注重各个功能模块之间的联系,形成一套高效、快捷的新闻发布系统。
这就要求从管理需要和系统开发两个方面进行综合考虑,各个模块既有较强的独立性,又要留有适当的接口,以便日后对功能进行扩充和完善求。
1)站内新闻搜索
根据用户输入的查询条件以所选类别的新闻进行分类查询。
2)新闻分类展示
主要包括分类显示新闻类别、标题列表,和显示新闻详细内容3部分。
用户可通过新闻列表中的新闻标题查看该新闻的详细信息。
3)即时新闻
显示当天的最新新闻,并提供单击新闻标题查看新闻详细信息的功能。
4)链接管理
添加、修改、删除网站的友情链接,这是只有管理员进入后台才允许使用的功能。
5)新闻管理
包括时事要闻、经济动向、世界军事、科学教育、法治道德、社会现象、体育世界、时尚娱乐等所有新闻信息的添加、修改、删除。
与链接管理类似,只有管理员进入后台才有这个权限。
6)管理员管理
这是一个非常特殊的模块,只有拥有最高权限的管理员才拥有此权限(只有一个),该管理员可以添加、修改、删除其他管理员,并为其分配相应的权限。
注意,拥有最高权限的管理员是不允许修改密码的,而其他管理员可以修改自己的密码。
2.2系统功能模块图
后台主要用于管理员对新闻信息和一些其他信息进行管理。
新闻网的后台功能结构如图3-1所示:
图3-1
2.3管理员模块
企业用户管理管理员可以对企业用户发送信息,可以查看他的基本资料,还可以删除这个用户.
Y
结束
开始
登陆
登陆成功?
功能选择
查看新闻
添加新闻
更新新闻
修改新闻
删除
新闻
评论新闻
N
2.3.1常用数据库介绍
2.3.2Oracle数据库
Oracle公司是第一个推出基于SQL标准的关系数据库产品的公司。
它推出的Oracle数据库系统支持多种硬件平台及操作系统,用户的Oracle应用可以很方便地从一种计算机配置移植到另一种计算机配置上。
Oracle数据库系统具有以下特点:
严格遵守数据存取语言,操作系统,用户接口和网络通信协议的工业标准;适合于大型数据库和多用户的事务处理;支持分布式处理。
2.3.3SQLServer
SQLServer并不提供单独的,完全自给自足的应用程序开发环境,不像Access那样自身就可以用来开发那些纯数据访问的应用程序,SQLServer是完全作为后端来管理和运行数据库。
SQLServer主要具有以下特点:
适合于大型的数据库应用程序的开发;支持多用户;灵活性很高;支持分布式事务处理和Internet。
2.3.4数据库的连接
在Java的函数库中,有一组专门处理与数据库有关的API:
JDBC(JavaDatabaseConnection).我们主要利用JDBC这组API来和数据库沟通。
JDBC最主要完成的事情有:
与数据库创建连接;送SQL命令给数据库,操作数据库及数据表;接受及处理数据库所执行的结果。
不过在创建数据库连接前,我们必须合适的数据库连接的驱动程序。
目前JDBC根据数据库连接的方式,将驱动程序分成四种类型:
Type1,Type2,Type3,Type4。
我使用第一种类型Type1来连接数据库。
Type1的驱动程序是通过与ODBC的连接来与数据库沟通(JDBC-ODBCBridge),也就是JDBC会将所有要与数据库沟通的SQL命令通知ODBC,由ODBC来负责与数据库沟通。
由于JDBCAPI内部已经有这种驱动程序的存在,我们不用考虑太多驱动程序问题,只要将ODBC设置完成即可,而且不论是何种数据库,只要支持ODBC连接方式就可以连上,所以是一种简单又方便的方式。
不过利用此种方式有一定的缺点。
当项目很大或者用户很多时,维护的ODBC连接是一件麻烦又恼人的工作。
再者由于需要在JDBC与ODBC之前做数据传递及转换,许多时间浪费在这上面,造成性能上的不良后果。
2.4数据库的逻辑设计
在本新闻管理系统发布系统数据库中,本论文所描述的模块所涉及到的表有管理员表admin、站内新闻表news、链接表link等等。
分别对各个表进行设计说明,在管理员表中,个人的ID为主键,这是字段的数据类型为自动编号,用自动编号做主键可以加快数据的读取速度,而且ID号是由oracle自动分配不可能出现重复的,所以选择个人的ID号为主键。
管理员表Admin,管理员表用来保存管理员的基本信息,关键字为管理员的登录名。
设计如表3-4所示:
管理员表
表3-4
管理员可以发布新闻文章,新闻文章是放在首页上,此新闻存放在表news中,文章的ID号为关键字,设计如表3-5
新闻表
表3-5
管理员可以发布相关链接,链接在首页上,此链接放在表link中,文章的ID号为关键字,设计如表3-6
链接表
表3-6
2.5数据库的实现
根据以上的逻辑表在oracle中可视化建立表结构。
管理
图3-7
管理员表主键设置
图3-8
新闻表
图3-9
新闻表主键设置
图3-10
链接表
图3-11
链接表主键设置
图3-12
湘南学院JSP课程设计
第三章系统实现
3.1开发工具选择
新闻管理系统作为提供新闻信息,必须具备一些基本的条件。
首先,它应该具有友好的界面,方便的操作,与用户之间有很好的沟通;其次,它对数据的处理,数据的交换有着较高的要求。
它应该具有速度快,容量大,便于管理的特点。
正是因为这些因素,我们选择了JavaWeb作为本次系统开发的工具。
JavaWeb是Java技术的一个分支,主要是JSP,JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
3.2开发平台
基于JavaWeb和oracle对运行环境的要求,并考虑到目前学校的计算机硬件设备的实施情况,本系统采用Tomcat6.0服务器,MyEclipse5.5,dreamweaver8.0作为开发测试和运行平台。
3.3分页技术问题
分页,是web应用程序非常重要的一个课题。
数据库的数据可能是几千,几万,几百万行,但我们不可能把几万行数据一次显示在浏览器上面,这样浏览器受不了,用户也受不了。
一般的每页显示20行,是一个比较理想的显示状态。
3.3.1指针分页
取出所有符合条件的数据,放到数据集或者内存当中,然后逐页浏览。
那么,有可能你每页只需浏览20条记录,但要把几百万行记录取出来。
我把这种分页叫做“指针分页”。
指针分页法主要是利用数据集的指针(或者集合的下标)来标识。
比如,分页要显示20条数据,那么第一页的指针从1开始,第二页的指针从(2-1)*20+1开始,依次类推。
“指针分页”适合数据量和并发量不是很高的应用系统,不适合海量的数据查询。
3.3.2海量的数据查询
对于海量的数据查询,看多少取多少,显然是最佳的解决办法。
假如某个表中有200万条记录,第一页就取前20条,第二页取21~40条,这里我们用selecttop当前页*每页记录数*from表Awhere主键字段notin(selecttop(当前页-1)*每页记录数主键字段from表A)这样形式的语句来实现。
因这种查询方式,要用到主键,我们把它叫做“主键分页”。
3.3.3JDBC和分页
在使用数据库的过程中,不可避免的需要使用到分页的功能,可是JDBC的规范对此却没有很好的解决。
对于这个需求很多朋友都有自己的解决方案,比如使用Vector等集合类先保存取出的数据再分页。
但这种方法的可用性很差,与JDBC本身的接口完全不同,对不同类型的字段的支持也不好。
这里提供了一种与JDBC兼容性非常好的方案。
Sun的JDBC规范的制定,在JDBC1.0中,对于一个结果集(ResultSet)你甚至只能执行next()操作,而无法让其向后滚动,这就直接导致在只执行一次SQL查询的情况下无法获得结果集的大小。
所以,如果你使用的是JDBC1.0的驱动,那么是几乎无法实现分页的。
好在Sun的JDBC2规范中很好的弥补了这一个不足,增加了结果集的前后滚动操作,虽然仍然不能直接支持分页,但我们已经可以在这个基础上写出自己的可支持分页的ResultSet了。
有一些数据库,如MySQL(和PHP搭配之最佳组合),比如MySQL(和PHP搭配之最佳组合)可以使用limit子句,Oracle(大型网站数据库平台)可以使用ROWNUM来限制结果集的大小和起始位置。
这里以Oracle(和JAVAWEB搭配之最佳组合)为例,其典型代码如下:
//计算总的记录条数
<% NewsDaond=newNewsDao();
Listlist=nd.getNewses();
request.setAttribute("tests",list);
%>
tablename="tests"export="true"pagesize="10"id="nl"requestURI="news_list.jsp">
columnproperty="id"title="序号"sortable="true"sortName="true"headerClass="sortable"/>
columnproperty="title"title="标题"/>
columnproperty="columnId"title="所属栏目"/>
columnproperty="addDate"sortable="true"title="添加时间"/>
columnproperty="isdel"sortable="true"title="删除"/>
columnproperty="istop"sortable="true"title="置顶"/>
columnproperty="ischeck"sortable="true"title="审核"/>
columntitle="操作">
id=${nl.id}">编辑
id=${nl.id}">删除
column>
table>
另一种繁琐的实现方法
我看过一些人的做法,即不使用任何封装,在需要分页的地方,直接操作ResultSet滚到相应的位置,再读取相应数量的记录。
其典型代码如下:
<%
sqlStmt=sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_READ_ONLY);
strSQL="selectname,agefromtest";
//执行SQL语句并获取结果集
sqlRst=sqlStmt.executeQuery(strSQL);
//获取记录总数
sqlRst.last();
intRowCount=sqlRst.getRow();
//记算总页数
intPageCount=(intRowCount+intPageSize-1)/intPageSize//调整待显示的页码
if(intPage>intPageCount)intPage=intPageCount;
%>
姓名 | 年龄 |
---|
<%
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1)*intPageSize+1);
//显示数据
i=0;
while(isqlRst.isAfterLast()){
%>
<%=sqlRst.getString (1)%> | <%=sqlRst.getString (2)%> |
<%
sqlRst.next();
i++;
}
}
%>
很显然,这种方法没有考虑到代码重用的问题,不仅代码数量巨大,而且在代码需要修改的情况下,将会无所适从。
还见过另一些实现分页的类,是先将所有记录都select出来,然后将ResultSet中的数据都get出来,存入Vector等集合类中,再根据所需分页的大小,页数,定位到相应的位置,读取数据。
或者先使用前面提到的两种分页方法,取得所需的页面之后,再存入Vector中。
扔开代码的效率不说,单是从程序结构和使用的方便性上讲,就是很糟糕的。
比如,这种做法支持的字段类型有限,int,double,String类型还比较好处理,如果碰到Blob,Text等类型,实现起来就很麻烦了。
这是一种更不可取的方案。
一个新的Pageable接口及其实现,很显然,看过上面三种实现方法后,我们对新的分页机制有了一个目标,即:
不与具体数据库相关;尽可能做到代码重用;尽可能与原JDBC接口的使用方法保持一致;尽可能高的效率。
一个好的基础类应该是便于使用,并且具备足够的可移植性,同时要保证其功能的完善。
在上面的实现中,我们从java.sql.ResultSet接口继承出Pageable,并实现了它。
这就保证了在使用中与JDBC原有操作的一致性,同时对原有功能没有缩减。
同时它也是易于使用的,因为封装了一切必要的操作,所以在你的代码中唯一显得"难看"和"不舒服"的地方就是需要自己去构造一个PageableResultSet2。
不过只要你愿意,这也是可以解决的。
湘南学院JSP课程设计
第四章系统运行
4.1运行环境
开发语言:
JSP
后台数据库:
Oracle10g
服务器:
Tomcat6.0
客户端运行平台:
Windows2000(中文版)以上
4.2运行效果
管理员登陆界面
图5-1
管理员登陆到系统后的界面
图5-2
添加友情链接
图5-3
查询以及管理链接
图5-4
新增编辑新闻界面
图5-5
查询以及管理新闻
图5-6
湘南学院JSP课程设计
结束语
经过三个多月的设计和开发,网上新闻发布系统基本开发完毕。
其功能基本符合新闻发布需求,能够完成新闻发布、新闻修改和新闻显示以及新闻评论。
并提供部分系统维护功能,使用户方便进行新闻浏览和管理员对新闻进行修改、数据删除。
对于新闻同类性的问题也通过程序进行了有效的解决。
但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如页面设计内容不是十分丰富,用户界面不够美观,出错处理不够等多方面问题。
这些都有待进一步的改善。
参考文献
[1][美]C.ThomasWu著.候国峰等译.AnIntroductiontoObject-OrientedProgrammingwithJava(中文版:
面向对象程序设计导论).北京:
电子工业出版社,2002.06:
196-208
[2]《JDBC数据库程序设计》Time研究室箫仁惠陈锦辉中国铁道出版社
[3]《Java程序设计》清华大学出版社
[4]《轻松学用Java2》BarryBurd著安境等译电子工业出版社
[5]《Java程序设计》辛运帏饶一梅张钧清华大学出版社
[6]《Java课程设计》耿祥义清华大学出版社
[7]《Java项目开发实践》陆正武蒋武刘军石正贵中国铁道出版社
[8]《JavaHowtoProgram》HarveyM.DeitelPaulJ.DeitelPrenticeHall
[9]《尚学堂马士兵老师项目实战教程》马士兵
[10]张卫民等.Java语言及应用.北京:
清华大学出版社,19%年
[11]罗运模.SQLSeryer数据库系统基础.北京:
高等教育出版社,2002年
[12]刘永坡.JSP应用开发技术.北京:
人民教育出版社,2005年
[13]屈辉立,陈可明,石武信.JSP网站编程教程.北京:
北京希望电子出版社,2002年
[14]屈辉立,陈可明,石武信.JSP网站编程教程.北京希望电子出版社,2002
[15]耿祥义,张跃平.JSP实用教程.清华大学出版社,2003
[16]何雄等.JSP网络程序设计.人民邮电出版社,2000