配色: 字号:
jsp新闻发布系统ssh论文
2024-05-24 | 阅:  转:  |  分享 
  
基于WEB的信息发布系统



摘 要



随着电脑、手机等能够连接网络设备的大众化,各种WEB网站开始被设计开发出来,功能各式各样,涉及的领域也有不同,生活、商业、校园等等。而信息的发布是网络的一大作用,人们上网的主要需求就是汲取自己想要的信息或者感兴趣的信息,因此基于WEB的新闻发布系统也就此诞生。

从近几年WEB网站的扎堆出现不难看出人们对外界了解很大程度上依赖于信息类的WEB网站,而且该需求在日益增长,人们都开始依赖于这些web网站,对信息的汲取也不仅仅只限于几个信息网站,而是越多越好,只要是能够满足他们对信息汲取的需求的的存在

上述就是我会选择“基于WEB的新闻发布系统”作为我的毕业设计题目的原因。

本文所描述的“基于WEB的新闻发布系统”的设计和开发运用了当前比较流行的SSH框架开发技术,前端设计方面运用了jsp+css+jQuery技术,只为了给用户最完美的用户操作体验。本应用的后台开发运用的是java开发技术,数据库采用了MySQL数据库进行数据的存储操作。



关键词:WEB;新闻发布;JSP;系统





















ABSTRACT



With the popularity of network equipment to connect computers, mobile phones, various WEB site design began to be developed, features a wide range of areas involved are also different, life, business, school and so on. The distribution of information is a big part of the network, the Internet is the primary needs of the people or information they want to learn the information of interest, therefore WEB-based information dissemination system also was born.

From the get together in recent years, the emergence of WEB site is easy to see that people understand the outside world relies heavily on information like WEB site, and the growing demand, people are beginning to rely on these web sites for information and not only to learn information only been limited to a few sites, but the more the better, as long as they can meet their information learned websites are able to meet them, the emergence of these sites affect people''s habits and ways for people to tea before a meal amateur life adds indelible mark.

These are, I would choose "WEB-based information dissemination system" as the subject of my graduation reasons.

"WEB-based information dissemination system" described herein is designed and developed using the current popular SSH framework development technology, front-end design using the jsp + css + jQuery, just to give users the best possible user experience. The background of the application development using the java development technology, the database uses the MySQL database to store operational data.



Keywords: WEB; press releases; JSP;system









目录

第一章绪论 1

第二章相关技术介绍 2

2.1 框架技术 2

2.2 SSH框架的优点 2

第三章系统需求分析 3

3.1 系统概述 3

3.2 系统可行性分析 3

3.3 系统设计目标 4

3.4 系统流程分析 4

3.5 系统模块分析 5

第四章系统设计 8

4.1 系统概要设计 8

4.2 系统数据库设计 11

4.2.1 创建数据库 11

4.2.2 数据库逻辑结构设计 12

4.2.3 创建表的脚本文件 13

第五章系统功能实现 15

5.1前台新闻浏览系统 15

5.1.1游客登录系统 15

5.1.2用户登录系统 17

5.2后台新闻发布管理系统 22

5.2.1 普通管理员登录 22

5.2.2超级管理员登录 25

第六章系统测试 32

6.1 测试概述 32

6.2 测试环境 32

6.3 模块化测试 32

第七章总结 38

7.1 系统优点 38

7.2 系统缺点 38

参考文献 39

致谢 40

第一章 绪 论

随着网络信息的广泛应用,基于Web的信息发布平台发展的越来越成熟化,智能化和规范化,使得越来越多的人选择在网络上看时事新闻,娱乐八卦,农业民生等新闻,而摒弃了以前看报纸,看杂志的习惯。近年来由于网站的种类与形式越来越鲜明,类似于文档的阅读下载网站发展的也越来越多。通过上网用户可以在网络上突破时间和空间的限制而实现网上阅读。网上阅读网站的崛起对传统的图书流通体系产生了强烈的冲击,它有着经营成本低、用户检索方便、无地域限制等特点。 这正是由于网络的方便性,快捷性,广泛性和高效性,网民只需要在新闻信息平台轻轻点击一下自己想要浏览的新闻标题,就能浏览的该新闻内容,所以一个基于Web的信息发布平台也应运而生。网络信息的迅猛发展,使得网络在人们生活中的应用越来越广泛。人们越来越想在最短的时间内阅读到自己所需的图书。但书目的繁多,给人们在繁忙的工作生活中购书带来了很大的麻烦,于是网上阅读便成了人们向往的事情。这种在线阅读方式是由多媒体网络资源、网上阅读社区及网络技术平台构成的全新的阅读环境。相对于其他的阅读模式来说,它具有无可比比拟的优势。该平台不但能够满足那些喜欢关注各类新闻的人士,他们还能在该平台中浏览平常未能关注的新闻。研究该平台主要是它带来的方便是空前的,它和人们常规的获取信息的方式不同,它大大缩减了人们获取信息的时间和金钱,例如传统的报纸,每天就只有有限的信息内容,也需要一定的制作成本,杂志则有更多的缺点,一般都是月更,更新速度慢,消息不能第一时间传递给读者,然而基于Web的信息发布平台对于这些缺点全能避免,所以说该平台带来的便捷是空前的,他彻底的改变了人们认识社会和了解社会的方式,使网民真正的做到足不出户便知天下事。











第二章 相关技术介绍

2.1 框架技术

运用了struts+hibernate+spring框架。

2.2 SSH框架的优点

1、Hibernate的优点:

(1) 对象/关系数据库映射(ORM)

这种基于对象/关系的数据库映射,使得我们只需要操作对应的对象即可,将开发变得更对象化,把以前的将数据库作为中心的思想抛弃掉啦。

(2) 透明持久化(persistent)。

例如,用作跟表示层打交道的数据传输对象。

(3) 事务性Transaction(org.hibernate.Transaction)。

(4) 是一个能够减少开发复杂度的轻量级框架。



2、Spring的优点:

Spring基于是开源的框架,这在很大的程度上使它得到更多人的青睐。

Spring能够有效地连接你的中间层的对象。

Spring能够有效的清除一些工程中经常出现的对Singleton的频繁使用的问题。

使用Spring构建的应用程序易于单元测试。



3、Struts2的优点:

