欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)在线新闻发布系统设计与实现.doc

    • 资源ID:3978261       资源大小:521.50KB        全文页数:70页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)在线新闻发布系统设计与实现.doc

    毕业论文(设计)在线新闻发布系统设计与实现姓名:学号: 专业:计算机信息管理指导教师:贺桂英副教授目 录目 录I摘 要II关键字II在线新闻发布系统设计与实现1一 概述1二 系统分析和设计1(一) 需求分析1(二) 流程设计2(三) 功能划分4三 数据库设计5(一) 逻辑视图5(二) 数据库建表5(三) 数据库持久化处理7(四) 分页浏览的实现29四 新闻信息管理实现32(一) 实现效果32(二) 视图组件设计及实现45(三) 控制器组件实现52(四) 部署与运行64五 结论66参考文献67摘 要21世纪是信息爆炸的时代,网络的出现是这个信息时代的催化剂。面对网络上几何式增长的的信息,我们需要一个方便易用的平台,来将信息分类展示给信息接收者。在线新闻发布系统就应运而生了,提供新闻信息的分类,方便信息接收者查看。时刻提供最新的新闻消息。这为信息接收者带来很大的方便。关键字:在线新闻、分页、Struts、Hibernate在线新闻发布系统设计与实现一 概述网络作为新闻传媒新型载体,以其信息化服务的方便迅捷实效性高、信息容量不受限制、受众参与性强和反馈快的优势区别于传统的新闻传播方式。随着在线新闻发布服务的迅速发展,网络日益成为社会公众获知最新重要新闻的重要渠道。同时,在线新闻发布服务的产生也为企业提出了一个减少人力物力投入同时深化企业管理程度的切实可行的办法。在企业的电子商务应用中,在线新闻发布服务也已发展成为其中必不可少的重要组成部分。此在线新闻发布系统将采用面向对象编程的JAVA语言开发。在JAVA EE企业级开发平台的基础上,配合两大流行的框架技术:Struts和Hibernate实现前台显示、数据转换、连接数据对象等功能。数据库将使用开源的MySQL数据库。WEB服务器采用Apache的Tomcat服务器。二 系统分析和设计(一) 需求分析在线新闻发布系统,为新闻阅读者及时了解社会发展和学习知识提供了一个重要的平台,它将实现及时的新闻浏览显示以及在线新闻信息管理等功能。该系统可供新闻阅读者浏览包括财经、娱乐和科技等类型的新闻信息。在系统主页面中,新闻阅读者可以根据不同的新闻类型单击不同的链接浏览相关的新闻信息。由于新闻发布系统一般会表现出信息量大等特点,如果在一个页面中显示数据库中存储的所有企业新闻将导致系统与数据库网络交互量过大而延迟浏览速度。因此为了降低单次页面浏览与数据库交互的网络流量,页面的浏览方式采用分页浏览的风格,即在一个浏览页面中只显示数据库中的部分新闻信息。在主页面中,显示最新的新闻标题,每个新闻标题都作为一个超链接,在单击该超链接后,可以跳转到新的页面显示对应的新闻的所有信息,包括标题、类型、内容、发布时间、作者等信息。为了使该在线新闻发布系统有一个安全的运行环境,提供了用户登录功能。在用户登录网站时,首先要进行身份验证,如果身份信息在数据库中不存在即不合法,则系统自动退回到登录界面;如果用户登录身份合法,则系统自动会根据用户事先被赋予的使用权限,提供相应的服务和管理界面,如普通用户只提供新闻信息浏览功能,新闻编辑人员则可以使用“添加新闻”、“修改新闻”等功能,系统管理员除拥有新闻编辑员的功能外,还有“删除新闻”的功能。登录后的新闻发布管理员通过单击页面上的“添加”链接、“修改”链接和“删除”链接分别完成对应对数据库的操作:新闻的添加、新闻的修改和新闻的删除等功能。(二) 流程设计用户在使用新闻发布系统时应进行如下的操作流程,如图 1 所示为用户使用系统时的时序图:l 用户进入新闻发布系统首页。l 系统从数据库读取新闻类型数据记录如:“财经”、“娱乐”和“科技”等。根据这些新闻类型,进行新闻类型选择。l 根据第2步新闻类型的选择,在页面中显示相应类型的新闻标题列表。l 每个标题都提供一个包含新闻编号的超链接。l 新闻标题列表采用分页显示技术。可重复第2步至第5步内容,对列表进行翻页操作。在第3步中默认为显示第一页。l 单击标题超链接,进入新的页面浏览所选择新闻的具体信息。l 拥有权限的用户通过登录后,获得对新闻系统的操作权如:“添加新闻”、“修改新闻”和“删除新闻”。图 1 用户使用系统时的时序图如图 2 用户浏览操作协作图所示用户使用系统时序图对应的协作图。系统除了为所有用户提供友好的新闻浏览页面外,还应提供友好的新闻信息维护手段。当用户具有新闻编辑或管理员权限时,即可进行以下操作,如图 3所示为新闻编辑和管理员进行新闻信息维护时的用例图。如图 4 所示为一个用户正常的系统登录流程.l 新闻编辑。l 新闻添加。l 删除操作。在进行修改或删除操作之前,管理员必须得到相关新闻的编号,并根据这个编号进行修改或删除操作。在进行新闻添加操作时,数据库自动为新闻生成编号信息。用户/新闻编辑员/管理员 新闻类型 新闻标题列表分页 新闻信息 1:成功进 入新闻发布系统2:选择新闻类型3:标题列表显示4:列表分页显示5:浏览新闻 具体信息图 2 用户浏览操作协作图新闻编辑/管理员获取新闻编号新闻添加新闻修改新闻删除图 3 管理员新闻信息维护用例图用户登录身份验证权限划分普通用户新闻编辑员 系统管理员图 4 用户登录系统流程(三) 功能划分根据系统需求分析和流程设计,可以将系统按功能分为4个模块(如图 5所示为在线新闻发布系统模块功能划分图):在线新闻发布系统新闻信息管理浏览(用户/新闻编辑/管理员)修改(新闻编辑/管理员)删除(管理员)添加(新闻编辑/管理员)图 5 在线新闻发布系统功能模块划分图l 新闻浏览。l 新闻修改。l 新闻删除。l 新闻添加。在这4个功能模块中,“浏览”功能为所有用户提供,而“修改”、“删除”和“添加”操作只有新闻编辑员和管理员才能使用。三 数据库设计(一) 逻辑视图根据该新闻发布系统的需求,找到4个实体:用户实体、权限实体、新闻实体和新闻类型实体,其中用户信息包括新闻系统为每位用户分配的唯一编号、用户名以及密码。如图 6所示数据库逻辑关系视图。userid int10 <M>name VA20pwd VA20powerid int10 <M>name VA20user : power = n : 1newspressid int10 <M>title VA50content VA5000author VA20presstime timestampnewstypeid int10 <M>name VA20newspress : newstype = n : 1图 6 在线新闻发布系统数据逻辑视图l 用户实体(user)包括元素为 用户编号、用户名、密码等。 l 权限实体(power)包括元素为 类型编号和名称等。l 新闻实体(newspress)包括元素为:新闻编号、标题、内容、作者、发布日期和类型等。l 新闻类型(newstype)包括元素为:类型编号和类型名称等。(二) 数据库建表根据图 6的数据库逻辑视图,在数据库中设计有4张数据表格:用户基本信息表(user表)、用户权限表(power表)、新闻类型表(newstype)、新闻信息表(newspress),如图 7为数据表格物理关系图。userid int(10) <pk>name varchar (20)pwd varchar(20)powerId int(10) <fk>powerid int(10) <pk>name varchar (20)remarks varchar(200)FK_POWER_REFERENCE_USERnewspressid int(10) <pk>title varchjar (50)content varchar(2000)author varchjar (20)presstime timestamptype int(10) <fk>remarks varchar(200)newstypeid int(10) <pk>name varchjar (20)remarks varchar(200)FK_NEWSPRESS_REFERENCE_NEWSTYPE图 7 新闻发布系统数据表物理关系图在数据库newsdb中建立用户基本信息表(user 表),表中只需包括四个字段。 l id 用户编号,由系统统一分配,每个用户拥有唯一的编号。 l name 用户名,用户登录系统时使用的名字。l pwd 用户登录密码,只有使用该密码登录,用户才能以合法身份使用这个在线并管理系统。 l powerId 用户访问权限,不同的权限可以访问不同的网页,得到不同的服务。如表 1所示为user表结构表 1 user表结构字段名中文描述数据类型长度允许空键属性初始值id用户编号int10×主键name用户名varchar20×pwd登录密码varchar20×powerId权限int10×外键1在数据库newsdb中建立用户权限类型表(power表),表中的字段包括id、name、remark。如表 2 所示为power表结构。表 2 power表结构字段名中文描述数据类型长度允许空键属性初始值id权限类别编号int10×主键name权限名称varchar20×remarks备注varchar200新闻类型表(newstype表)描述了新闻的类型信息,如类型编号、类型名称等。在本系统中以“财经”、“娱乐”和“科技”等九种类型的新闻为例,可以先在新闻类型表中插入这三种类型信息,如表 3所示为新闻类型表字段信息描述信息。表 3 newstype表结构字段名中文描述数据类型长度允许空键属性初始值id类型编号int10×主键name类型名称varchar20×remarks备注varchar200插入适应性数据的SQL脚本如下:insert into newstype (id, name) values(1, 财经 );insert into newstype (id, name) values(2, 娱乐 );insert into newstype (id, name) values(3, 科技 );等九种类型信息。在数据库newsdb中执行以上SQL脚本即可插入“财经”、“娱乐”和“科技”等九种新闻类型信息适应性数据。新闻信息表(newspress表)描述了新闻基本信息,包括:新闻编号、新闻标题、新闻内容、作者、发布时间和新闻类型编号等信息。id 字段为表中的标识字段,type 字段为外键与newstype 表中的id 字段关联。如表 4 所示为数据库中新闻信息表的字段信息。表 4 newspress表结构字段名中文描述数据类型长度允许空键属性初始值id新闻编号int10×主键title新闻标题varchar50×标题content新闻内容varchar5000×内容author作者varchar20×作者presstime发布时间timestamp×type新闻类型int10×外键remarks备注varchar200(三) 数据库持久化处理数据库持久化处理采取Hibernate框架实现。为使用Hibernate的功能,首先要对Hibernate的配置进行修改。Hibernate的配置文件名为hibernate.cfg.xml,里面包含与数据库连接的各种信息如:数据库URL、数据库JDBC驱动、数据库用户名和密码等等。如表 5 所示为hibernate.cfg.xml文件代码。表 5 hibernate.cfg.xml代码<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-/Hibernate/Hibernate Configuration DTD 3.0/EN" "<hibernate-configuration><session-factory> <!- 数据库名 -><property name="myeclipse.connection.profile">newsdb</property> <!- 数据库URL -><property name="connection.url">jdbc:mysql:/localhost:3306/newsdb</property> <!- 数据库驱动 -> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!- 数据库方言 -><property name="dialect">org.hibernate.dialect.MySQLDialect</property><!- 用户名 -> <property name="connection.username">root</property> <!- 密码 -><property name="connection.password">123</property> <!- 数据库表映射文件 -> <mapping resource="news/hibernate/User.hbm.xml" /><mapping resource="news/hibernate/Power.hbm.xml" /><mapping resource="news/hibernate/Newstype.hbm.xml" /><mapping resource="news/hibernate/Newspress.hbm.xml" /></session-factory></hibernate-configuration>根据该系统数据库表设计及表间关系,运行Hibernate ORM 工具Middlegen,首先从数据库得到4 个hbm.xml 资源文件:User.hbm.xml、Power.hbm.xml、Newspress.hbm.xml 文件和Newstype.hbm.xml 文件。User.hbm.xml文件映射数据库中的user表,代码如表 6:表 6 User.hbm.xml代码<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""<hibernate-mapping> <class name="news.hibernate.User" table="user" catalog="newsdb"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <many-to-one name="power" class="news.hibernate.Power" fetch="select"> <column name="powerId" not-null="true" /> </many-to-one> <property name="name" type="java.lang.String"> <column name="name" length="20" not-null="true"> <comment>用户名称</comment> </column> </property> <property name="pwd" type="java.lang.String"> <column name="pwd" length="20" not-null="true"> <comment>用户密码</comment> </column> </property> </class></hibernate-mapping>Power.hbm.xml文件映射数据库中的power表,代码如表 7:表 7 Power.hbm.xml代码<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""<hibernate-mapping> <class name="news.hibernate.Power" table="power" catalog="newsdb"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="name" type="java.lang.String"> <column name="name" length="20" not-null="true"> <comment>权限名称</comment> </column> </property> <property name="remarks" type="java.lang.String"> <column name="remarks" length="200" not-null="true"> <comment>备注</comment> </column> </property> <set name="users" inverse="true"> <key> <column name="powerId" not-null="true" /> </key> <one-to-many class="news.hibernate.User" /> </set> </class></hibernate-mapping>Newspress.hbm.xml文件映射数据库中的newspress表,代码如表 8:表 8 Newspress.hbm.xml代码<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""<hibernate-mapping><class catalog="newsdb" name="news.hibernate.Newspress" table="newspress"><id name="id" type="java.lang.Integer"><column name="id"/><generator class="increment"/></id><many-to-one class="news.hibernate.Newstype" fetch="select" name="newstype"><column name="type" not-null="true"><comment>外键</comment></column></many-to-one><property generated="never" lazy="false" name="tiele" type="java.lang.String"><column length="50" name="tiele" not-null="true"><comment>标题</comment></column></property><property generated="never" lazy="false" name="content" type="java.lang.String"><column length="5000" name="content" not-null="true"><comment>内容</comment></column></property><property generated="never" lazy="false" name="author" type="java.lang.String"><column length="20" name="author" not-null="true"><comment>作者</comment></column></property><property generated="never" lazy="false" name="presstime" type="java.util.Date"><column length="10" name="presstime"><comment>发布时间</comment></column></property><property generated="never" lazy="false" name="remark" type="java.lang.String"><column length="200" name="remark"><comment>备注</comment></column></property></class></hibernate-mapping>Newstype.hbm.xml文件映射数据库中的newstype表,代码如表 9:表 9 Newstype.hbm.xml代码<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""<hibernate-mapping> <class name="news.hibernate.Newstype" table="newstype" catalog="newsdb"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="identity" /> </id> <property name="name" type="java.lang.String"> <column name="name" length="20" not-null="true"> <comment>名称</comment> </column> </property> <property name="remark" type="java.lang.String"> <column name="remark" length="200"> <comment>备注</comment> </column> </property> <set name="newspresses" inverse="true"> <key> <column name="type" not-null="true"> <comment>外键</comment> </column> </key> <one-to-many class="news.hibernate.Newspress" /> </set> </class></hibernate-mapping>利用Hibernate 提供的hbm2java 工具,根据以上得到的4 个hbm.xml 文件,可以自动生成编程开发所需要的*.java 文件。这些Java 文件便可以充当 Struts 架构中模型组件的代码。hbm.xml 与Java 文件对应关系如表 10 所示。 表 10 文件对应关系表Hbm.xml文件Java文件User.hbm.xmlUser.javaPower.hbm.xmlPower.javaNewstype.hbm.xmlNewstype.javaNewspress.hbm.xmlNewspress.java下面将分别介绍根据hbm.xml文件生成的Java代码。如表 11 所示为User.java代码,Hibernate从数据库中读取user表的一条记录,并保存到User.java的实例对象中。程序中通过操作这些实例对象,达到操作数据库中数据的目的。表 11 User.java代码package news.hibernate;/* * 数据库用户表的DAO对象 */public class User implements java.io.Serializable /用户编号private Integer id;/用户权限private Power power;/用户名private String name;/用户密码private String pwd;public Integer getId() return this.id;public void setId(Integer id) this.id = id;public Power getPower() return this.power;public void setPower(Power power) this.power = power;public String getName() return this.name;public void setName(String name) this.name = name;public String getPwd() return this.pwd;public void setPwd(String pwd) this.pwd = pwd;如表 12 所示为Power.java代码,与数据库power表对应的Java对象。表 12 Power.java代码package news.hibernate;import java.util.HashSet;import java.util.Set;/* * 数据库权限表的DAO对象 */public class Power implements java.io.Serializable /权限类型编号private Integer id;/权限类型名称private String name;/权限类型备注private String remarks;/相同权限的用户集合private Set users = new HashSet(0);public Integer getId() return this.id;public void setId(Integer id) this.id = id;public String getName() return this.name;public void setName(String name) this.name = name;public String getRemarks() return this.remarks;public void setRemarks(String remarks) this.remarks = remarks;public Set getUsers() return this.users;public void setUsers(Set users) this.users = users;如表 13所示为Newstype.java代码,与数据库newstype表对应的Java对象。表 13 Newstype.java代码package news.hibernate;import java.util.HashSet;import java.util.Set;/* * 数据库新闻类型表的DAO对象 */public class Newstype implements java.io.Serializable /新闻类型编号private Integer id;/新闻类型名称private String name;/新闻类型备注private String remark;/相同新闻类型的新闻信息集合private Set newspresses = new HashSet(0);public Integer getId() return this.id;public void setId(Integer id) this.id = id;public String getName() return this.name;public void setName(String name) this.name = name;public String getRemark() return this.remark;public void setRemark(String remark) this.remark = remark;public Set getNewspresses() return this.newspresses;public void setNewspresses(Set newspresses) this.newspresses = newspresses;如表 13所示为Newspress.java代码,与数据库newspress表对应的Java对象。表 14 Newspress.java代码package news.hibernate;i

    注意事项

    本文(毕业设计(论文)在线新闻发布系统设计与实现.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开