




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、web应用基础课程设计-新闻管理与发布系统中南林业科技大学课程设计web技术应用基础指导教师: 旷 玲 设 计 人: 丁 洁 学 号: (20083687)班 级:理学院信计一班日期:2011、7、1新闻管理与发布系统1.1 系统总体设计 -3 1.1.1 需求分析 - 3 1.1.2 系统模块 - -3 1.1.3 功能设计 -41.2 数据库设计与实现 -5 1.2.1 数据库的需求分析 -5 1.2.2 数据库的逻辑设计 -5 1.2.3 数据库创建和初始化 -71.3 公共模块 -10 1.3.1 数据库连接 -11 1.3.2 导入类包文件 -12 1.3.3 页面头和页面尾文件 -
2、12 1.3.4 格式转化文件 -13 1.3.5 防止恶意登陆页面 -14 1.3.6 css样式表 -151.4 主页面模块 -16 1.4.1 实现效果 -16 1.4.2 主页面 -17 1.4.3 新闻搜索 -211.5 管理员登陆模块 -22 1.5.1 实现效果 -23 1.5.2 管理员登陆 -231.6 栏目管理模块 -25 1.6.1 实现效果 -25 1.6.2 管理主页面 -26 1.6.3 添加栏目 -28 1.6.4 修改栏目 -29 1.6.5 删除栏目 -301.7 新闻管理模块 -31 1.7.1 实现效果 -31 1.7.2 新闻管理主页面 -32 1.7.
3、3 发布新闻 -33 1.7.4 修改新闻 -34 1.7.5 删除新闻 -341.8 管理员管理模块 -35 1.8.1 实现效果 -35 1.8.2 管理员管理主页面 -36 1.8.3 添加管理员 -37 1.8.4 修改管理员 -38 1.8.5 删除管理员 -381.9 管理员管理新闻模块 -391.10 部署与运行 -40 随着社会经济的发展和公司的发展壮大,公司日常处理事务组建复杂,尤其是一些大型企业集团,子公司分布在不同区域,信息传递、处理的速度和效率将会影响公司的决策,办公效率地下将直接制约公司的发展。所以,越来越多的公司实施了办公自动化项目。办公自动化系统包括内网系统和外网
4、系统,内网系统是公司内部信息的交换平台,外网系统是公司对外的窗口,是与公司直接交流的平台。本章的新闻管理与发布系统实现的新闻管理的基本功能,包括新闻栏目管理模块、新闻管里模块和管理员管理模块等。有多个管理员可以发布、修改和删除新闻,新闻栏目也可以按照要求进行添加和修改。通过对本章的学习和个模块实现方法的分析,可以是我们更加深入的了解到jsp得很多技术要点。本章按数据库应用系统的开发过程讲解开发思路,即系统需求分析、数据库设计与实现、总体设计、各模块设计与实现。阅读本章可以使我们了解数据库应用系统开发的思路和步骤。1.1 系统总体设计1.1.1 需求分析根据新闻管理的基本要求,新闻管理与发布系统
5、需要完成以下任务a系统能够列出新闻栏目及其新闻列表,通过网页,用户能够查看到某一条具体的新闻内容。b 系统还可以统计出管理员发布新闻的数量及其排名,以及目前单机最多的十条新闻。c 通过网页,用户可以模糊搜索新闻,并查看搜索达到的新闻内容。d 可以添加和管理管理员,管理员可以发布和管理新闻。e 可以对新闻栏目进行管理,比如,添加、修改和删除新闻栏目。只有root用户才能够完成这个功能。f 管理员可以发布。修改、删除新闻。新闻包括标题和内容两部分。g 无论喝死管理员还是root用户,进入后台管理系统必须要经过登陆系统,输入正确的用户和密码方可进行相关操作。1.1.2 系统模块1. uml活动关系图
6、用户打开新闻管理与发布系统主页,主页列出了各个栏目包括的新闻列表、管理员发布新闻排行、单击率最高十条新闻新闻列表、搜索新闻入口以及后台管理入口。管理员单击管理入口连接,进入后台管理入口登陆模块,输入正确的用户名和密码后,根据管理员类型进入相应的后台管理主页面。root用户管理的主页面包括栏目管理和管理员管理,进入栏目管理页面后,就可以发布和栏目相关的新闻,而一般管理员只能对自己所属的栏目进行管理。当管理员登陆进入后台管理时,根据管理员对应的权限,就会进入相应的页面。如果用户要退出后台管理系统,单击“退出”按钮即可。活动图如下: 新闻主页后台管理入口管理员管理栏目管理新闻管理管理2、 系统模块
7、根据上面的分析,可以得出系统应该包括:主页面模板、管理员登陆模块、栏目管理模块、新闻管理模块和管理员管理模块等。各个模块又包括许多子功能模块,如下图:添加栏目模块主页面模板修改栏目模块删除栏目模块管理员登陆模块添加栏目模块修改栏目模块新闻管理与发布系统栏目管理模块删除栏目模块发布新闻模块新闻管理模块修改新闻模块删除新闻模块添加管理员模块管理员管理模块修改管理员模块删除管理员模块整个系统均采用b/s结构进行设计,后台管理部分也是通过网页进行操作。系统后台数据库采用的是sqlserver2005。1.1.3功能设计、 主页面模块通过主页面模块,可查看系统的新闻栏目以及该栏目下面的新闻。主页面中每个
8、栏目只列出条新闻,如果要查看该栏目更多的新闻们,可以单击“更多”,进入新的页面,新闻页面就会列出该栏目的所有新闻。同时,主页面中列出了发布新闻数量的管理员排行榜,通过该排行榜,可以看出每个管理员发布的新闻数量。初次之外主页面还列出可新闻管理与发布系统中用户单击最多的十条新闻,即热点新闻。用户如果想搜索自己需要的新闻,可以在主页面中搜索入口处输入查询条件并搜索,便可以得到自己需要的新闻列表。2、管理员登陆模块此模块实现管理员进入系统管理前得验证操作,只有输入正确的用户名和密码才能才能进入系统,进行管理操作。3、栏目管理模块新闻管理与发布系统可以按照栏目来分类各种新闻,如“发展动态”、“产品与方案
9、”、“诚聘英才”等等。根据需要,root用户可以添加、修改。删除新闻栏目。普通管理员不能进行本模块的操作。4、 新闻管理模块通过网页。管理员可以发布新闻,也可以对已经发布的新闻进行修改,甚至删除。5、 管理员管理模块系统中可以存在多个管理员,这些管理员可以分管不同的新闻栏目并对其进行管理。本模块具有添加、修改、删除管理员功能。普通管理员不能进行本模块的操作。1.2 数据库设计与实现1.2.1 数据库的需求分析根据系统需求,可以列出以下数据项和数据结构。a 管理员基本信息表:系统的所有管理员信息都保存在这张表中,还包括该管理员管理的新闻栏目序号索引。b 栏目信心表:存放所有新闻栏目的基本信息。c
10、 新闻信息表:存放系统所有新闻信息。1.2.2 数据库的逻辑设计根据以上需求分析,可以做出各表的关系分析图。建立表的主键约束以及这些表之间的外键约束,可以避免由于误操作导致数据库的崩溃,保证各表数据的完整性。数据完整性可以确保数据库中的数据质量,包括许多方面,有约束和规则、允许空值、标识属性、默认值等。主键约束用来保证数据唯一即不能重复。外键约束是指用于建立和加强两个表之间的联接的一个字段,也就是说,将表的某一个字段或者多个字段的组合字段定义为外键约束,并且确定该外键要联接到哪一个表的主键字段上,例如表category中的字段categoryid为主键,在表news中,定义categoryid
11、为外键的约束。另外,为保证各表之间数据的同步,在更新和删除管理员基本信息表manager中的记录时,要保证新闻信息表news中相关的信息也要同步更新和删除,因此也需要设置它们之间的关系为级联更新和级联删除,即属性中“更新规则”和“删除规则”都设置为“层叠”选项。例如,管理员基本信息表manager和新闻信息表news关系属性设置如图1-1所示。系统中所有表之间的关系均作此设计。正在编辑现有关系的属性外间关系选定的关系(s) fk_news_categoryfk_news_manager在创建或重新启用时检查标识表设计器insert 和update规范更新规则 层叠删除规则 层叠强制外键约束 是
12、强制用于复制 是关闭删除添加 图1-1 外键关系属性设置页1、 管理员基本信息表管理员基本信息表用来存放管理员所有基本信息,共有7个字段,如下图:字段名描述类型长度(b)是否允许为空是否主键缺省值managerid管理员用户名varchar16否是password用户姓名varchar16否否managername真实姓名varchar8否否totalname总共发布新闻数量int4否否0adddate添加日期varchar10否否0000-00-0categoryid所管理新闻栏目 idint4否否0loginnum登陆系统次数int4否否0 管理员基本信息表管理员基本信息表manager中
13、并没有将categoryid设置为外键约束,这是由于该表中有一条表示root用户的原始记录,设置root用户的categoryid值为0,在栏目信息表category并没有相应的记录。如果将categoryid设置为外键约束,建立管理员信息表manager和栏目信息表category中的示例数据如图所示:manageridpasswordmanagernametotalnameadddatecategoryidloginnumdzc123戴志诚02006-3-230dzj1972戴志军52006-3-2128gm111龚敏42006-3-2112jif8888系久峰42006-3-2146ro
14、otroot根管理员10000-00-0003 管理员基本信息表示例数据2、 栏目信息表栏目信息表用来记录新闻栏目的基本信息,共有3个字段,结构如下图: 栏目信息表字段名描述类型长度(b)是否允许为空是否主键缺省值categoryid栏目id号int4否否是categoryname栏目名字varchar20否否否description栏目描述varchar80否否否 此表中的栏目id号字段是标识字段,自动增加。设置了标识属性的字段称为标识字段。列的标识属性由两部分组成:一个是初始值,另一个是增量。向一个包含标识字段的表中插入数据,初始值用于数据表的第一行数据,以后添加一行,sol server
15、就根据上一行标识的标识值,加上增量,得到新的标识量。缺省情况下,初始值和增量都为1,栏目id好字段就是取缺省值。3、 新闻信息表4、 新闻信息表用来记录系统中所有的新闻信息,共有7个字段,结构如下: 新闻信息表字段名描述类型长度(b)是否允许为空是否主键缺省值newsid新闻id号int4否是title新闻标题varchar50否否0body新闻内容varchar8000否否0000-00-0hits新闻单击数int4否否adddate新闻添加日期varchar20否否managerid添加新闻管理员用户名varchar16否否categoryid新闻所在栏目id号int4否否此表中的字段ma
16、nagerid是外键的约束,与管理员基本信息表manager建立联系。字段categoryid也是外键约束,与栏目信息表category建立联系。一个栏目中有多条新闻,所以此表中字段categoryid并不是主键。1.2.3 数据库创建和初始化首先创建数据库news,然后分别创建管理员基本信息表manager、栏目信息表category、新闻信息表news,依据图建立表之间的关系。最后需要对数据库进行初始化,由于系统运行需要root用户,所以要向管理员基本信息表manager中加入root用户记录。这些操作可以利用sql server2005工具microsoft server managem
17、ent studio完成。除此之外,也可以执行以下transatlantic-sql语句来按完成数据库和初始化。-创建数据库newscreate database news on (name =news data, filename =d:program filesmicrosoft sql servermssql.1 mssqldata news_data.mdf,size =1,filegrowth =10%)log on (name =news log, filename =d:program filesmicrosoft sql servermssql.1 mssqldata news
18、_log.ldf,size =1,filegrowth =10%)go-创建库管理员基本信息表managercreate table manager( managerid varcher(16)not null, password varcher (16) not null, managername varcher (8) not null, totalname int notnull constraint df_master_total_7f60ed59 default (0), adddate int not null constraint df_master_total_joindate
19、_00551192 default (0000-00-00), categoryid int not null constraint df_master_classid_014935cb default (0), loginnum int not null constraint df_master_loginnum_023d5a04 default (0), constraint pk manager primary key clustered (managerid asc )with (ignore_dup_key =off) on primary )on primary-创建数据库栏目信息
20、表categorycreate table category( categoryid int identity (1,1) not null, categoryname varchar (20) not null, description varchar (80) null,constraint pk_category primary key clustered (categoryid asc )with (ignore_dup_key =off) on primary )on primary-创建新闻信息表newscreate table news( newsid int identity
21、(1,1) not null, title varchar (50) not null, body varchar (8000) not null, hits int not null constraint df_news_hits_0519c6af default(0) , adddate varchar (20) not null constraint df_news_adddate_060deae8 default(0000-00-00 00:00:00) , managerid varchar (16) not null, categoryid int not null constra
22、int df_news_rootid_07020f21 default(0) ,constraint pk_news primary key clustered (newsid asc )with (ignore_dup_key =off) on primary )on primary-创建表之间的关系goalter table dbo .news with check add constraint fk news category foreign key (categoryid)references category (categoryid)on update cascadeon delet
23、e cascadegoalter table dbo .news with check add constraint fk_news_manager foreign key (managerid)references manager (managerid)on update cascadeon delete cascade-初始化数据库,向管理员基本信息表manager中添加root用户记录insert into manager (managerid, password, managername) values (root,root, root)1、3公共模块 为了重复使用代码,可以将许多页面
24、都使用的公共代码抽取出来,放在单独的程序文件中,当其他文件需要调用这些代码时,直接应用就可以了。这种做法既可以简化程序代码,又便于日后的修改和维护。本章介绍的新闻管理与发布系统将许多页面共同拥有的代码抽取出来作为公共模块,包括jsp文件和css样式表文件。1.3.1 数据库连接jsp文件内嵌java代码,可以说,jsp的本质是java。在java中访问数据库是通过jdbc接口进行的。jdbc是一种用于可执行sql语句的java api,为数据库开发人员提供了一种标准的应用程序设计接口,使开发人员可以使用java语言编写完整的数据库应用程序。在jsp技术中。用户访问数据库是一个三层结构,如图所示
25、数据库浏览器jdbc驱动jsp服务器microsoft sql jdbcsql server2005tomcatinternet explorer 使用jsp访问数据库系统的connectdb.jps 代码如下:对程序代码中一些技术知识做如下说明:a com.microsoft.jdbc.sqlserver.sqlserverdriver是sqlserver jdbc驱动程序类,使用drivermanager.getconnection()就会与这个jdbc驱动程序进行交互从而得到数据库连接。b java.sql.connection用于保存一个数据库连接。java.sql.driver阿ma
26、nager是驱动程序管理器,drivermanager.getconnection()方法用来从驱动程序中得到一个数据库连接,第一个参数url为数据库连接字符串,第二个和第三个参数分别为访问数据库的用户名和密码。c 数据库连接字符串url的作用是定位一个数据库以便驱动程序能够找到这个数据库,并与其进行连接。格式为“协议标识:驱动程序标识:数据库标识”。其中,协议标识均为“jdbc”,驱动标识代表所有的协议名,数据库标识是数据库的定位方式,例如使用数据库所在计算机的ip,如果在本机中,则使用localhost。databasename标识数据库的名称,本系统数据库的名称为news。d java.
27、sql.statement用来发送一条sql语句,通过connection.creat.statement()从指定的数据库连接中得到一个statement实例。e java.sql.resultset哟呵拿过来保存sql语句执行的结果,可以用来存取结果中的数据。1.3.2 导入类包文件jsp以java语言为基础,java的基础类库在jsp中同样可以使用,使用这些已有的api可以很方便的实现许多已有功能,避免重复开发。系统中几乎所有的jsp文件都需要使用到某个或某些java基础类,使用基础类之前,需要用import将基础类导入进来。为了简化,本系统将所有的基础类导入语句放在一个单独的jsp文件
28、common.jsp中,其他文件使用时,包含这个文件就可以了。common,jsp的代码如下:/指定输出页面按照gb2312进行编码,解决jsp页面中无法正确显示中文问题/导入部分基础类有几个java基础类是由jsp引敬自动导入的,开发人员不需要显示导入,例如:java.lang.*、java.servlet.jsp.*、java.servlet.http.*。当然,开发人员显示导入这些类也不会有任何问题。1.3.3 页面头和页面尾文件为了是新闻管理与发布系统的所有页面具有统一的风格,把页面头和页面尾的代码分开,分别放在单独的jsp文件中,其他页面使用时,利用include指令将它们包含进来即
29、可。这是开发一个大型、实用的web应用常用的方法,可以简化页面的重复代码,也为以后的管理和维护工作提供了方便。页面头header.jsp文件代码如下:/显示日期时间function show1()if(!document.all)returnvar digital=new date();var year=digital.getyear();var month=digital.getmonth()+1;var dat=digital.getdate();var hours=digital.gethours();var minutes=digital.getminutes();var second
30、s=digital.getseconds();var dn=amif (hours12)dn=pm; hours=hours-12;if (hours=0)hourse=12;if (minutes=9)minutes=0+minutes;if (seconds=9)seconds=0+seconds;var ctime=year+-+day+ +hourse+:+minutes+:+seconds+ +dn;tickl .innerhtml=+ctime+settimeout(show1(),1000);/页面加载是调用函数show1window.onload=show1/新闻搜索funct
31、ion searchnews()/如果用户没有输入搜索条件,弹出警告对话框 if (content.value = ) alert(请输入查询条件.);content.focus();return (false); /定向到搜索结构页面 top.location=searchnews.jsp?content=+content.value 首页 新闻搜索: *页面尾footer.jsp文件代码如下: 管理入口 copyright2006 all rights reserved. 用户单击“管理入口”链接,进入系统后台管理登陆页面。1.3.4 格式转换文件在新闻管理与发布系统中,管理员添加、修改、
32、删除新闻都是通过网页进行的。将网页中的内容存入到数据库中,需要对其中某些格式进行转换。例如网页中回车换行存入到数据库中。将其转换为“”。因为在html语言中,回车换行就是使用标记。这样当取出新闻内容显示在网页中时,不需要在此转换格式了。格式转换文件codefilter.jsp代码如下:/=0)output.append(str source .substring(posstart,pos);output.append(str_new);posstart=pos + lengofold; if (posstart lengthofsource)output.append(str source .
33、substring(posstart); return output.tostring();string tohtml(string s)s = replace(s,>);s = replace(s,&,&);s = replace(s,t, );s = replace(s,rn,n);s = replace(s,n,);s = replace(s, , );s = replace(s, ,);s = replace(s,);return s;string unhtml (string s)s = replace(s, , );s = replace(s,n);
34、return s;1.3.5 防止恶意登陆页面 管理员必须经过登陆验证才能进入后台管理系统,如果非法用户直接在浏览的地址栏中输入某个管理员页面地址时,就会逃过登陆验证进入后台管理系统。为了防止这种恶意登陆情况,编写check.jsp文件,判断管理员是否经过登录验证。check.jsp代码文件如下:系统中充分利用了会话对象。会话对象类似于普遍应用程序中的全局变量。在一个web应用程序中,当一个用户访问该应用程序时,会话对象使这个用户在改web应用的所有页面共享数据。通常,开发人员喜欢使用会话对象在web应用的所有页面中共享信息。可以使用putvalue()和getvalue()方法来保存和读取会话对象中的数据。上述代码中通过读取会话对象中的数据islogin是否为true来判断管理员是否通过登录验证。系统管理员在成功登陆后会将islogin数据保存为true,可以参看文件“chklogin.jsp”的程序代码。1.3.6 css 样式表css是cascading style sheets的简称。更多的人把乘坐样式表。顾名思义,它是一种设计网页样式的工具。借助css的强大功能,网页将在你丰富的想象力下千变万化。将所有的css放到一个文件中,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 力学小考试题及答案
- 广东高升专自考试题及答案
- 中级食品安全员考试题库及答案解析
- 矿山生态考试题及答案
- 口琴曲目考试题及答案
- 肯德基岗位考试题及答案
- 科目全集考试题及答案
- 句容餐饮考试题及答案
- 静物组合考试题及答案
- 2025年中国弹力棉睡衣数据监测研究报告
- 绘本社团课件
- 《新能源汽车概论》课件-项目一 新能源汽车的认知与发展趋势
- 煤矿作业规程编制课件
- DB11∕T 1135-2024 供热系统有限空间作业安全技术规程
- 泰戈尔简介课件
- 2025四川乐山市市中区国有企业招聘员工47人笔试参考题库附答案解析
- 2024年全国网络安全知识竞赛试题库及答案
- (2025年标准)产假提前上班协议书
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册(全册)教学设计(附目录P137)
- 《全球哮喘管理和预防策略(GINA 2025)》解读
- 计划生育技术服务诊疗常规与操作规程
评论
0/150
提交评论