1、 基于 jsp 的新闻发布 学 院 涪陵广播电视大学 专 业 计算机网络 班 级 2005 学 号 姓 名 孙祥荣 指导教师 范会联 教师职称 副教授 2010 年 11 月 1 日 摘要 【摘要】 随着计算机科学的发展,数据库技术在 Internet 中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今 Web 应用的潮流。利用 JSP 技术开发的网站新闻管理系统,实现了网站新闻的动态管理, 因为可以用来 动态发布新闻信息,所以使得对信息的管理更加及时、高效,提高了工作效率。 【关键词】 Struts 组建编程模型、 ActionForm 的 说明、样式层、持
2、久层、服务层、控制层。 2 目录 摘要 .1 0 引言 .3 1 系统分析 .4 1.1 需求分析 .4 1.2 可行性分析 .4 2 总体设计 .4 2.1 项目规划 .4 2.2 系统功能结构图 .4 3 系统设计 .5 3.1 设计目标 .5 3.2 开发及运行环境 .5 3.3 逻辑结构设计 .5 4 网站总体架构 .5 4.1 文件布局 . 错误 !未定义书签。 4.2 网站首页的运行结果 .5 4.2 类的分布 .7 5 网站后台主要功能模块设计 .7 5.1 后台登录模块设计 .7 5.2 总管理员设置模块设计 .11 5.3 更改总管理员密码模块设计 . 错误 !未定义书签。
3、5.4 新闻信息管理 . 错误 !未定义书签。 5.5 总结 .22 6 网站前台主要功能模块设计 .22 6.1 今日新闻的显示 .22 6.2 输入新闻的关键字查找新闻 .25 6.3 新闻人物的查看和投票 . 错误 !未定义书签。 7 小结 .26 附录一 参考文献 . 错误 !未定义书签。 附录二 数据表 .28 附录三 文件架构图 .30 0 引言 Internet 的蓬勃发展,使新闻的传播方式发生了巨大的变化,传统的信息传播媒体电视、广播、报纸已经不再是人们茶余饭后的主要精神甜点,人们更多的开始关注网络新闻。由于互联网所容纳的信息量大、内容丰富、信息及时、准确,更有 相关信息的全面
4、的介绍与比较,大大地方便了人们的阅读,因此在短短几年的时间里,互联网便济身于众多媒体之间,并具有相当一部分媒体人群。借此东风,新闻网也迅速发展起来,它内容丰富,涉及到商业、工业、农业、银行、财政、教育、娱乐、信息等各个产业,信息量大,不仅有实事新闻,还有相关的行业信息,同时新闻网具有互联网所具备的一切特性。在全球网络化、信息化的今天,新闻网迅速发展,大大地丰富了人们的生活,不知不觉中,它已经成为人们生活中不可或缺的重要组成部分。 1 系统分析 1.1 需求分析 通过相关调查,要求网站具 有以下功能; 通过网络,展示各行业新闻及相关信息。 提供新闻搜索功能。 设置新闻人物投票功能,并统计投票数量
5、。 支持其他网站的友情链接。 为后台管理提供管理入口。 1.2 可行性分析 新闻发布系统后台对新闻作了详细的分类,前台以分类形式显示新闻的详细信息,满足了人们浏览新闻网时分类查看新闻信息的要求,同时提供新闻信息查询功能,方便浏览者查找相关的新闻信息。新闻网后台则通过对总管理员设置和管理员添加等模块对网站管理员进行管理,保证了网站的安全性。 2 总体设计 2.1 项目规划 新闻网是一个功能完善的新 闻类网站,由客户前台新闻浏览和后台新闻管理两大部分组成。 前台功能模块 前台主要包括新闻分类、显示新闻详细信息、新闻信息查询、新闻人物投票、友情链接、提供后台登录口。 后台 管理 模块 后台主要包括后
6、台总管理员设置及密码修改、添加管理员、管理员信息设置、新闻类型管理、新闻详细类型管理、新闻信息管理、链接管理、新闻人物管理、退出后台。 2.2 系统功能结构图 新闻发布系统前台功能结构,如图 1 所示 。 图 1 新闻网前台功能结构图 新闻网后台功能结构,如图 2 所示。 新闻网前台功能结构 新闻分类 新闻详细信息 新闻信息查询 新闻人物投票 友情链接 后台登录口 图 2 新闻网后台功能结构图 3 系统设计 3.1 设计目标 本网站是根据各行业新闻信息分类进行开发设计的,主要实现如下目标: 分类展示各行业新闻。 显示新闻的详细信息。 设置新闻搜索功能模块。 设置新闻人物投票及投票数统计功能。
7、提供其他网站的友情链接。 3.2 开发及运行环境 硬件平台: CPU: P41.8GHz; 内存: 256MB 以上。 软件平台: 操作系统: Windows 2000; 数据库: SQL Server 2000; 开发工具包: JDK Version1.4.1; Web 服务器: Tomcat; 浏览器: IE5.0,推荐使用 IE6.0; 分辨率:最佳效果 1024*768 像素。 3.3 逻辑结构设计 本系统数据库采用 SQL server 2000 数据库,系统数据库名称为 db_news。数据库 db_news中包含 7 张表。关于数据库中的数据表请参见附录 B 4 网站总体架构 4
8、.1 网站首页的运行结果 网站前台首页的运行结果如图 5 所示。 新闻网后台功能结构 总管理员设置 总管理员修改密码 添加管理员 管理员信息设置 新闻类型管理 新闻详细类型管理 新闻信息管理 新闻人物管理 链接管理 退出后台 图 5 网站前台首页运行结果 网站框架图说明如下: 表 1 网站前台首页页面说明 区域 名称 说明 对应文件 1 网站导航 主要展 示网站的旗帜广告和站内导航条 typeNewWatch.do 2 功能模块 主要用于显示导航模块中的功能 linkSelect.do 3 内容显示 主要用于显示功能模块中的内容 dateNews.do?type=今日新闻 网站后台首页的运行结
9、果如图 6 所示。 图 6 网站后台首页运行结果 网站后台首页中的各部分说明如表 2 所示。 表 2 网站后台首页页面说明 区域 名称 说明 对应文件 1 网站导航 主要展示网站的旗帜广告和站内导航 条 typeTopAction.do 1 2 3 2 1 3 2 功能模块 主要用于显示导航模块中的功能 left_main.jsp 3 内容显示 主要用于显示功能模块中的内容 right_main.jsp 4.2 类的分布 新闻发布系统是利用 Struts 框架实现的,新闻发布系统中类的分布如图 7 所示。 图 7 类的分布 类存放的文件夹功能如表 3 所示。 表 3 类存放的文件夹功能列表 名
10、称 功能 持久层 (dao 文件夹 ) 各种方法(增加、删除、修改和查询) 的实现 样式层 (domain 文件夹 ) 所存放的类是 Actionform 类,在类中必须要继承 ActionForm(也就是 entends ActionForm) 服务层 (server 文件夹 ) 存放的 dao 层功能的业务的类 控制层 (webtier 文件夹 ) 存放在 jsp 页面中存在的方法实现的类 工具层 (tool 文件夹 ) 类名为 JDBConnection.java(连接数据库的功能)、类名为 Chinese.java(字符级转换的类)、类名为 SessionLib(用来存在 sessio
11、n 变量) 5 网站后台主 要功能模块设计 5.1 后台登录模块设计 在新闻发布系统中,后台管理员分为两种:一个是普通管理员,他可以对新闻类型进行定义,也可以发布新闻、设置投票人数及网站链接;另一个是总管理员,他除了可操作以上功能外,还可以对普通管理员进行设置,总管理员和普通管理员都能通过后台登录页面登录后台。 在前台单击“进入后台”超链接,即可进入到后台登录页面,如图 8 所示。 持久层 样式层 前台控制层 服务层 后台控制层 工具层 图 8 后台登录页面 1 样式层的类 具体代码如下 /* ManagerActionForm.java*/ package com.victor.domain
12、; import org.apache.struts.action.*; public class ManagerActionForm extends ActionForm private Integer managerID; /在数据库中的流水号 private String managerIssueDate; /管理员添加日期 private String managerMark; /管理员的标示 private String managerName; /管理员帐号 private String managerPassword; /管理员密码 private String managerR
13、ealName; /管理员的真实姓名 private String managerType; /管理员的权限 public ManagerActionForm() this.managerID = new Integer( -1); this.managerIssueDate = “; this.managerMark = “; this.managerName = “; this.managerPassword = “; this.managerRealName = “; this.managerType = “; public Integer getManagerID() return m
14、anagerID; public void setManagerID(Integer managerID) this.managerID = managerID; . 2持久层的方法 验证输入的内容是否正确有很多方法,笔者采用的是利用 sql 语句的方法进行验证输入账号和密码。对输入的账号及密码判断是否正确。 利用接口类的方法实现的代码如下: /* ManagerDao.java*/ public interface ManagerDao public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) 实现接
15、口的方法的代码如下: /* ManagerDaoImpl.java*/ /核对普通管理员帐号和密码 public class ManagerDaoImpl implements ManagerDao /实现接口类中的方法用implements加上接口类名 public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) ManagerActionForm manager = null; 定义一个 Object型的数据,初使化为 null JDBConnection connection = new JDBCon
16、nection(); /连接数据库的方法 String sql = “select * from tb_manager where Name=“ + managerActionForm.getManagerName() + “; try ResultSet rs = connection.executeQuery(sql); / 把 sql语句传到 JDBConnection类中去 while (rs.next() manager = new ManagerActionForm(); manager.setManagerPassword(rs.getString(3); /查 找过所需要的字段
17、数据 catch (SQLException ex) connection.close(); return manager; /把对象返回到方法中去 3服务层的方法 利用接口类的方法实现的代码如下: /* ManagerFacade.java*/ public interface ManagerFacade public ManagerActionForm managerCheck(ManagerActionForm managerActionForm) 实现接口的方法的代码如下: /* ManagerFacadeImpl.java*/ public class ManagerFacadeImpl implements ManagerFacade /实现接口 类的方法用 implements