Struts2 明显的突出的两个优势是: 一是大大减少了对ServletAPI的依赖,二是其可扩展性得到了大大的提高。

当自己写一个类来实现action中的接口时,能很方便自己定义返回值。面向切面编程的思想在Strut2中也有了很好的体现。最重要的体现就是拦截器的使用。总共分为三层:Service层(就是业务逻辑层),负责实现业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。View层,负责页面的展示。

第三章 系统需求分析

3.1 系统概述

本新闻发布系统提供了不同类型的新闻,如焦点新闻、法治新闻、体育新闻、娱乐新闻和图片新闻等。为了满足不同用户需求,系统将用户分为三类,即浏览者,普通用户和系统管理员。

浏览者能在本系统中进行新闻浏览、阅读和新闻搜索。每条新闻的标题被做成一个链接,用户点击它们就能跳转页面进行新闻阅读;新闻阅读页面,每条新闻的详细信息将被取出,包括内容、标题等;浏览者可以依据自己的个人喜好来进行新闻的搜索以及阅读,可以手动在搜索栏中输入自己感兴趣的新闻关键字进行新闻搜索,搜索出的结果会统一展示在搜索栏的正下方供浏览者选择;但是浏览者不能对新闻进行评论,需要注册成为普通用户后,登录到相应界面对新闻进行评论。该系统的会员用户除了具有浏览者所具有的这些操作功能外,还可以对自己感兴趣的新闻进行评论等操作,但前提是首先要以用户的身份登录该新闻系统。该新闻发布系统分为前后台两个系统,前台是供浏览者和普通用户使用的,后台系统是供管理员和超级管理员使用的,管理员登录后台新闻发布系统后,特有的功能是能对新闻进行增删改查的操作,对留言模块也具有增删改查的功能,还具有对用户具有增删的功能,超级管理员比管理员的权限更大,具有对管理员进行增删的操作权限。

3.2 系统可行性分析

随着社会的信息化和网络化,人们对网络的依赖和信任也在日益增强,网络的发展也得到空前的发展,因为需求决定发展方向,人们对网络的依赖一大部分原因来源于网络的信息广,网络能带给他们最新,最快,最全的信息,最关键的一点是能满足他们想要得知的任何信息。新闻是最直接的信息接收方式,所以新闻发布系统也就孕育而生了,它能够满足大众对于信息的汲取以及对这个世界的人和物的好奇。新闻发布系统在一定程度上促进了新闻媒体的多元化,是人们又多了一种去了解身边,了解国家和了解世界的渠道,所以说新闻发布系统是非常可行的,而且具有一定的市场价值。

而且相比于电视等新闻媒体,新闻发布系统具有操作性强,交流性强等优点,你想要了解哪方面的新闻,只需要在该系统中进行简单的关键字搜素即可,便能将你想要关注和了解的新闻呈现在你的眼前,但是电视等新闻媒体只是播报大众的新闻,并不能随心所欲的进行浏览,但新闻发布系统能做到这一点。还有一点就是在新闻发布系统中只要登录成为普通用户就能对自己感兴趣的新闻进行评论,让别人看到自己的看法,同时也能看到别人的评论,并与之讨论和交流,这是电视等新闻媒体远远所不能够比的。

3.3 系统设计目标

新闻发布系统是一个基于新闻和内容管理的全站管理系统,本系统可以将杂乱无章的信息经过组织,合理有序地呈现在大家面前。新闻作为最直接的信息接收方式,在人们生活中起到了不可忽略的作用,而新闻发布系统就是将当下的热门的以及各个类别的新闻发布到一起的,能够供人们自由浏览和主动搜索自己感兴趣的新闻的这么一个系统。新闻发布系统既然能够满足大众的这一不可忽视的需求,当然就会越来越重要,也越来越不可或缺。

3.4 系统流程分析

为了使读者进一步了解本实例系统的设计,本小节将对系统进行流程分析。对用户进行身份判断分为两个阶段:

(1)判断用户是否是该系统的有效用户。

(2)判断该有效用户属于普通用户还是管理员。

第一阶段是将准备登录的用户名和密码与系统连接的数据库中的用户信息表中的数据进行匹配,如果能够在数据库中找到对应的用户则登录成功。第二个阶段是根据该有效用户的用户名查找出该用户对象,根据用户对象中的style属性值(style=1代表普通用户,style=2代表管理员)决定其工作界面。

该系统一分为二的分成了前台系统和后台系统,后台系统具有对身份判断的上面两个阶段,前台对身份的判断只有上面的第一阶段

图3-1展示了后台系统的登录流程。超级管理员能够对所有普通用户的信息和普通管理员的信息进行管理以及对所有新闻信息进行管理,而普通管理员少了一个对普通用户信息管理的权限。



图3-1 后台系统的流程分析



3.5 系统模块分析

通过功能需求的分析以及实际的考虑,该系统扩展为六个功能模块。我们根据这些功能,设计出系统的功能模块,如下图所示。



图3-2 新闻发布及管理系统功能模块示意图





新闻发布及管理系统的功能模块之间的关系如下图所示。



图3-3 新闻发布及管理系统的功能模块关系图



在本系统中,用户管理模块的功能比较简单。该系统完成后,会具有一个默认的用户,即“超级管理员”用户,是程序员利用sql语句手动添加到数据库当中的。“超级管理员”可以创建普通用户、修改和删除普通用户;也可以创建普通管理员、修改和删除普通管理员。

用户管理功能模块的关系如图3-4所示。



图3-4 用户管理功能模块的关系图









































第四章 系统设计

4.1 系统概要设计

新闻发布及管理系统包括浏览者模块、用户模块、管理员模块等模块。具体描述如下:

a.浏览者用例描述



图4-1 浏览者用例图



名称:浏览者模块

参与执行者:浏览者

前置条件:数据库已经连接

活动的基本过程:

进入新闻主页。

可以进行注册。

可以浏览新闻、搜索新闻。

不能对新闻留言。

后置条件:如果浏览者注册完成并退出,则用户的相应操作信息将被记录到数据库中。

b.普通用户用例描述



图4-2 普通用户用例图



名称:用户模块

参与执行者:已注册用户

前置条件:数据库已经连接

操作的基本过程:

