摘 要:本文主要介绍了新闻博客系统的管理流程及其系统的功能及架构,并着重介绍了MVC开发模式、MD5加密算法、CKEditor编辑器等技术的系统设计及实现方案。
关键词:新闻博客管理系统;MVC架构;MySQL
中图分类号:TP311.52 文献标识码:A 文章编号:2096-4706(2018)11-0005-03
News Blog Management System Based on MVC Architecture,Mysql,
CKEditor and MD5
XU Tong
(Jiangxi University of Finance and Economics,Nanchang 330013,China)
Abstract:This article mainly introduces the management process of news blog system the function and architecture of the system,and focuses on the system design and implementation of MVC development mode,MD5 encryption algorithm,CKEditor and so on.
Keywords:news blog management system;MVC architecture;MySQL
0 引 言
互联网时代的来临,为新闻界带来巨大变化。互联网传播新闻的功能是传统媒体在许多方面无法相比的。互联网的出现,使得新闻获取更加方便、更加简单。随着智能手机的不断普及,日常生活中许多青年人在学校食堂、地铁、公交等地方玩手机的现象比比皆是。在这碎片化的时间里,拿出手机看新闻无疑是他们最好的选择。互联网能让用户交流对新闻的看法,增加用户间的互动,提高用户的阅读兴趣,以此吸引更多的用户参与其中。由此可见,新闻网站的用户基数十分庞大。
针对以上需求,首先,我们设计了一个新闻博客管理系统。新闻博客以热点时事新闻为基础,对其进行分类,将其分成科技类、娱乐类、政治类等,易于用户浏览。同时设置了关键字搜索功能,提高用户查找新闻的效率。在发布新闻的环节里增加了审核功能,降低虚假新闻率,提高新闻的真实性,保护用户的权益。在新闻界面增加了评论功能,易于用户发表观点,交流意见,以此增加用户的阅读兴趣,提升其体验。其次,基于安全性的考虑,利用MD5对用户密码进行加密,保护用户的账号信息,防止其被不法份子盗取。最后,管理员可以通过后台进行博文发布、博文管理、用户管理等操作,相关操作在前台界面便会进行更新。
1 前台界面
1.1 首页
美化——首页中我们在右上角的图片显示区域加入了轮播图的特效,使界面更具观赏性,吸引用户,激发用户兴趣;背景则使用了渐变效果,将新闻显示在纸张背景上,使得界面更加美观。
功能——新闻的分类(观点、八卦、海外、财经),搜索框中实现了关键字搜索(各文章分类中也已实现);另外,评论功能、详情功能、我要评论功能、注册及登录功能等均已实现。
1.2 功能详细介绍
(1)新闻分类:点击观点界面将会显示观点类新闻标题,点击标题即可进入正文,查看消息信息。
(2)关键字搜索:例如在首页的搜索框中输入“华为”这个关键字,界面将会显示有关华为的新闻。而当用户搜索的关键字在博文里面不存在时,便会提示搜索不到相关结果。
(3)评论功能:用户点击评论,即可查看本博文的所有评论,但不强制要求登录。
(4)注册功能:用户可以注册账号,即可在本博客中体验评论等功能,实现与他人的互动,提高新闻的趣味性。值得一提的是我们的注册页面不是简单的网页跳转,而是在本界面(首页)中实现弹框动画,以此提升用户的体验。
(5)登录功能:用户注册账号后,即可用此账号登录。当用户输入了一个在数据库中不存在的账号密码时,用户会被通知“用户名或密码有误”,之后允许用户重新输入用户账号或密码。
(6)详情功能:用户可以点击详情按钮来查看本博文的具体内容,本系统页面设置为最多显示300字博文的规模。
<%if(Utility.Substring( DataValidator.remove Html(binfo.getContext()),300).length()<300){out.print(Utility.Substring( DataValidator.remove Html(binfo.getContext()),300));
}
else{out.print(Utility.Substring( DataValidator.removeHtml(binfo.getContext()),300)+\"...\");
}
%>
(7)我要评论功能:用户点击我要评论按钮之后,便可以发表对该博文的观点。在这个功能中,系统要求用户必须登录才能进行评论。
(8)查看评论条数功能:评论按钮上有具体的评论条数。
public static int getBlogCommentCount(int blogID){
String sql = \"select count(Id)’blogComment Count’from comment where BlogId =\" + \"’\" + blogID + \"’;\";
ResultSet rs = conn.executeQuery(sql);
try {
if (rs.next()) {
return rs.getInt(“blogCommentCount”);
} else {
return 0;
}
} catch (SQLException e) {
e.printStackTrace();
return 0;
}
}
上面的代码根据blogID来统计数量。
(9)查看已评论的博文功能:在用户账号下方有一个查看已评论的博文功能,用户点击之后,便可以查看自己评论过的博文。在这里,有一个问题值得思考,因为用户可能对同一篇博文评论多次,但我们在已评论的博文数量中却不能重复统计。
\">查看已评论的博文(<%=GetComment Count. getCommentCount(username)%>)
上面这个是核心代码,将用户名当作参数传进comment. jsp中,便可以在数据库中将用户对一篇博文多个评论统计为1篇已评论的博文,当然还需要一个javaBean配合才行。
public static int getCommentCount(String username) {
String sql = \"select count(distinct BlogId)’ commentCount’ from comment where UserName = \" + \"’\" + username + \"’;\";
ResultSet rs = conn.executeQuery(sql);
try {
if (rs.next()) {
return rs.getInt(\"commentCount\");
} else {
return 0;
}
} catch (SQLException e) {
e.printStackTrace();
return 0;
}
}
上面的代码根据用户名来统计数量。
2 CKEditor的配置与使用
下面介绍在一个项目中如何配置CKEditor编辑器:
第一步:将CKEditor文件夹放到项目的WebRoot目录下。
第二步:将CK用到的相关jar包复制到WEB-INF/lib目录下。
第三步:在src根目录中添加一个属性文件ckeditor.properties。
该文件代码如下:
connector.userActionImpl=net.ckeditor.requestcycle. impl.EnabledUserAction
第四步:配置web.xml文件
在
net.ckeditor.connector.ConnectorServlet
第五步:在要使用CK的网页中添加如下代码:
%@page import=\"net.ckeditor.*\"%
function CKEditor_OnComplete(editorInstance) {
window.status = editorInstance.Description;
}
<%CKEditor = new CKEditor(request, \"content\");
CKEditor.setHeight(\"400\"); %>
<%= CKEditor %>
3 MD5算法
在数据传输的过程中,为了保证传输数据的安全性,通常会对数据进行加密,而MD5算法便可以满足加密的需求。
MD5算法提出了一个“信息摘要”的概念,而什么是“信息摘要”呢?在数据传输过程中,“信息摘要”可以防止信息被篡改,确保传输过来的数据是原始数据。“信息摘要”会根据传输的信息和某种特定的规则生成一段哈希值,即如果传输的信息发生一点小小的改变,生成的“信息摘要”结构也会有很大差异,这样就保证了明文与“信息摘要”之间是一一对应的。
其实,在我们平常的项目开发中,不必花大量时间去掌握MD5算法的原理,只要学会如何调用这个接口来达到加密的目的即可。
4 MVC开发模式
MVC模式是由Model(模型)、View(视图)、Controller
(控制器)三部分组成的,这种模式采用了“分而治之”的思想,用不同部分处理特定的方面,达到高内聚、低耦合的效果。
Model(模型):模型通常是简单的JavaBean,其作用是共享数据。通常,一张数据表对应一个JavaBean,一条记录对应一个对象。
View(视图):视图是将模型中数据进行显示。
Controller(控制器):控制器操控模型上的数据,并在操作完成之后更新视图中数据。通常,模型是不变的,控制器是会变的。
工作大致流程为用户向视图View发出请求之后,由控制器Controller操纵相应的模型Model数据,操纵完毕之后,模型Model向视图View发出请求,视图View便获悉数据发生了更新,之后便会在视图View显示更新之后的数据。
5 数据库设计
应用系统通常包含大量的数据,而如何存储这些数据呢?通常大部分系统都是采用数据库进行存储。其实,系统的很多功能仅仅是涉及数据库的基本操作,例如:查询、增加、删除、修改等操作,而在一开始如果数据库没有设计得很完整,那么在后面的开发过程就会发现某张表缺少一个字段,这对后期的维护来说所花费的成本是巨大的。因此,一个好的系统通常都具有简单易用且功能强大的数据库系统。
新闻博客系统的数据库表设计如下:
(1)博文发布信息表:存放博主发布的博文,比如:Title(博文标题)、Context(博文内容)、CreatedTime(发布时间)、ClassId(所属分类)等。
(2)博文分类信息表:存放博文分类信息,比如:Id(分类编号)、Name(分类名称)、Sort(排序)等。
(3)博文评论信息表:存放博文评论信息,比如:Context(评论内容)、CreatedTime(评论时间)、BlogId(评论的博文编号)等。
(4)用户信息表:存放用户信息,比如:Username(用户账号)、Password(密码)、Email(邮箱)、Power(权限)等。
6 结 论
计算机网络和Web技术的发展,为新闻博文管理的自动化、规范化提供了基础。基于B/S结构的新闻博客管理系统,利用MVC开发模式,实现了博文管理工作的自动化。由于在开发时采用了MVC模式,各层次之间是松散耦合,这样既利于系统业务的重用,又利于团队的开发。该系统的实现为新闻的传播提供了一个良好的平台,使得用户能够即时了解时事热点。在下一步的修改与完善中,将采用Struts2+Hibernate+Spring框架来实现MVC,这样使得后续的开发迅速、省时、省事,而且质量好,同时也有益于后期的系统维护。
参考文献:
[1] 彭灿华,韦晓敏,魏士伟.J2EE项目开发与设计 [M].第二版.北京:中国铁道出版社,2016.
[2] 毛熠,陈娜.MD5算法的研究与改进 [J].计算机工程,2012,38(24):111-114+118.
[3] 王兴芳,单志龙.利用Struts实现高校论文网络管理平台 [J].中国教育信息化,2008(19):66-68.
作者简介:徐彤(1998.12-),男,江西鹰潭人,本科在读。研究方向:软件工程理论与方法。