其他项目,点击作者主页
目录
1 系统简介
2 系统相关技术
2.1 Java开发语言
2.1.1 Spring框架
2.1.2 Spring MVC框架
2.1.3 Mybatis框架
2.2 MySQL数据库
3 需求分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.2 业务流程分析
3.2.1 系统用户分析
3.2.2 系统业务流程分析
3.3 系统功能需求
3.3.1 新闻浏览模块
3.3.2 新闻管理模块
4 系统设计
4.1 功能模块设计
4.1.1 新闻浏览模块
4.1.2 新闻管理模块
4.2 数据库设计
4.2.1 数据库概念结构设计
5 系统实现
5.1 新闻浏览模块
5.1.1 新闻列表显示
5.1.2 新闻浏览
5.1.3 用户注册
5.1.4 用户登录
5.1.5 用户信息修改
5.1.6 新闻搜索
5.2 新闻管理模块
5.2.1 新闻编辑
5.2.2 新闻审核
5.2.3 管理员
6 总结
1 系统简介
本系统主要是使用数据库技术,基于B/S体系结构下的新闻管理系统,主要用于加速新闻从编写到审核再到发布这一过程。在这个系统中,新闻媒体工作人员可以很方便的分工合作,借助互联网的高速信息传输,提高新闻产出质量和效率。
在这篇说明书中主要针对新闻管理系统的设计到实现进行了分析,针对实际需求出发,对新闻管理流程中需要的功能进行了详细的设计与实现,主要包括了新闻浏览模块和新闻管理模块。
这是一个使用Java及其相关的Spring、Spring MVC 、Mybatis框架,配合MySQL数据库技术,基于B/S体系结构下的新闻管理系统,系统的说明了网站开发的分析过程,包含业务流程图、数据库设计等。
2 系统相关技术
2.1 Java开发语言
Java是由Sun Microsystems公司推出的开发语言,由C++编写而来,语言风格类似于C++,但是抛弃了C++中较难理解的指针和对内存的管理。目前Java已经成为了Web开发的首选语言。Java的主要优势有:
(1) 面向对象
Java语言提供了类、接口、继承和多态等一系列面向对象的特性。Java放弃了C++中复杂的多继承,改为由接口多继承实现。
(2) 安全性
Java语言具有强类型、异常处理、自动垃圾回收等机制保证了Java语言的健壮性。
(3) 跨平台性
Java语言是运行在虚拟机之上的,在操作系统上先安装对性的虚拟机即可运行Java程序,因此具有良好的跨平台性。
2.1.1 Spring框架
Spring框架是由Rod Johnson发起的开放源代码的Java应用程序框架,主要功能是对对象的生命周期进行管理。Spring主要的功能是提供控制反转和面向切面编程的能力。
控制反转(Inversion of Control,IoC)将一个对象所需要的依赖由Spring容器传递过来。避免了自己创建对象,实现了对象之间的解耦合。
面向切面(Aspect Oriented Programming, AOP)可以将业务逻辑的部分进行分割。这样可以在不修改源代码的情况下即可对功能进行增强,使代码可以遵循软件的开闭原则,保证代码的可扩展性。
2.1.2 Spring MVC框架
MVC设计模式,是将软件按照模型(Model)、视图(View)、控制器(Controller)划分,由模型处理数据,视图展示数据,控制器接收和响应请求。
Spring MVC是Spring框架的子项目,提供了基于MVC设计模式构建Web应用程序的完整解决方案,是目前最流行的Web开发框架。
2.1.3 Mybatis框架
MyBatis是一款开源的持久层框架,封装了JDBC(Java Database Connectivity),简化了从加载驱动到获取结果集中的大量JDBC代码。
MyBatis支持自定义SQL语句,相对于一些全自动映射框架,MyBatis需要开发者编写SQl,更为灵活。
MyBatis提供了XML(Extensible Markup Language)标签,可以在业务需求时热更新SQL语句。
2.2 MySQL数据库
MySQL是一个开源的关系型数据库管理系统,具有体积小、速度快、成本低等特点。
SQL(结构化查询语言)是专用于存取、查询、更新和管理数据库的计算机语言,是世界上最流行、最标准的数据库语言,也是MySQL所采用的数据库语言。
(1) 开源性
MySQL数据库的源代码是开放的。相对于其他闭源的数据库,MySQL使用成本也更低。
(2) 跨平台性
MySQL可以在各种不同的操作系统上运行,并且MySQL对Java有很好的支持。
(3) 安全性
MySQL支持访问控制功能,可以分离操作数据库和修改数据库的权限,使得数据安全得到一定的保证。
3 需求分析
3.1 可行性分析
3.1.1 技术可行性
新闻管理系统的设计采用Java语言及相关框架编写。Java语言安全、稳定、健壮且具有跨平台性,足以支撑完成系统的实现。
系统使用的数据库管理软件为MySQL,MySQL作为一种小型、轻量的数据库系统,处理能力强,使用简单。使用MySQL提供的接口可以完成Java与MySQL的连接。
由于新闻管理系统时采用B/S(Browser/Server)结构的网站,需要配置Tomcat服务器来运行。Tomcat是一个轻量的应用服务器,性能较强且稳定,是比较成熟的Web应用服务器。
这些技术都比较容易实现,因此技术上是可行的
3.1.2 经济可行性
新闻管理系统的设计和开发费用包含软件成本、硬件成本。
本系统使用Java语言开发,选择了开源且免费商用的OpenJDK。同时数据库管理软件MySQL也是开源且免费。系统部署所使用的Tomcat服务器同样也是开源的。开发所使用的IntelliJ IDEA对在校生也是免费使用的,因此软件方面支出基本为零。
本系统使用的硬件仅包含一台具备合适操作系统的计算机和较为良好的网络环境,除此之外并无太大经济花销。
3.1.3 操作可行性
本系统是一个基于B/S结构的网站,用户仅需一台具有浏览器并且可以访问互联网的设备就可以使用。系统界面清晰明确,使用简单,只要有少量的计算机使用经验即可快速上手,获取自己所需要的信息,因此本系统在操作上是可行的。
3.2 业务流程分析
3.2.1 系统用户分析
根据新闻媒体相关的工作流程,新闻管理系统的使用者包括新闻业务人员和普通用户两大类。其中,普通用户只允许浏览新闻和对新闻评论。而新闻业务人员又可以分为三类,一是新闻编辑,负责编辑和提交新闻;二是新闻审核,负责对新闻编辑提交的新闻和用户提交的评论进行审核;三是系统管理员,对系统用户、新闻等内容进行管理。
因此本系统用户主要有四类,即普通用户、新闻编辑、新闻审核与管理员。
(1) 普通用户
①查看新闻。
②可以评论自己感兴趣的新闻。
③可以新闻的评论。
④可以搜索新闻
(2) 新闻编辑
①新闻编辑可以编辑并提交新闻。
②新闻编辑可以查看自己提交的新闻,并修改其中审核未通过的新闻。
(3) 新闻审核
①新闻审核可以审核新闻编辑提交的内容,并对其中不合格的内容退回并给与反馈信息。
②新闻审核可以审核用户提交的评论。
(4) 管理员
①对其他用户的信息进行修改,可以设置用户的类型。
②可以对新闻信息进行修改。
③可以添加、删除、修改新闻类型。
④可以删除用户评论。
此外,系统允许游客进行访问,游客仅允许查看新闻,如果需要后续操作可以注册或登录系统。
3.2.2 系统业务流程分析
从业务流程上看,新闻管理管理系统主要包含编辑、提交、审核、发布及用户管理等过程。新闻管理系统的业务流程图如图3-1所示:
图3-1 业务流程图
3.3 系统功能需求
新闻管理系统的核心是新闻的发布和管理,系统应该完成新闻编辑、新闻审核和新闻发布的功能,使得新闻媒体工作人员能够通过网络协调在一起,高效的处理新闻信息。
因此,新闻管理系统需要完成的主要功能有:
(1) 可以完成新闻编辑、新闻审核、新闻发布的功能。
(2) 对于不同的用户,设立不同的角色,根据角色赋予对应的权限。
(3) 普通用户的评论需要经过审核之后才可以显示。
综合以上,新闻管理系统应该包含两个主要模块:一是新闻浏览模块,二是新闻管理模块
(1) 新闻浏览模块
主要功能:新闻分类显示、评论、用户登录注册、新闻标题搜索。
(2) 新闻管理模块
主要功能:新闻编辑、评论审核、新闻审核、用户管理、新闻管理、新闻类型管理、评论管理。
3.3.1 新闻浏览模块
根据前面对系统用户的分析,可以把新闻管理系统的用户分为四类,即普通用户、新闻编辑、新闻审核与管理员。新闻浏览模块的主要使用者为普通用户,新闻管理模块的主要使用者是新闻编辑、新闻审核与管理员。新闻浏览模块为普通用户提供的主要功能有注册、登录、退出、个人信息修改、新闻浏览、评论浏览和添加评论等。新闻浏览模块的用例图可以用图3-2表示:
图3-2 新闻浏览模块用例图
3.3.2 新闻管理模块
如上所述,新闻管理模块主要由新闻编辑、新闻审核与管理员使用。新闻管理模块可以为新闻编辑提供编写新闻、修改新闻和提交审核的功能,可以为新闻审核人员提供新闻审核和评论审核的功能,可以给管理员提供用户管理和新闻管理功能。新闻管理模块用例图可以用图3-3表示:
图3-3 新闻管理模块用例图
4 系统设计
4.1 功能模块设计
新闻管理系统包含了新闻浏览模块和新闻管理模块两个部分,新闻浏览模块包含了用户登录、注册、个人信息管理、浏览新闻和评论相关等功能,主要服务于大众普通用户;新闻管理模块包含了个新闻编辑、新闻审核、评论审核、用户管理、新闻管理、新闻类型管理和评论管理等功能,主要服务与新闻媒体工作人员。
系统功能结构如图4-1所示:
图4-1 系统功能结构图
4.1.1 新闻浏览模块
新闻浏览模块的功能包括:用户登录、用户注册、个人信息管理、浏览新闻和评论。
(1) 用户登录
已注册但未登录的用户,需要登录后才能进行浏览新闻和评论。
(2) 用户注册
未注册用户可以通过注册功能成为网站的用户。
(3) 个人信息管理
用户在注册并登录后,可以使用此功能修改自己的用户名、头像、登录密码等相关信息。
(4) 浏览新闻和评论
用户在登录后可以查看新闻和新闻的评论、评论新闻。新闻评论在评论通过审核后才会显示。
(5) 新闻搜索
用户在登录后可以对新闻标题进行模糊搜索,未登录的游客访问此功能时会被重定向到首页。
4.1.2 新闻管理模块
功能包含:新闻的创建和编辑、新闻审核、评论审核、用户管理、新闻管理、新闻类型管理和评论管理。
(1) 新闻编辑
新闻编辑人员可以通过此功能新建新闻、编辑新闻、提交审核、查看审核失败的新闻并修改,在修改完成后可以再次提交审核。
(2) 新闻审核
新闻审核可以通过此功能查看新闻编辑提交的新闻,对于没有问题的新闻予以通过,对于有问题的新闻予以退回并表明退回理由。
(3) 评论审核
新闻审核可以通过此功能查看用户发表的评论,对于没有问题的评论予以通过,对于有问题的评论予以删除。
(4) 用户管理
管理员可以通过此功能对网站的所有其他用户进行修改用户的昵称、类型、密码等信息。
(5) 新闻管理
管理员可以通过此功能对网站的所有已通过新闻进行管理。可以对新闻中错误的标题、分类等信息进行修改。可以删除有问题的新闻。
(6) 新闻类型管理
管理员可以修改或者删除系统中已有的新闻类型,或者添加新的新闻类型,并且可以设置新闻类型的排序级别,排序级别应影响首页的新闻类型显示顺序。
(7) 评论管理
管理员可以在此查看系统中存在的所有的评论。对其中不恰当的信息进行删除。
4.2 数据库设计
对于本系统数据库设计来说,新闻的内容和用户信息都是其中的重要部分,并且随着系统的使用,数据量会越来越大,使得数据库设计成为系统设计的重要内容。
4.2.1 数据库概念结构设计
新闻管理系统数据库中主要包含用户、新闻信息、新闻内容、新闻审核信息、新闻分类评论和评论审核信息这7张表。系统整体E-R图如图4-2所示:
图4-2 系统整体E-R图
(1) 用户:用户实体包含有8个属性,分别是id、手机号、昵称、密码、角色、头像、创建时间和修改时间。其E-R图如图4-3所示:
图4-3 用户E-R图
(2) 新闻信息:新闻信息包含的属性有11个,分别是id、新闻标题、封面图、新闻类型、新闻作者、内容id、阅读量、可评论性、状态、创建时间和修改时间。其E-R图如图4-4所示:
图4-4 新闻信息E-R图
(3) 新闻类型:新闻类型包含6个属性,包含id、类型名字、类型url、排序级别、创建时间和修改时间。其E-R图如图4-5所示:
图4-5 新闻类型E-R图
(4) 新闻审核信息:新闻审核信息包含6个属性,包含id、新闻id、审核id、返回信息、创建时间和修改时间。其E-R图如图4-6所示:
图4-6 新闻审核信息E-R图
(5) 新闻内容:新闻内容包含id和内容2个属性。其E-R图如图4-7所示:
图4-7 新闻内容E-R图
(6) 评论:评论包含7个属性,包含id、新闻id、作者、内容、状态、创建时间和修改时间。其E-R图如图4-8所示:
图4-8 新闻分类E-R图
(7) 评论审核信息:评论审核信息包含5个属性,包含id、评论id、审核id、创建时间和修改时间。其E-R图如图4-9所示:
图4-9 评论审核信息E-R图
5 系统实现
5.1 新闻浏览模块
5.1.1 新闻列表显示
首页负责显示新闻列表。新闻列表有三个部分,一是热门资讯部分,显示当前板块浏览量最多的5条新闻;二是最新信息部分,根据新闻的数量进行分页,显示当前板块最新的新闻信息,在页面底部实现分页功能,一页显示10条信息;三是最多评论部分,显示当前分区评论数量最多的5条新闻。
新闻内容储存在NewsInfo类的实例化对象中,前端使用axios异步请求,请求时携带页码和当前分区的分区类型,后端使用Mybatis的pagehelper插件进行分页查询并将数据json化后返回给用户浏览器。
界面如图5-1所示:
图5-1 主页界面展示
5.1.2 新闻浏览
在新闻列表处点击新闻标题的链接会跳转到新闻的内容页面,页面底部显示当前新闻的评论信息。用户未登录时评论功能将不可选中,可以在登录后可以对当前新闻进行评论。对于新闻审核设置了不允许评论的新闻将不会显示评论区。
新闻信息显示如图5-2所示:
图5-2 新闻主要内容显示
评论内容如图5-3所示:
图5-3 评论显示
5.1.3 用户注册
用户可以在此进行注册,页面对输入进行了一定的限制,并且有提示反馈。用户在输入符合要求的信息后便可完成注册,注册完成的用户默认为普通用户。
用户密码会在服务器以md5加密的形式存储,头像图片上传后,服务器会使用uuid算法随机生成文件名后存储在配置文件规定的目录下,数据库中存储为文件名
用户注册页面如图5-4所示:
图5-4 用户注册
5.1.4 用户登录
用户可以在正确输入账号和密码时登录系统,信息输入错误会提示“登录失败,请检查登录信息”,被封禁的用户将不允许登录系统。
系统在后台部分的application域中维护了一对属性,属性名为用户的id,值为用户登录时携带的JSESSIONID对应的session对象,前台会检查用户输入的信息,阻止用户反复点击,以免后端进行大量无用的数据库查询,用户登录如图5-5所示:
图5-5 用户登录
5.1.5 用户信息修改
用户在登录后可以点击头像出现下拉框选择进入个人中心,在个人中心中可以对用户的昵称、头像进行修改。
在此页面中用户选择修改密码会有修改密码的表单弹出,用户可以使用此功能修改自己的密码。密码在修改后用户会退出系统并重定向到主页,用户需要使用新密码登录。密码修改功能使用了用户信息修改的通用代码,通用代码中借助了application域中维护的登录信息完成了退出功能,密码修改表单样式如图5-6所示:
图5-6 密码修改
个人中心及下拉菜单样式如图5-5所示:
图5-7 个人中心
5.1.6 新闻搜索
新闻搜索功能可以对系统中所有已通过审核新闻的标题进行模糊查找。新闻搜索功能仅开放给登录用户使用,未登录的用户会被重定向到登录页面。
新闻搜索功能如图5-8所示:
图5-8 新闻搜索
5.2 新闻管理模块
新闻管理模块是由新闻编辑、新闻审核和系统管理员这三类用户使用。用户可以点击头像的下拉框选择进入后台管理,拥有不同身份的用户在访问此模块时会呈现出不同的效果。
5.2.1 新闻编辑
新闻编辑可以在此处进行新闻的新建、修改、提交审核。新建新闻时可以选择新闻的标题、类型、封面图等信息,提交后的新闻可以在草稿中选择修改。
创建新闻页面的效果如图5-9所示:
图5-9 创建新闻界面
创建新闻页面的效果如图5-10所示:
图5-10 新闻编辑页面
新闻编辑还可以查看自己审核不通过的新闻,页面效果如图5-11所示:
图5-11 未通过审核新闻
5.2.2 新闻审核
新闻审核负责两种职能,一是对新闻编辑提交的新闻进行审核,二是对用户提交的评论进行审核。在此模块中,新闻审核可以领取一定数量的新闻或者评论,然后进行查看和审核。当新闻和评论被一个新闻审核接手后,其他新闻审核将无法领取对应的新闻或评论。
在领取新闻界面中,审核可以选择多条新闻一起领取。领取新闻页面如图5-12所示:
图5-12 新闻领取页面
新闻审核页面如图5-13所示:
图5-13 新闻审核页面
新闻审核在审核通过时会提示设置是否允许评论,效果如图5-14所示:
图5-14 审核通过页面
在审核不通过时会提示返回给新闻编辑提示信息,效果如图5-15所示:
图5-15 审核不通过界面
评论的领取与新闻领取一致,评论的审核页会显示评论的内容、作者和创建时间,评论可以设置通过或者不通过,不通过的评论会被系统删除,点击按钮时添加了二次确认的提示窗口,避免误操作。评论审核页面如图5-16所示:
图5-16 评论审核页面
5.2.3 管理员
管理员可以后台中管理新闻、用户、新闻类型和新闻评论。
对于新闻,管理员可以查看系统中所有新闻的信息,或者通过新闻的标题对新闻进行模糊查找。管理员可以选择对应的新闻进行编辑或者删除,新闻管理页面显示内容如图5-17所示:
图5-17 新闻管理页面
点击编辑会弹出新闻编辑窗口,管理员可以在此修改新闻的标题、状态、类型、是否允许评论和浏览量,新闻信息修改的弹窗如图5-18所示:
图5-18 新闻信息修改
对于用户,管理员可以在此查找到所有用户信息。管理员可以使用手机号对用户进行精确查找,也可以点击用户类型对用户进行筛选。
管理员可以选择修改对应昵称和类型。依赖此功能,可以将普通用户升级为编辑、审核或者管理员,也可以将用户封禁。管理员能够修改其他用户的密码。如果修改密码时,该用户在线,则该用户会被系统强制下线。
用户管理页面如图5-19所示:
图5-19 用户管理页面
用户类型筛选如图5-20所示:
图5-20 用户管理页面
用户信息的弹窗如图5-21所示:
图5-21 用户信息编辑
对于新闻类型,管理员可以在此对已有的新闻类型进行编辑和删除,也可以添加新的新闻类型,类型的URL与已有类型重复会添加失败。
排序级别会影响主页新闻类型的显示顺序。管理员在此可以修改排序级别让主页按照规定的方式显示。
类型管理页面如图5-22所示:
图5-22 新闻类型管理
对于评论。管理员可以在评论管理界面中查看数据库中所有新闻的评论。可以通过新闻id精确查找到对应新闻的所有评论内容。
管理员可以删除内容不恰当或者无意义的评论,评论页面如图5-23:
图5-23 评论管理
6 总结
在我国,互联网经过了多年的发展,普及率已经超过70%,而信息传播作为互联网的核心属性,其催生除了大量的基础互联网的新闻媒体。近年来我国政府对新闻报业的发展控制力增强,影响力增大,因此新闻编辑的审核、发布更加严格。随着时间发展,网络媒体信息量巨增,整理和审核过程费时费力,极大的浪费企业的人力物力。因此需要一个方便快捷的新闻发布管理系统,使整个新闻媒体的各个流程通过系统整合起来,使新闻发布过程中的流程简化,提高新闻媒体的工作效率。
源码+过程性文档+论文