如果已经有了该系统普通用户的账号,只需要填写个人登录信息并登录;如果没有,则需要先进行“注册”操作,再进行登录操作。

成功登陆并会自动跳到新闻主页,并能自由的进行新闻搜索、浏览以及留言等操作。

c.系统管理员用例描述



图4-3 系统管理员用例图



名称:管理员模块

参与执行者:管理员

前置条件:系统管理员已经登录、数据库已经连接

活动的基本过程:

进入用户管理界面,显示目前已注册的用户及每个用户的信息。

管理用户留言信息。

管理用户个人信息。

对所有的新闻进行管理操作,具体管理操作包括:新增新闻、查找新闻、修改新闻和删除新闻。

可以修改管理员密码。

后置条件:数据显示更新后的数据,并且数据在数据库中已经更新。



图4-4 系统数据流程图



详细的数据需求分析:





图4-5 E-R关系图



4.2 系统数据库设计

4.2.1创建数据库

首先创建一个数据库news,用来保存本系统的所有数据。创建数据库的脚本代码如下:

CREATE DATABASE news;来创建数据库。

4.2.2数据库逻辑结构设计

该新闻系统的数据库包含三个表:新闻的基本信息表:News、用户的留言表:Discuss和用户的信息表:users。

下面分别介绍这些表的结构。

1.新闻的基本信息表News

基本新闻表News用来保存网上新闻的基本信息,结构如表4-1所示。



表4-1News的结构表

编号 字段名称 数据结构 说明 1 Id int 新闻编号 2 Title varchar(100) 新闻标题 3 Text text 新闻内容 4 UpdateTime datetime 提交时间 5 Issuer varchar(50) 提交人 6 CateId int 新闻类别编号 7 Picture bit 是否有图片标记(0没有;1有) 8 State int 新闻有无被删(0删除;1没有删除) ??

在SQL?Server?2000中,可以使用char、varchar和text等3种数据类型存储非Unicode字符数据。表News中的Content字符是用来存储新闻的正文内容的,由于一般新闻的正文内容都比较长,所以选用text数据类型,因为text数据类型也是可变长度的,最多可为2147483647个字符。

2.用户的留言表Discuss

用户的留言表Discuss的作用可以顾名思义,就是用来存储用户对新闻的留言,该表的结构如表4-2所示。

表4-2Discuss的结构表

编号 字段名称 数据结构 说明 1 id int 评论编号 2 UserId varchar(20) 评论人名称 3 UpdateTime datetime 提交时间 4 Text varchar(4000) 评论内容 5 Newsld int 新闻编号 ??

在SQL?Server?2000中,可以使用datetime和smalldatetime两种数据类型存储日期时间数据。两个数据类型精确的范围不同,前者精确到3.33ms;后者精确到分钟。我选择了使用datetime。

3.用户信息表Users

用户信息表Users用来保存用户的基本信息,结构如表4-3所示。



表4-3用户信息表

编号 字段名称 数据结构 ????说明 1 UserId int 用户ID号????。 2 UserName varchar(50) 用户名 3 PassWord varcahr(50) 密码 4 RealName varchar(50) 用户姓名 5 Email varchar(50) 电子邮箱 4.2.3创建表的脚本文件

由前面“4.2.1创建数据库“可知,已经建立了news数据库,现在只需要在该数据库中建立由“4.2.2数据库逻辑结构设计”中提出的三张表,三张表的结构已经设计出来了,下面就是三张所需表的建表语句:

1.创建新闻基本信息表:News

建表语句如下:

CREATE TABLE News

(

Id Int IDENTITY PRIMARY KEY,

Title Varchar(255) NOT NULL,

Text Text,

UpdateTime Datetime,

Issuer Varchar(255),

CateId Int,

Picture Int,

StateInt

)

将News表中的title(即新闻的标题)字段设置为“非空”,就是在每发布一条新闻的时候,该新闻的标题都不可能为空。

2.创建用户留言表:Discuss

其建表语句如下:

CREATE TABLE Discuss

(

Id Int IDENTITY PRIMARY KEY,

UserId Varchar(225),

UpdateTime datetime,

Text Text,

NewsId Int

)

3.创建用户信息表:Users

建表语句如下:

CREATE TABLE Users

( UserId Int Primary Key IDENTITY,

UserName Varchar(255) NOT NULL,

PassWord Varchar(255) NOT NULL,

RealName Varchar(255),

Email Varchar(255)

)

INSERT INTO Users (UserName, PassWord, RealName, Email) VALUES(''admin'', ''123456'', ''程勇康'', ''1027285184@qq.com'')

在创建用户信息表users后,同时将“超级管理员”(admin)这个最大权限的用户插入到News数据库中中,并设置了一个默认的并且好记的密码:123456。

在执行这些脚本之前,请确定数据库news已经存在,否则会产生错误。如果要创建的表已经存在,则需要先将表删除。











第五章 系统功能实现

5.1 前台新闻浏览系统

5.1.1游客登录系统

在浏览器中输入前台新闻浏览系统的地址:http://localhost:8080/TradeManage/后出现的页面如图5-1-1:



图 5-1-1



目前为游客状态,能够有选择的进行新闻的浏览,还可以手动写出新闻标题的关键字进行新闻的搜索,找到自己感兴趣的新闻,如图5-1-2:



图 5-1-2



这是点击”热门新闻”选择项后,筛选出来的新闻,点击新闻标题名字即可浏览该新闻内容,如果该新闻内容有普通用户的留言的话,游客还能看到这些留言,如图5-1-3:



图 5-1-3



游客身份进行的新闻浏览不能够进行留言,当点击“提交留言”时会显示如图5-1-4:



图 5-1-4



5.1.2用户登录系统

只有登陆的普通用户才可以进行新闻留言和左边栏的操作。

点击左边栏的最后一个选项“登陆”,即进入了登陆页面,如图5-1-5:



图 5-1-5



输入完正确的用户名和密码即可成功登陆到系统;如图5-1-6所示:



图 5-1-6



登陆成功后,能够对自己的留言进行管理,查看自己留言过的新闻,如图5-1-7所示:



图 5-1-7



用户能够对自己的留言进行“删除”操作,也能点击文章标题继续浏览该新闻,还有一个功能是“个人密码修改”,能对自己密码进行修改,如图5-1-8:



图 5-1-8



点击“退出”按钮即可成功退出系统。

