• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MVC模式的BBS論壇設(shè)計(jì)及實(shí)現(xiàn)

      2016-11-02 19:24謝詩加
      電腦知識(shí)與技術(shù) 2016年18期

      謝詩加

      摘要:該文介紹了基于MVC三層模式的BBS論壇設(shè)計(jì),使用CSS樣式設(shè)計(jì)頁面布局,JavaScript頁面動(dòng)態(tài)響應(yīng),實(shí)現(xiàn)記錄主題帖點(diǎn)擊瀏覽次數(shù)、普通用戶注冊、登錄、發(fā)帖、回復(fù)、積分統(tǒng)計(jì)、文本編輯等功能,以及管理員用戶對帖子的刪除、修改、置頂和加精的管理功能。

      關(guān)鍵詞:MVC;HTML;論壇;CSS

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)18-0088-03

      1概述

      信息時(shí)代的到來使得信息成為當(dāng)今最重要的資源之一,Internet在信息的傳播中扮演了極其重要的角色。BBS論壇已經(jīng)成為信息發(fā)布的重要源地,也是信息傳播和交換的重要樞紐。

      本次BBS論壇整體基于MVC模式設(shè)計(jì)和開發(fā),使用MyEclipse作為主要開發(fā)工具,使用DreamWeaver進(jìn)行頁面整體框架布局設(shè)計(jì),使用CSS樣式進(jìn)行界面美化,根據(jù)具體BBS論壇需求分析,設(shè)計(jì)各個(gè)界面及功能模塊。

      設(shè)計(jì)采用MVC三層模式實(shí)現(xiàn)模型層(Model)、視圖層(View)控制層(Controller)三層分離,如圖1所示。模型層是應(yīng)用程序的核心部分,用于實(shí)現(xiàn)操作的具體方法、處理具體數(shù)據(jù);視圖層生成用戶界面,提供數(shù)據(jù)輸入與顯示模型層數(shù)據(jù)處理結(jié)果;控制層負(fù)責(zé)從視圖層讀取數(shù)據(jù),并將數(shù)據(jù)傳輸給模型層處理。采用MVC模式使得程序結(jié)構(gòu)設(shè)計(jì)更為清晰,使得程序更易維護(hù);同時(shí),將界面設(shè)計(jì)與詳細(xì)設(shè)計(jì)分割開,可在進(jìn)行功能設(shè)計(jì)和后臺(tái)數(shù)據(jù)庫處理時(shí),省去繁瑣的界面設(shè)計(jì)的考慮,也更便于單獨(dú)處理界面美化。

      2系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      功能概述:進(jìn)入論壇首頁可瀏覽帖子,用戶可注冊登錄論壇后回復(fù)帖子及發(fā)表新帖,管理員用戶登錄論壇可對帖子進(jìn)行管理操作。

      1)帖子顯示:帖子采用“平板模式”顯示,即論壇首頁顯示各個(gè)主題貼標(biāo)題,點(diǎn)擊標(biāo)題可查看主題貼詳細(xì)內(nèi)容及回復(fù)貼的內(nèi)容。

      2)帖子回復(fù)及發(fā)表:用戶可對每個(gè)主題帖及回復(fù)貼進(jìn)行跟帖回復(fù),在帖子回復(fù)及發(fā)表頁面加入FCK插件,提供簡單的文本編輯功能。

      3)論壇登錄:在登錄界面設(shè)置登錄選項(xiàng),區(qū)分普通用戶與管理員用戶。實(shí)現(xiàn)登錄后,普通用戶與管理員用戶所見的論壇界面不同,對帖子也有不同的操作權(quán)限。

      4)瀏覽計(jì)數(shù):主題帖的瀏覽次數(shù)根據(jù)用戶點(diǎn)擊帖子的次數(shù)而增加。

      5)積分統(tǒng)計(jì):用戶注冊成功后有基礎(chǔ)積分,用戶發(fā)表新帖和回復(fù)帖可得到相應(yīng)積分。

      6)帖子管理:管理員用戶登錄成功后可對帖子進(jìn)行修改、刪除、置頂和加精的管理操作。

      2.1界面設(shè)計(jì)

      使用DreamWeaver作為整體界面設(shè)計(jì)工具,界面整體使用Table安排布局,將論壇首頁界面劃分為標(biāo)題區(qū),帖子區(qū)兩大板塊,如圖2所示。

      標(biāo)題區(qū)登錄和搜索功能,顯示論壇標(biāo)題及歡迎語,每個(gè)界面統(tǒng)一使用此樣式布局顯示,使整個(gè)論壇更為整潔和整體化。

      主題體貼列表區(qū)內(nèi)設(shè)置兩種顏色不同的樣式顯示主題帖,使帖子排列顯示更為清晰。帖子區(qū)顯示發(fā)帖標(biāo)題,作者姓名,帖子瀏覽次數(shù)及發(fā)帖時(shí)間。主題帖顯示出各個(gè)主題的標(biāo)題,點(diǎn)擊帖子標(biāo)題,查看帖子詳細(xì)內(nèi)容,及所有用戶和游客對主題帖的回復(fù)貼。

      2.2 數(shù)據(jù)庫設(shè)計(jì)

      本次數(shù)據(jù)庫設(shè)計(jì)采用了JDBC數(shù)據(jù)庫連接池的連接方式。數(shù)據(jù)庫連接池為數(shù)據(jù)庫的連接建立一個(gè)“緩沖池”。預(yù)先在緩沖池中放入一定數(shù)量的連接,當(dāng)需要建立數(shù)據(jù)庫連接時(shí),只需從“緩沖池”中取出一個(gè)連接使用即可,在使用完畢之后再放回去。通過設(shè)定連接池的最大連接數(shù)來防止系統(tǒng)無盡的與數(shù)據(jù)庫連接,減少系統(tǒng)的反應(yīng)時(shí)間,也減輕系統(tǒng)資源的頻繁分配。

      數(shù)據(jù)庫連接:

      private String driverName = "com.mysql.jdbc.Driver";

      privateString

      url="jdbc:mysql://localhost:3306/bbs?user=root&password=&useUnicod=true&characterEncoding=gb2312";

      根據(jù)系統(tǒng)功能設(shè)計(jì),數(shù)據(jù)庫主要含有普通用戶表、管理員用戶表和帖子信息表。其中以帖子信息表為例,如表1所示,IsLeaf字段用于判斷帖子是否為主題帖,是否可以排列在BBS論壇首頁主題帖列表內(nèi);Level字段用于判斷帖子優(yōu)先級(jí)別,判斷主題帖為置頂帖、精華帖或者是普通貼。

      1)帖子顯示及內(nèi)容讀取

      BBS論壇帖子分為主題帖和回復(fù)貼兩類。論壇首頁的主題帖采用平板形式排列顯示,即點(diǎn)擊主題帖標(biāo)題,則展開主題帖詳細(xì)內(nèi)容及其各個(gè)回復(fù)貼。用戶點(diǎn)擊主題帖后,通過控制器調(diào)用方法,讀取數(shù)據(jù)庫中帖子信息表內(nèi)的所有帖子信息。根據(jù)IsLeaf字段的值判斷帖子是否為主題帖,主題帖將在論壇首頁主題帖列表顯示,根據(jù)主題帖的Level字段優(yōu)先級(jí)別和發(fā)帖時(shí)間順序排列,Level字段值的高級(jí)別優(yōu)先排列,同等級(jí)別的主題貼最新發(fā)表的優(yōu)先排列。

      論壇首頁統(tǒng)計(jì)論壇所有主題帖數(shù)量,并分頁顯示主題帖,實(shí)現(xiàn)上下翻頁功能。用戶每點(diǎn)擊一次主題帖標(biāo)題,對應(yīng)主題帖的瀏覽次數(shù)計(jì)數(shù)器的值將加1,則該主題帖的瀏覽次數(shù)將增加一次瀏覽記錄。排列在主題貼詳細(xì)內(nèi)容后的各個(gè)回復(fù)貼,根據(jù)回復(fù)時(shí)間先后,采用樹形結(jié)構(gòu)由上向下排列顯示。

      2)發(fā)帖與回復(fù)

      發(fā)帖與回復(fù)頁面的文本編輯框內(nèi)都加入FCK插件,可對要發(fā)表的文本進(jìn)行字體、字號(hào)、顏色、格式等進(jìn)行編輯。普通用戶登錄成功后可發(fā)表新帖,新主題帖的IsLeaf字段的值自動(dòng)判斷為0,并將其顯示在論壇首頁的主題帖列表內(nèi)。每個(gè)主題貼及回復(fù)貼都設(shè)置有回復(fù)按鈕,點(diǎn)擊回復(fù)按鈕,則跳轉(zhuǎn)至回復(fù)頁面,控制器讀取用戶填寫的要發(fā)表的回復(fù)內(nèi)容,并將其添加入數(shù)據(jù)庫?;貜?fù)貼根據(jù)回復(fù)時(shí)間的先后順序,依次排列于主題帖下,并在各回復(fù)貼上顯示“第幾樓”的回復(fù)序列號(hào),如圖3所示。

      3)積分統(tǒng)計(jì)

      每一位新用戶在注冊成功后,有1000分基礎(chǔ)積分。根據(jù)用戶的不同操作增加用戶的積分,例如,發(fā)表一份新主題帖,用戶積分增加20分;回復(fù)一次帖子,用戶積分增加5分。

      4)關(guān)鍵字搜索

      在論壇首頁設(shè)有搜索框,可輸入搜索關(guān)鍵字,查詢關(guān)鍵字相關(guān)的主題帖,并分頁顯示查詢結(jié)果。

      查詢主題帖:

      String(request.getParameter("search").getBytes("8859_1"),"GBK");

      String sql="select * from article where pid=0 order by pdate desc where title like '%"+keyword+"%' or cont like '%"+keyword+"%'";

      5)登錄過濾

      BBS論壇未登錄用戶,將直接被識(shí)別為“游客”身份。論壇用戶分為普通用戶和管理員用戶兩類。在論壇登錄界面設(shè)置 “用戶”和“管理員”的登錄選項(xiàng),用戶根據(jù)自己身份情況,選擇對應(yīng)的登錄選項(xiàng),并填寫登錄信息。用戶點(diǎn)擊登錄后,將用戶選取的登錄選項(xiàng)值及用戶輸入的登錄信息傳給控制器,由控制器根據(jù)用戶選取的登錄選項(xiàng),調(diào)用數(shù)據(jù)庫中不同的數(shù)據(jù)表的信息,與用戶輸入的登錄信息作對比,信息對比通過,則登錄成功,設(shè)置3秒后自動(dòng)跳轉(zhuǎn)至論壇首頁,反之則登錄失敗,返回到登錄界面,系統(tǒng)的登錄流程如圖4所示。

      用戶登錄成功后,根據(jù)用戶不同類別判斷,顯示對應(yīng)類別的登錄成功后的論壇界面。不同類別的用戶登錄成功后有不同操作的權(quán)限。普通用戶登錄成功后,可以進(jìn)行發(fā)帖、回復(fù)等操作,管理員用戶登錄成功后,可對“普通用戶”的發(fā)帖進(jìn)行管理。

      登錄過濾:

      if(loginn.equals("admin")){

      String sql="select *from admin where username='"+usename+"'and pwd='"+password+"'";

      if(Login.isLogin(stat, sql)){

      session.setAttribute("admin", "admin");

      sessions.setAttribute("adminname", usename);

      response.sendRedirect("successful.jsp");

      }else{

      session.setAttribute("admin", "noadmin");

      response.sendRedirect("fail.jsp");

      }else{

      String sql="select *from user where name='"+usename+"'and password='"+password+"'";

      if(Login.isLogin(stat, sql)){

      session.setAttribute("user", "user");

      sessions.setAttribute("username", usename);

      response.sendRedirect("successful.jsp");

      }else{

      session.setAttribute("user", "nouser");

      response.sendRedirect("fail.jsp");

      }

      }

      6)帖子管理權(quán)限

      管理員用戶登錄成功后,可查看主題貼的詳細(xì)內(nèi)容及各個(gè)回復(fù)貼的情況,可對帖子進(jìn)行修改、刪除、置頂以及加精的管理操作。

      置頂:在帖子信息表內(nèi)設(shè)計(jì)Level字段,用于判斷主題帖的優(yōu)先級(jí)別。在BBS論壇首頁的主題貼列表內(nèi),主題貼的排序順序,是根據(jù)主題貼的Level字段的值降序排列及主題帖的發(fā)帖時(shí)間降序排列。主題貼的Level字段的值為第一優(yōu)先考慮排序條件,當(dāng)主題帖的Level字段的值相同時(shí),再根據(jù)發(fā)帖時(shí)間降序排列各個(gè)主題貼。新發(fā)表的主題貼時(shí),其Level字段的值默認(rèn)為0,管理員用戶點(diǎn)擊某個(gè)主題貼置頂按鈕后,對應(yīng)主題貼的Level字段的值從0改為2,并在對應(yīng)主題貼標(biāo)題后,添加小紅旗圖案作為置頂后的標(biāo)志。置頂貼的位置跳轉(zhuǎn)至論壇首頁的主題貼列表的頂端。

      加精:加精功能的設(shè)計(jì)與置頂類似,用帖子信息表內(nèi)的Level字段的值對主題帖進(jìn)行判斷。管理員用戶點(diǎn)擊主題帖后的加精按鈕,主題帖的Level字段的值從0改為1,主題帖整體先根據(jù)其Level字段的值降序排列,所以精華主題帖排列在置頂主題帖后。主題帖加精后,將在對應(yīng)主題帖后添加“精”字圖片作為精華帖 的標(biāo)志。主題帖列表框內(nèi),主題帖的排列順序從上往下依次為置頂帖、精華帖、普通貼。

      修改:管理員用戶點(diǎn)擊修改后,頁面跳轉(zhuǎn)至修改頁面,則管理員用戶可對主題帖的標(biāo)題及其內(nèi)容進(jìn)行修改。修改界面也加入FCK控件,為管理員用戶提供文本樣式編輯功能。

      刪除:管理員用戶點(diǎn)擊刪除按鈕后,將刪除對應(yīng)主題貼及其所有的回復(fù)帖。

      3結(jié)束語

      在信息大爆炸的今天,BBS論壇成為網(wǎng)絡(luò)巨大的信源地和信宿地,成為信息交換的一個(gè)大平臺(tái)。HTML成為BBS論壇開發(fā)良好工具,不斷豐富BBS論壇的功能,為人們的信息獲取和交換帶來極大的便利。

      參考文獻(xiàn):

      [1] 柳永坡, 劉雪梅, 趙長海.JSP應(yīng)用開發(fā)技術(shù)[M]. 北京: 人民郵電出版社, 2005.

      [2] 王夕寧, 王曉平.JSP通用模塊及典型系統(tǒng)開發(fā)實(shí)例導(dǎo)航[M]. 北京: 人民郵電出版社, 2006.

      [3] 耿祥義. JSP基礎(chǔ)教程[M]. 北京: 清華大學(xué)出版社, 2004.

      [4] 孫衛(wèi)琴, 李洪成.Tomcat與Java Web開發(fā)技術(shù)詳解[M]. 北京: 電子工業(yè)出版社, 2004.

      [5] 曾云飛.基于Struts框架的電子政務(wù)研究和實(shí)現(xiàn)[M]. 沈陽: 東北大學(xué)出版社, 2005.

      [6] 賽奎春.JSP信息系統(tǒng)開發(fā)實(shí)例精選[M].北京: 機(jī)械工業(yè)出版社, 2006.

      [7] 鄧良松, 劉海巖, 陸麗娜.軟件工程[M]. 西安: 西安電子科技大學(xué)出版社, 2000.

      [8] 王永茂.JSP程序設(shè)計(jì)[M]. 北京: 清華大學(xué)出版社, 2010.

      枣强县| 通城县| 绩溪县| 雅江县| 驻马店市| 赣榆县| 雅江县| 鄂托克前旗| 阜宁县| 岳阳县| 蕉岭县| 军事| 赤壁市| 巴彦淖尔市| 德庆县| 江口县| 车致| 鄂温| 玛多县| 青田县| 南投市| 北票市| 郸城县| 凯里市| 浮山县| 花莲县| 虎林市| 紫金县| 阿图什市| 施秉县| 池州市| 聂拉木县| 定日县| 张家界市| 鄯善县| 嘉鱼县| 大英县| 青岛市| 安平县| 邯郸县| 新郑市|