摘 要:本文主要介紹了新聞博客系統的管理流程及其系統的功能及架構,并著重介紹了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-),男,江西鷹潭人,本科在讀。研究方向:軟件工程理論與方法。