这些用户的操作的前提都是在用户正确输入用户名和密码的前提下(即成功登陆到系统后),当用户忘记密码时,可以点击登陆中的“忘记密码”,如图5-1-9:



图 5-1-9



点击“忘记密码”后会跳到如图5-1-10的页面:



图 5-1-10



按要求在输入框中输入用户名,点击下面的“进行邮箱验证找回密码”,此操作会向你当初注册用户时留下的邮箱中发送一条一次性的更改密码的链接,邮箱中收到的邮件如下图5-1-11所示:



图 5-1-11



点击该链接后进入的页面如下图5-1-12所示:



图 5-1-12

如图输入新的密码,并点击确认就完成了密码的修改,然后就能用新的密码进行登录系统。此功能的部分实现代码如下:

public String sendcheck() throws Exception{

//String name = request.getParameter("name");

String name = adminer.getAIdcard();

Adminer adminer = adminerDao.findByname(name);

if(adminer != null){

if(adminer.getAIdcard().equals(name)){

adminer.setUpdatetime(new Date());

adminer.setNumber(Math.random()+"");

adminerDao.updateAdminer(adminer);

/String context = new String("
+ "/checkemail?id=" + adminer.getAdminerId() + "&number=" + adminer.getNumber() + "\">
");/

String context = newString(

"亲爱的的用户,您好: "

+ " 您申请认证邮箱找回密码,请点击以下链接设置新密码!(注:链接点击后即失效,如有需要请重新申请操作))" +

"http://localhost:6666/TradeManage/checkemail?id="+ adminer.getAdminerId() + "&number=" + adminer.getNumber());

/+ "(注:链接点击后即失效,如有需要请重新申请操作)");/

String title = new String("新闻发布平台密码找回");

String from = "新闻发布系统管理平台";

String from_email = "1027285184@qq.com";

//String from_email = "hk_system@hongkun.com.cn";

//String from_email = "jun_xu@wishbuild.com";

adminerDao.mailSenderOK(adminer.getEmail(), context, title, from, from_email);



}

msg = "已成功向您的邮箱发送验证链接,请前往确认!";

return "suc";

}else{

msg = "你输入的用户名不存在!";

return "err";

}



}

5.2 后台新闻发布管理系统

5.2.1普通管理员登录

在浏览器中输入后台新闻发布管理系统的地址:http://localhost:6666/TradeManage/login时会直接跳出登录的页面,如图5-2-1:



图 5-2-1



输入完管理员的用户名和密码后,点击登录就能成功登录到新闻发布管理系统的后台,登录成功后的页面如下图5-2-2:





图 5-2-2



如果是用普通用户登录到新闻发布管理系统后台的话,当点击任何操作都会以弹出框的形式警告:“你的权限不足”,如下图5-2-3:



图 5-2-3



我们将普通用户,管理员和超级管理员都是放在同一张表中,通过字段style进行区分,超级管理员style值为3,普通管理员的style值为1,普通用户的style的值为2。权限控制的部分代码如下:

Action中的代码:

public String login() throws Exception{

String name=adminer.getAIdcard().trim();

String pwd =adminer.getAPwd().trim();

boolean flag = adminerDao.login(name, new MD5Code().getMD5ofStr(pwd));

if(flag){

adminer = adminerDao.findByname(name);

session.setAttribute("userId", adminer.getAdminerId());

session.setAttribute("adminerId", adminer.getAIdcard());

session.setAttribute("style", adminer.getAStyle());

session.setAttribute("username", adminer.getAName());

return"suc";

}

loginmsg = "用户名或密码错误!";

return"err";

}



JSP页面的代码:

新闻库



  • 新闻库管理



    • 添加新闻


    • 管理新闻








  • 主要原理是:将登录进后台的用户的部分信息通过session存储起来,最重要的就是用户的style值,然后再JSP页面中得到登录用户的style值,并且判断style的值,为1的话,就会跳转到正确的页面,否则不让其跳转并且弹出警示框。

    5.2.2超级管理员登录

    当超级管理员登录后台系统后,具有最大的权限,能对新闻管理模块,新闻留言管理模块和用户管理模块进行所有操作。具体权限:能对新闻进行增删改查,还能对新闻留言进行删除,超级管理员最重要的权限是能对普通会员和管理员进行增删改查的操作。

    新闻管理模块:分为“添加新闻”和“管理新闻”两个功能,点击“添加新闻”会出现如下图5-2-4所示的页面:





    图 5-2-4



    可以按需要添加新闻,并点击保存信息来提交新闻,当新闻被成功提交后,新闻就会被保存到数据库。

    当点击“管理新闻”时页面如下图5-2-5:



    图 5-2-5



    页面会默认搜索出所有的新闻,并且按照发布新闻的时间进行降序排序,即最新发布的新闻会在前面显示,以前发布的会在后面显示,页面默认是一页显示10条数据,根据需要可以调整为每页显示10条数据,20条数据和50条数据。然后根据条件例如月份,年份,新闻类型等快速搜索出想要的新闻,还能手动填写新闻标题关键字进行新闻搜索,并且对搜索出的新闻能够进行查看,编辑和删除的操作。如图,默认进入页面时将所有结果搜索出来了,37条结果,当点击“时政新闻”时,如下图5-2-6:



    图 5-2-6



    搜索出时政类的新闻23条,实现此功能的部分代码:

    Action层中的代码:

    public String findAllClient()throws Exception{



    request.setCharacterEncoding("UTF-8");

    String catagory = (String)request.getParameter("catagory");

    String yearNews = (String)request.getParameter("yearNews");

    String month = (String)request.getParameter("month");

    String keyWord = (String)request.getParameter("keyWord");

    page.setCatagory(catagory);

    page.setYearNews(yearNews);

    page.setMonth(month);

    //page.setPageNumber(pageNumber);

    page.setKeyWord(keyWord);

    int count = clientDao.selAllClient(page);

    page.setRowCount(count);

    //page.setPageSize(20);

    list = clientDao.findAllClient(page.getCurrentPage(),page.getPageSize(),page);

    page.setList(list);

    page.execute();

    if(msg!=null){

    if(msg.equals("delete")){

    msg="删除成功";

    }elseif(msg.equals("update")){

    msg="更新成功";

    }

    }

    if(type!=null){

    if(type.equals("op")){

    findAllClientOption();

    list = clientDao.findAll();

    key="name";

    msg="找到"+list.size()+"条记录";

    return"op";

    }

    }



    return"admin";

    }

    这些代码的主要功能是通过调用Dao层的实现方法,查出数据库中所有满足搜索条件的新闻,并以list集合的形式返回,然后调用自己写的page类,用来将返回的list集合作为参数传给page类的对象,以此来实现将搜索到符合条件的新闻以分页的方式展示出来。

    如果想对所发布的新闻进行预览,点击按钮“查看”,出现如下图5-2-7所示的页面:



    图 5-2-7



    新闻页面的整体布局:第一行为“新闻标题”,第二行为“作者和发布日期”,“作者”即为“新闻发布人”,第三部分则为新闻的正文,第四部分为“留言展示区”,上面会显示所有普通用户针对该新闻的留言,并且留言对应着普通用户的用户名,点击其“用户名”能查看其基本信息,第五部分为留言区,普通用户能在“留言区”进行留言,点击“提交留言”成功后,留言展示区会显示出刚刚提交的留言。

    “新闻留言管理”是为了维护互联网的文明与和谐而诞生的,当有不正当或者带有煽动和过激的言论出现在留言中时,管理员有删除这些留言的功能。查看留言页面如下图5-2-8:



    图 5-2-8



    还有最重要的一个模块就是“用户管理模块”;超级管理员具有查看、添加和删除“普通管理员”和“普通用户”的权限,而“普通管理员”只具有查看、添加和删除“普通用户”的权限。

    还有一个基础的功能,是所有的用户都具有的功能,即“个人密码修改”的功能。如下图5-2-9:



    图 5-2-9

    实现此功能的部分代码如下:

    public String changePwd()throws Exception{

    Adminer ad = adminerDao.findByid(adminer.getAdminerId());

    String ps = newMD5Code().getMD5ofStr(adminer.getAPwd());

    if(ad.getAPwd().equals(new MD5Code().getMD5ofStr(password))){

    ad.setAPwd(new MD5Code().getMD5ofStr(adminer.getAPwd()));

    adminerDao.update(ad);

    msg="修改成功";

    login();

    }else{

    msg="原密码错误";

    return "err";

    }

    return "suc";

    }

































    第六章 系统测试

    6.1 测试概述

    进行测试前需要考虑采用何种测试方案,因此测试方案是测试环节中的关键技术问题。我在为了能提升测试效率和降低测试代价和成本,本测试方案采用黑盒法设计作为基本的测试方案,再利用白盒法测试补充一些方案。测试软件开发的过程,在本应用开发过程中对部分功能进行及时性的测试,确保不会在开发完成之后出现太多的功能缺陷,保证整个开发过程是高质量的。高质量并不仅仅是因为优秀的代码,只有符合用户需要的产品才能说是高质量的产品。

    6.2 测试环境

    测试客户端1(192.168.0.0.1) 硬件环境 设备型号: 宏碁 Aspire 4752G CPU: 英特尔 第二代酷睿 i5-2430M cpu @2.40GHz 内存: 2 GB 硬盘: 500 GB 软件环境 操作系统: Windows 7 32位 应用软件: Firefox 34.0.5

    6.3 模块化测试

    测试内容主要分为前后台系统的登录模块测试和后台系统的新闻功能模块测试两个部分。

    登录模块测试:该测试主要测试的是前后台系统的注册功能和登录模块是否正常,以及后台的登录能否做到权限的限制,由于分为普通用户,普通管理员和超级管理员三种用户,因此分别测试三种用户的所拥有权限是否正确。首先输入网址:http://localhost:6666/TradeManage/login.jsp进入系统的登录页面,前面已近说过在建立users表(用户基本信息表)的时候,同时插入了一条“超级管理员用户”admin,如图6-1:



    图 6-1



    登录成功后会跳转到新闻主页,如图6-2:



    图 6-2



    当点击“管理新闻”会在页面展示出所有已经发布过的新闻,如图6-3:



    图 6-3



    能对新闻进行查看、编辑和删除等操作,超级管理员与普通管理员权限的区别:超级管理员除了能够对普通用户进行管理外还能对普通管理员进行管理,即能对他们进行增删的操作,而普通管理员唯一少的一个权限就是对管理员的操作。如图6-3左侧所示,超级管理员具有添加管理员的功能,点击”添加管理员“会是页面如图6-4:



    图 6-4



    如图6-4添加了一个账号为test的普通管理员,密码为123,然后点击”确认注册“后退出系统,重新登录刚刚注册的普通管理员账号”test“;登录后的页面如图6-5:



    图 6-5



    会发现该普通用户少了一个超级管理员才有的功能:添加管理员;由此可以判断权限判断成功,所以登录模块测试完成。

    新闻功能模块测试:本测试模块主要包括新闻的添加、修改、编辑和删除等一系列的新闻模块的功能。就拿刚刚的普通管理员“test”来测试,用“test”登录成功后,点击“添加新闻”页面会如图6-6:



    图 6-6



    添加完新闻的基本信息后,点击“保存信息”进行新闻的发布,并会自动跳转到新闻管理的页面,而且第一条就会是刚刚添加的新闻,因为新闻的排序是通过发布时间的降序来排的,刚刚发布的新闻的标题为:“测试的新闻”,所以跳转到的新闻管理页面的第一条数据即为刚刚的“测试的新闻”,如图6-7:



    图 6-7



    点击第一条新闻的“查看”操作,会如图6-8所示:



    图 6-8



    即前台的新闻展示的样子,点击“编辑”操作能对新闻的基本信息进行修改,点击“删除”操作,即将该条新闻删除,前台的浏览者或者普通用户将不能够搜索到这条新闻。测试的结果和预想的结果一致,该测试结束。























    第七章 总 结

    7.1 系统优点

    该系统的优点在于将系统一分为二,分为新闻发布系统前台和后台,分工明确,浏览者或者普通用户登录前台新闻发布系统进行新闻的搜索、浏览和留言等操作,管理员或者超级管理员登录后台新闻发布系统,进行新闻的发布、编辑、删除等操作,进行用户的增加和删除等操作,进行留言的查看,删除等操作,而且能一定程度上减少新闻发布系统前台的访问压力,前后台的分工也更加清楚明了,更利于各种用户的使用。

    7.2 系统缺点

    系统的功能过于简单,比如普通用户除了具有新闻的搜索、浏览和留言的功能外,就只具有简单修改密码的功能,普通用户的功能过于单一和简单。

































    参考文献

    [1]赵德奎.?JSP实用案例教程[M]?清华大学出版社,?2004,?5:?70-100?

    [2]?王家华??软件工程[M]?东北大学出版社2001年3月303页?

    [3]?王宜贵??软件工程[M]??北京:机械工业出版社,2002:20-79?

    [4]?孙卫琴??精通struts[M]电子工业出版社?2004年8月?50-70

    [5]?孙卫琴??精通hibernate[M]电子工业出版社?2005年4月?100-120?

    [6]?张洪斌??java2高级程序设计[M]中科多媒体出版社?2001年11月?85-90?

    [7]?Jim?Arlow??UML2.0?and?the?Unified?Process[M]机械工业出版社??2006年6月?30-40?

    [8]?林信良?spring2.0技术手册[M]电子工业出版社?2006年6月?50-100

    [9]?熊节、林仪明、张凯峰、陈玉泉等主编[《CSDN社区电子杂志——Java杂志》创刊号]??

    [10]《程序员》杂志?2007?年第4期?

    [11]?耿祥义编著.JSP基础编程[M].清华大学出版社,2004.55-162?

    [12]徐建波,周新莲.Web设计原理于编程技术[M].中南大学出版社,2005.185-193?

    [13]?孙鑫编著.Java?Web开发详解[M].电子工业出版社,2006.189-274

    [14]?林上杰,林康司编著.JSP2.0技术手册[M].电子工业出版社,2004.3-6?

    [15]?萨师煊,王珊.数据库系统概论(第三版)[M].北京:高等教育出版社,1998.?

    [16]?蔡剑,景楠.Java?Web应用开发:J2EE和Tomcat[M].北京:清华大学出版, 2004.



















    致 谢

    至此,来自对已有的工作点滴、经验的总结和整理分析后,最终完成了这篇论文。其次, 我想对我的母校,我的父母、亲人们,我的老师和同学们表达我由衷的谢意。感谢我的家人四年来对我的默默支持;感谢我的母校四年来对我的培养,让我真正得到了受用一生的技能;。

    同时,本毕业论文的编写也得到了同学们的热情帮助。感谢在整个毕业设计期间在各个方面给予过我帮助的伙伴们,在此,我再一次真诚地向帮助过我的老师和同学表示感谢!

    最后,衷心感谢在百忙之中评阅论文和参加答辩的各位教师!















































    基于WEB的新闻发布系统

    程勇康

    (江西理工大学软件学院,江西南昌 330013)

    摘 要:随着电脑、手机等能够连接网络设备的大众化,各种WEB网站开始被设计开发出来,功能各式各样,涉及的领域也有不同,生活、商业、校园等等。而信息的发布是网络的一大作用,人们上网的主要需求就是汲取自己想要的信息或者感兴趣的信息,因此基于WEB的新闻发布系统也就此诞生。

    从近几年WEB网站的扎堆出现不难看出人们对外界了解很大程度上依赖于信息类的WEB网站,而且该需求在日益增长,人们都开始依赖于这些web网站,对信息的汲取也不仅仅只限于几个信息网站,而是越多越好,只要是能满足他们对信息汲取的网站都能够满足他们,这些网站的出现影响了人们的生活习惯和方式,也为人们茶前饭后的业余生活增添了浓墨重彩的一笔。

    这些就是我会选择“基于WEB的新闻发布系统”作为我的毕业设计题目的原因。

    本文所描述的“基于WEB的新闻发布系统”的设计和开发运用了当前比较流行的SSH框架开发技术,前端设计方面运用了jsp+css+jQuery,只为了给用户最完美的用户操作体验。本应用的后台开发运用的是java开发技术,数据库采用了MySQL数据库进行数据的存储操作。



    关键词:WEB;汲取;信息;影响;生活



    随着网络信息的广泛应用,基于Web的信息发布平台发展的越来越成熟化,智能化和规范化,使得越来越多的人选择在网络上看时事新闻,娱乐八卦,农业民生等新闻,而摒弃了以前看报纸,看杂志的习惯。近年来由于网站的种类与形式越来越鲜明,类似于文档的阅读下载网站发展的也越来越多。通过上网用户可以在网络上突破时间和空间的限制而实现网上阅读。网上阅读网站的崛起对传统的图书流通体系产生了强烈的冲击,它有着经营成本低、用户检索方便、无地域限制等特点。 这正是由于网络的方便性,快捷性,广泛性和高效性,网民只需要在新闻信息平台轻轻点击一下自己想要浏览的新闻标题,就能浏览的该新闻内容,所以一个基于Web的信息发布平台也应运而生。



    一、系统需求分析

    本新闻发布系统提供了不同类型的新闻,如焦点新闻、法治新闻、体育新闻、娱乐新闻和图片新闻等。为了满足不同用户需求,系统将用户分为三类,即浏览者,普通用户和系统管理员。

    浏览者能在本系统中进行新闻浏览、阅读和新闻搜索。每条新闻的标题被做成一个链接,用户点击它们就能跳转页面进行新闻阅读;新闻阅读页面,每条新闻的详细信息将被取出,包括内容、标题等;浏览者可以依据自己的个人喜好来进行新闻的搜索以及阅读,可以手动在搜索栏中输入自己感兴趣的新闻关键字进行新闻搜索,搜索出的结果会统一展示在搜索栏的正下方供浏览者选择;但是浏览者不能对新闻进行评论,需要注册成为普通用户后,登录到相应界面对新闻进行评论。该系统的会员用户除了具有浏览者所具有的这些操作功能外,还可以对自己感兴趣的新闻进行评论等操作,但前提是首先要以用户的身份登录该新闻系统。该新闻发布系统分为前后台两个系统,前台是供浏览者和普通用户使用的,后台系统是供管理员和超级管理员使用的,管理员登录后台新闻发布系统后,特有的功能是能对新闻进行增删改查的操作,对留言模块也具有增删改查的功能,还具有对用户具有增删的功能,超级管理员比管理员的权限更大,具有对管理员进行增删的操作权限。

    随着社会的信息化和网络化,人们对网络的依赖和信任也在日益增强,网络的发展也得到空前的发展,因为需求决定发展方向,人们对网络的依赖一大部分原因来源于网络的信息广,网络能带给他们最新,最快,最全的信息,最关键的一点是能满足他们想要得知的任何信息。新闻是最直接的信息接收方式,所以新闻发布系统也就孕育而生了,它能够满足大众对于信息的汲取以及对这个世界的人和物的好奇。新闻发布系统在一定程度上促进了新闻媒体的多元化,是人们又多了一种去了解身边,了解国家和了解世界的渠道,所以说新闻发布系统是非常可行的,而且具有一定的市场价值。

    而且相比于电视等新闻媒体,新闻发布系统具有操作性强,交流性强等优点,你想要了解哪方面的新闻,只需要在该系统中进行简单的关键字搜素即可,便能将你想要关注和了解的新闻呈现在你的眼前,但是电视等新闻媒体只是播报大众的新闻,并不能随心所欲的进行浏览,但新闻发布系统能做到这一点。还有一点就是在新闻发布系统中只要登录成为普通用户就能对自己感兴趣的新闻进行评论,让别人看到自己的看法,同时也能看到别人的评论,并与之讨论和交流,这是电视等新闻媒体远远所不能够比的。

    新闻发布系统是一个基于新闻和内容管理的全站管理系统,本系统可以将杂乱无章的信息经过组织,合理有序地呈现在大家面前。新闻作为最直接的信息接收方式,在人们生活中起到了不可忽略的作用,而新闻发布系统就是将当下的热门的以及各个类别的新闻发布到一起的,能够供人们自由浏览和主动搜索自己感兴趣的新闻的这么一个系统。新闻发布系统既然能够满足大众的这一不可忽视的需求,当然就会越来越重要,也越来越不可或缺。

    为了使读者进一步了解本实例系统的设计,本小节将对系统进行流程分析。身份认证可以分为以下两个过程:

    (1)确认用户是否是有效的系统用户。

    (2)确定用户的类型。

    第1个过程决定用户能否进入系统。第2个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。

    本系统分为前台系统和后台系统两个部分。前台系统不需要进行身份认证,任何人都可以通过浏览器阅读已经发布的新闻、发表网友评论。



    二、系统设计

    新闻发布及管理系统包括浏览者模块、用户模块、管理员模块等模块。具体描述如下:

    a.浏览者用例描述

    名称:浏览者模块

    参与执行者:浏览者

    前置条件:数据库已经连接

    活动的基本过程:

    进入新闻主页。

    可以进行注册。

    可以浏览新闻、搜索新闻。

    不能对新闻留言。

    后置条件:如果浏览者注册完成并退出,则用户的相应操作信息将被记录到数据库中。

    b.普通用户用例描述

    名称:用户模块

    参与执行者:已注册用户

    前置条件:数据库已经连接

    操作的基本过程:

    如果已经有了该系统普通用户的账号,只需要填写个人登录信息并登录;如果没有,则需要先进行“注册”操作,再进行登录操作。

    成功登陆并会自动跳到新闻主页,并能自由的进行新闻搜索、浏览以及留言等操作。

    c.系统管理员用例描述

    名称:管理员模块

    参与执行者:管理员

    前置条件:系统管理员已经登录、数据库已经连接

    活动的基本过程:

    进入用户管理界面,显示目前已注册的用户及每个用户的信息。

    管理用户留言信息。

    管理用户个人信息。

    对所有的新闻进行管理操作,具体管理操作包括:新增新闻、查找新闻、修改新闻和删除新闻。

    可以修改管理员密码。

    后置条件:数据显示更新后的数据,并且数据在数据库中已经更新。

    数据库设计:本节将介绍创建表的脚本文件,可以在“查询分析器”中执行这些脚本,在数据库news中创建表。

    1.创建表Category

    创建表category的脚本文件为Category.sql,它的代码如下:

    USE news

    GO

    CREATE TABLE Category

    (

    CateId Int IDENTITY PRIMARY KEY,

    CateName Varchar(50) NOT NULL

    )

    GO

    在使用CREATE TABLE指令创建表时,应该注意使用PRIMARY KEY关键字定义表的主键。表中每一行的主键都有惟一值,可以使用主键惟一地标识一行数据。

    2.创建表News

    创建表News的脚本文件为News.sql,它的代码如下:

    USE news

    GO

    CREATE TABLE News

    (

    Id Int IDENTITY PRIMARY KEY,

    Title Varchar(100) NOT NULL,

    Content Text,

    PostTime Datetime,

    Poster Varchar(50),

    CateId Int,

    Attpic Int DEFAULT 0,

    ReadCount Int DEFAULT 0

    )

    GO

    在使用CREATE TABLE指令创建表时,应该注意使用NOT NULL关键字定义表的未空字段。有的时候我们要求该表的某个字段一定不能为空,如果该字段出现空的情况就会导致系统在运行的时候出现严重影响。例如,表News中的Title字段将不能为空,否则在新闻列表中将出现一个空行。

    在使用CREATE TABLE指令创建表时,使用DEFAULT关键字可以字义字段的默认值,例如表News中,Attpic和ReadCount字段的默认值为0。

    3.创建表Discuss

    创建表Discuss的脚本文件为Discuss.sql,它的代码如下:

    USE news

    GO

    CREATE TABLE Discuss

    (

    Id Int IDENTITY PRIMARY KEY,

    UserId Varchar(20),

    Posttime Smalldatetime,

    Content Varchar(4000),

    NewsId Int

    )

    GO

    在使用CREATE TABLE指令创建表时,通常使IDENTITY关键字与PRIMARY KEY关键字同时使用的方式来创出标识字段。当每次有增加操作的时候,此字段就会自动递增。

    4.创建表Users

    创建表Users的脚本文件为Users.sql,它的代码如下:

    USE news

    GO

    CREATE TABLE Users

    ( UserId Int Primary Key IDENTITY,

    UserName Varchar(50) NOT NULL,

    UserPwd Varchar(50) NOT NULL,

    Ename Varchar(50),

    Email Varchar(50)

    )

    GO

    INSERT INTO Users (UserName, UserPwd, Ename, Email) VALUES(''Admin'', ''111111'', '''', '''')

    GO

    在创建用户信息表users后,同时将“超级管理员”(admin)这个最大权限的用户插入到该表中,并设置了一个默认的并且好记的密码:123456。

    在执行这些脚本之前,请确定数据库news已经存在,否则会产生错误。如果要创建的表已经存在,则需要先将表删除。



    三、系统功能实现

    系统UI界面实现:主页面:主页面利用了css+div的技术,是所有的操作和页面跳转都在一种页面风格中进行。将系统一分为二:前台和后台两个系统。只需要将两个系统连上通一个数据库,就能做到后台管理员发布完新闻后,前台用户只需要刷新页面就能查看到刚刚发布的新闻,而这种进行权限限制的基本原理是:将登录进后台的用户的部分信息通过session存储起来,最重要的就是用户的style值,然后再JSP页面中得到登录用户的style值,并且判断style的值,为1的话,就会跳转到正确的页面,否则不让其跳转并且弹出警示框。这样就实现了登录和注册的功能,以及权限划分的非常明了。

    新闻的管理主要就是一个数据库的增删改查的过程,由于新闻达到一定的量时,页面是无法全部显示出来的,这个时候就用到了分页的技术,自己写了一个分页用的类来控制每页的显示数和达到翻页的效果。



    四、总结

    该系统的优点在于将系统一分为二,分为新闻发布系统前台和后台,分工明确,浏览者或者普通用户登录前台新闻发布系统进行新闻的搜索、浏览和留言等操作,管理员或者超级管理员登录后台新闻发布系统,进行新闻的发布、编辑、删除等操作,进行用户的增加和删除等操作,进行留言的查看,删除等操作,而且能一定程度上减少新闻发布系统前台的访问压力,前后台的分工也更加清楚明了,更利于各种用户的使用。系统的功能过于简单,比如普通用户除了具有新闻的搜索、浏览和留言的功能外,就只具有简单修改密码的功能,普通用户的功能过于单一和简单。至此完成了我的毕业论文,首先,在此感谢我的导师罗来俊教师。罗来俊教师的渊博知识和严谨的治学态度以及孜孜不倦诲人不厌的高尚师德师风,不仅能够第一时间提供给我大量的资料,而且在技术上也给了我很大的帮助,不仅让我掌握了一些基本的研究方式方法还让我明白了许多待人接物的处世之道,论文从选题开始到每一步的实践都是在教师指导和帮助下完成的,倾注了导师大量心血和精力。在此谨向罗来俊老师致以诚挚的谢意和崇高的敬意。

    其次, 我想对我的母校,我的父母、亲人们,我的老师和同学们表达我由衷的谢意。感谢我的家人四年来对我的默默支持;感谢我的母校江西理工大学(南昌校区)四年来对我的培养,让我真正得到了受用一生的技能;。

    同时,本毕业论文的编写也得到了同学们的热情帮助。感谢在整个毕业设计期间在各个方面给予过我帮助的伙伴们,在此,我再一次真诚地向帮助过我的老师和同学表示感谢!



    参考文献:

    [1]赵德奎.?JSP实用案例教程[M]?清华大学出版社,?2004,?5:?70-100?

    [2] 王家华??软件工程[M]?东北大学出版社2001年3月303页?

    [3] 王宜贵??软件工程[M]??北京:机械工业出版社,2002:20-79?

    [4] 孙卫琴??精通struts[M]电子工业出版社?2004年8月?50-70

    [5]?孙卫琴??精通hibernate[M]电子工业出版社?2005年4月?100-120?

    [6]?张洪斌??java2高级程序设计[M]中科多媒体出版社?2001年11月?85-90?

    [7]?Jim?Arlow??UML2.0?and?the?Unified?Process[M]机械工业出版社??2006年6月?30-40?

    [8]?林信良?spring2.0技术手册[M]电子工业出版社?2006年6月?50-100

    [9]?熊节、林仪明、张凯峰、陈玉泉等主编[《CSDN社区电子杂志——Java杂志》创刊号]??

    [10]《程序员》杂志?2007?年第4期?

    [11] 耿祥义编著.JSP基础编程[M].清华大学出版社,2004.55-162?

    [12]徐建波,周新莲.Web设计原理于编程技术[M].中南大学出版社,2005.185-193?

    [13]?孙鑫编著.Java?Web开发详解[M].电子工业出版社,2006.189-274

    [14]?林上杰,林康司编著.JSP2.0技术手册[M].电子工业出版社,2004.3-6?

    [15]?萨师煊,王珊.数据库系统概论(第三版)[M].北京:高等教育出版社,1998.?

    [16]?蔡剑,景楠.Java?Web应用开发:J2EE和Tomcat[M].北京:清华大学出版, 2004.





















    2







    开始



    用户登录



    失败重试



    管理所有普通用户的信息以及普通管理员的信息

    管理新闻类别,发布信息,所有新闻信息的管理



    管理自己的信息和普通用户的信息

    新闻发布,自己发布的新闻的管理



    超级管理员



    普通管理员



    新闻发布及管理系统



    新闻类别管理



    新闻发布及管理



    图片处理模块



    新闻查询模块



    网友评论模块



    系统用户管理



    后台系统



    提供数据



    新闻类别管理



    前台系统





    数据库



    基本信息发布



    新闻图片发布



    新闻查询管理



    发表网友评论



    系统用户信息管理



    修改Admin用户的密码



    创建、修改、删除普通用户信息



    修改自身的



    Admin

    用户



    普通用户



    浏览新闻



    搜索新闻



    用户注册











    登录



    浏览新闻



    搜索新闻



    留言







    普通用户



    管理新闻信息



    管理用户信息



    管理用户留言



    登录



    修改管理员密码





    添加新闻





    系统管理员



    新闻表



    新闻类别表



    用户注册



    浏览者



    管理员



    发布新闻



    用户名是

    否已存在



    登录















    用户



    属于





    普通用户



    属于





    管理员



    管理



    浏览、搜索、评论



    单个新闻



    属于



    新闻类别



    提交





    新闻评论



    发表



    X



    Y



    Z



    M



    N



    1



    T



    S



    X



    1



    R



    Q



    P



    1



    1











    献花(0)
    +1
    (本文系zy_360tsg原创)