- 相關(guān)推薦
美食論壇系統(tǒng)設(shè)計
引言
隨著網(wǎng)絡(luò)的發(fā)展,論壇已經(jīng)成為人們?nèi)粘_M行交流的一個不可或缺的空間。人們可以在論壇中談?wù)撓矚g的話題、提出或解答疑問、發(fā)布通知和公告等。由于它獨特的形式和強大的功能,受到廣大網(wǎng)友的歡迎,并成為全世界用戶交流信息的園地。
1.系統(tǒng)概述
目前論壇為人們提供了一個交流空間,用戶可以參與到自己的討論話題中,瀏覽論壇中的帖子或者發(fā)表自己的看法。在論壇中非注冊用戶只可以瀏覽論壇中的帖子,不可以對帖子發(fā)表評論或發(fā)表新的論題;論壇的注冊會員可以發(fā)布新的論題,并且可以自己的個人信息。
1.1系統(tǒng)現(xiàn)狀研究
目前常見的論壇系統(tǒng)主要有兩類:一類是利用Telnet軟件登陸站點上,這種方式可以使用同時上站的用戶數(shù)大大增加,每一個站點可以同時有200人上線,使多人之間的直接討論成為可能;另一類就是現(xiàn)在許多用戶更習(xí)慣的,基于web的論壇系統(tǒng),用戶只要連接到Internet上直接利用瀏覽器就可以進入論壇,閱讀其他用戶的發(fā)言,發(fā)表自己的意見。
1.2系統(tǒng)開發(fā)方法
本系統(tǒng)討論的是一個基于web的關(guān)于飲食的論壇系統(tǒng)。本系統(tǒng)需要綜合應(yīng)用數(shù)據(jù)庫,javabean和jdbc等技術(shù)。
2.可行性分析
2.1系統(tǒng)總體目標
本系統(tǒng)主要是為了給那些對飲食方面感興趣的朋友提供一個交流的平臺,對有話可說的朋友,你在這里可以進行注冊成為會員,參與有關(guān)話題的討論,或提出新的話題,還可以修改個人資料。非注冊會員你可以瀏覽論壇里的帖子,獲取對自己有用的信息。另外假如你對某些版塊很趕興趣,你還可以向員成為某一版塊的斑竹,去管理本版塊的帖子,對于那些不健康的帖子你可以把它們給刪除掉。起到對論壇的維護作用。對于管理員擁有最高權(quán)限,可以授予別人為某個版塊的斑竹等等。
2.2技術(shù)可行性分析
本論壇是基于web來開發(fā)的,主要運用JSP,JDBC,JavaBean等相關(guān)技術(shù),以Access 為后臺數(shù)據(jù)庫、Tomcat5.5為應(yīng)用服務(wù)器。這些應(yīng)用軟件(如JDK、tomcat5.5、eclipse、Macromedia Dreamweaver MX 2004等都可以在網(wǎng)絡(luò)上下載得來),并且這些軟件都是些最常用的網(wǎng)頁開發(fā)工具,都能夠快和好的掌握,并且也學(xué)了有關(guān)網(wǎng)頁開發(fā)的課程,所以一些最常用的技術(shù)能夠比較好的實現(xiàn),所以對于本系統(tǒng)在技術(shù)上是可以達到的。
3.需求分析
經(jīng)過以上對系統(tǒng)的調(diào)研及可行性分析后,下面對系統(tǒng)在功能上和性能上進行進一步的需求分析。
3.1功能需求
本系統(tǒng)應(yīng)該具有信息瀏覽、信息發(fā)布、信息回復(fù)、編輯、刪除帖子、用戶注冊、用戶、個人信息修改、查看個人信息等功能。
3.2性能需求
設(shè)備需求:PC機,Windows98/2000/xp操作系統(tǒng),PII以上,64MB RAM。服務(wù)器、采用Access數(shù)據(jù)庫管理。
4.系統(tǒng)設(shè)計
4.1功能模塊結(jié)構(gòu)圖
SHAPE \* MERGEFORMAT
(功能模塊結(jié)構(gòu)圖)
4.2功能模塊描述
根據(jù)權(quán)限的不同,用戶的操作范圍也不相同,系統(tǒng)管理員可以維護此版塊的所有帖子的相關(guān)信息;注冊用戶可以發(fā)布新帖子、回復(fù)帖子、編輯自己發(fā)的帖子和瀏覽版塊中的所以帖子;而非注冊用戶只有瀏覽帖子的權(quán)限。
。1)登陸模塊
根據(jù)用戶輸入的擁護名和密碼,與數(shù)據(jù)庫中進行匹配,驗證賬號和密碼。
。2)注冊模塊
注冊新的用戶,根據(jù)提示填寫你的相關(guān)信息,再提交到數(shù)據(jù)庫,進行檢查,如果已經(jīng)有此用戶名就要重新命名。
。3)信息修改
可以進行修改你的個人信息。
。4)瀏覽帖子
用戶可以在此瀏覽帖子的主題信息。通過單擊主題信息的連接,可以進入此貼的主題的內(nèi)容和瀏覽此貼的詳細內(nèi)容。
。5)發(fā)布帖子
匿名用戶不可以使用此部分的功能,只有注冊用戶才可以在此模塊中發(fā)布一個新的主題信息。
(6)回復(fù)帖子
此部分也需要由注冊用戶使用。用戶可以在此部分對一個貼子的信息進行回復(fù)。
。7)編輯帖子
注冊用戶可以對自己所發(fā)的帖子進行編輯。
4.3數(shù)據(jù)庫設(shè)計
此實例中使用Access數(shù)據(jù)庫,通過JDBC-ODBC橋進行數(shù)庫連接,例如此數(shù)據(jù)庫名為fourm.mdb,該系統(tǒng)中需要建立,存放相關(guān)信息。
。1)首先創(chuàng)建user表,在此表里存儲了包括所有用戶的注冊信息。
(2)然后創(chuàng)建article表,此表記錄了論壇中的所有版塊的所有信息
4.4 詳細設(shè)計
4.4.1登陸模塊設(shè)計
用戶登陸模塊主要根據(jù)用戶登陸信息,與數(shù)據(jù)庫信息成功匹配后,獲得其相應(yīng)的操作權(quán)限。
打開網(wǎng)頁,等待用戶輸入帳號、密碼、判斷用戶輸入信息,與后臺數(shù)據(jù)庫是否匹配,若不匹配,則刷新頁面,等待用戶重新輸入。
4.4.2用戶注冊模塊設(shè)計
單擊登陸頁面下方的“注冊新用戶”將進入注冊頁面。根據(jù)注冊相關(guān)選項填寫所要求填寫的信息。其中會進行用戶名長度和密碼長度驗證。如果不符合條件得從新輸入。
4.4.3用戶信息修改設(shè)計
當進入系統(tǒng)后,你可以單擊“修改個人信息”,進行相關(guān)信息的修改。
4.4.4瀏覽帖子模塊設(shè)計
當單擊論壇某個版塊連接時,即可以在打開的頁面看到該版塊帖子的主題列表,在列表中列出了帖子的作者、回復(fù)數(shù)量、瀏覽數(shù)量和最后恢復(fù)的時間。
4.4.5發(fā)布帖子模塊設(shè)計
論壇作為一種信息交流的工具,少不了要發(fā)表文章,其頁面和一般的表單提交差不多,只是增加了一些功能而已。為了用戶的方便,在設(shè)計時有兩個地方可以實現(xiàn)對帖子的發(fā)表,一個是在瀏覽帖子主題列表頁面中;另一個是在瀏覽帖子內(nèi)容頁面中,但這兩個所指向的連接是同一個頁面。在發(fā)表帖子時,將通過JavaBean 取得帖子數(shù)量,并保存到數(shù)據(jù)庫中。
4.4.6回復(fù)帖子模塊設(shè)計
回復(fù)帖子也是在post.jsp頁面完成的;貜(fù)帖子都會在原文標題前加上“re”作為帖子標題,對帖子的回復(fù)需要獲得帖子的主題id,一個帖子id 可能有零個或多個回復(fù),這個主題id提交也是在連接中動態(tài)生成。
4.4.7編輯帖子模塊設(shè)計
如果用戶需要修改自己發(fā)表的帖子,或者對帖子不滿意,那么你可以對帖子進行相應(yīng)的修改。在瀏覽帖子頁面單擊“編輯”連接,既可進入編輯頁面,在此可以對標題、內(nèi)容和圖表等信息進行修改,編輯帖子頁面。
5.系統(tǒng)的組成和實現(xiàn)
在本系統(tǒng)中,版塊越多,帖子數(shù)量越大,就越能吸引人氣,所以,論壇都會分為多個模塊,在每個版塊中發(fā)表相應(yīng)的帖子,而本文將著重介紹論壇帖子的相應(yīng)操作及這一部分,包括瀏覽帖子,發(fā)表帖子,回復(fù)帖子,編輯帖子,刪除帖子等操作,而具有不同權(quán)限的用戶可以進行不同的操作非注冊用戶只能瀏覽帖子。注冊擁護可以發(fā)表帖子、回復(fù)帖子、可以管理自己所發(fā)表的帖子;而管理員可以進行所有的操作。下面將逐一介紹。
5.1系統(tǒng)組成
本系統(tǒng)包括瀏覽帖子,發(fā)表帖子,回復(fù)帖子,編輯帖子,刪除帖子等操作,分為技術(shù)交流區(qū)、美食天地、生活五味、精華區(qū)等區(qū)域版塊。
5.2系統(tǒng)的實現(xiàn)
dbBean文件實現(xiàn)了數(shù)據(jù)庫的連接,以及各種通用函數(shù)的聲明。其他網(wǎng)頁如果需要連接數(shù)據(jù)庫,只要包含該文件即可。這樣可以大大減少代碼的重復(fù),便于閱讀和維護,由于該文件設(shè)計合理,因此所有頁面都使用該文件。主頁面()
5.2.1登陸模塊實現(xiàn)
當用戶在瀏覽器中輸入 時,系統(tǒng)將進入登陸頁面。主要代碼:
......
<%
request.setCharacterEncoding("gb2312");
session.setMaxInactiveInterval(-1);
String user=request.getParameter("user");
String pw=request.getParameter("pw");
String sql="select * from user where name='"+user+"' and password='"+pw+"'";
ResultSet rs=conn.executeQuery(sql);
if(rs.next())
{
session.setAttribute("rank",rs.getString("rank"));
session.setAttribute("id",rs.getString("userid"));
session.setAttribute("name",rs.getString("name"));
rs.close();
conn.close();
%>
<jsp:forward page="home.jsp"/>
<%
}
else
{
rs.close();
conn.close();
%>
......
5.2.2用戶注冊模塊實現(xiàn)
單擊登陸頁面下方的“注冊新用戶”將進入注冊頁面。
代碼如下:
...
<%
request.setCharacterEncoding("gb2312");
String name="";
String password="";
String sex="";
String age="";
String phone="";
String email="";
String address="";
String face="";
ResultSet rs=null;
if(request.getParameter("username")!=null)
name=request.getParameter("username");
if(request.getParameter("password")!=null)
password=request.getParameter("password");
if(request.getParameter("sex")!=null)
sex=request.getParameter("sex");
if(request.getParameter("age")!=null)
age=request.getParameter("age");
if(request.getParameter("phone")!=null)
phone=request.getParameter("phone");
if(request.getParameter("email")!=null)
email=request.getParameter("email");
if(request.getParameter("address")!=null)
address=request.getParameter("address");
if(request.getParameter("face")!=null)
face=request.getParameter("face");
String sql="select * from user where name='"+name+"'";
rs=conn.executeQuery(sql);
if(rs.next())
{
rs.close();
out.println("<center><h2>對不起,該用戶名已經(jīng)被占用,請另選一個用戶名!<br></h2>");
out.println("<a href='javascript:history.back()'>返回</a></center>");
}
else
{
sql="insert into user(name,password,sex,age,phone,email,address,rank,pubnum,face) values('"+name+"','"+password+"','"+sex+"','"+age+"','"+phone+"','"+email+"','"+address+"',0,0,'"+face+"')";
conn.executeUpdate(sql);
out.println("<center><h2>恭喜您,注冊成功!<br></h2>");
out.println("<a href='login.jsp'>返回登錄頁面</a></center>");
}
conn.close();
%>
...
5.2.3用戶信息修改實現(xiàn)
當進入系統(tǒng)后,你可以單擊“修改個人信息”,進行相關(guān)信息的修改。
代碼省略。
5.2.4瀏覽帖子模塊實現(xiàn)
當單擊論壇某個版塊連接時,即可以在打開的頁面看到該版塊帖子的主題列表,在列表中列出了帖子的作者、回復(fù)數(shù)量、瀏覽數(shù)量和最后恢復(fù)的時間。代碼見系統(tǒng);
(該圖即為技術(shù)交流區(qū)的相關(guān)帖子,其他的版塊帖子見系統(tǒng)。)
另外瀏覽帖子主題列表和論壇的其他版塊都使用了 分頁的功能,這里通過int pagesize=10;語句確定每頁帖子的數(shù)量,這個數(shù)量可以根據(jù)自己的需要設(shè)置;用pagecount=(recordCount%pageSize==0)?(recordCOunt/pageSize):(recordCount/pageSize+1) 語句計算得到該版塊的帖子所站用的總頁數(shù);通過for(int i=1;i<=pageCount;i++)語句在翻頁時獲得頁數(shù),如第2頁、第三頁。效果如圖:
在顯示帖子內(nèi)容這個頁面,論壇使用了目前最常用的一種格式,即分為標題和正文部分,通過標題部分和正文部分的顏色不同將不同的帖子劃分開來。單擊想查看的帖子,即可瀏覽該帖子的內(nèi)容。
5.2.5發(fā)布帖子模塊實現(xiàn)
論壇作為一種信息交流的工具,少不了要發(fā)表文章,其頁面和一般的表單提交差不多,只是增加了一些功能而已。為了用戶的方便,在設(shè)計時有兩個地方可以實現(xiàn)對帖子的發(fā)表,一個是在瀏覽帖子主題列表頁面中;另一個是在瀏覽帖子內(nèi)容頁面中,但這兩個所指向的連接是同一個頁面。在發(fā)表帖子時,將通過JavaBean 取得帖子數(shù)量,并保存到數(shù)據(jù)庫中。發(fā)表帖子的頁面為(post.jsp):
當用戶提交帖子時,該帖子的信息將被保存到.jsp頁面中,然后保存到數(shù)據(jù)庫的數(shù)據(jù)表中,然后頁面跳到瀏覽帖子頁面。
5.2.6回復(fù)帖子模塊實現(xiàn)
回復(fù)帖子也是在。Jsp頁面完成的;貜(fù)帖子都會在原文標題前加上“re”作為帖子標題,如圖,對帖子的回復(fù)需要獲得帖子的主題id,一個帖子id 可能有零個或多個回復(fù),這個主題id提交也是在連接中動態(tài)生成。
5.2.7編輯帖子模塊實現(xiàn)
如果用戶需要修改自己發(fā)表的帖子,或者對帖子不滿意,那么你可以對帖子進行相應(yīng)的修改。在瀏覽帖子頁面單擊“編輯”連接,既可進入編輯頁面,在此可以對標題、內(nèi)容和圖表等信息進行修改,編輯帖子頁面。
5.2.8帖子加精模塊設(shè)計
對于那些好的帖子你可以把它們加入精華區(qū)。
同理你也可以把它們刪除掉。
用戶對帖子進行刪除時,不能刪除整個帖子,只能刪除單個回復(fù)(如果該帖子沒有回復(fù)時,那么將刪除該帖子),而且和編輯帖子一樣,只能刪除自己所發(fā)表的帖子或恢復(fù)的帖子(員除外),在要刪除的帖子回復(fù)上單擊“刪除”連接,將彈出刪除確認對話框,確認后,該回復(fù)將被刪除,并返回到瀏覽帖子主題列表頁面。
6 系統(tǒng)測試
6.1系統(tǒng)登陸模塊測試
(1) 測試問題單
項目編號 測試類別:集成測試 序號:001
6.2帖子回復(fù)模塊測試
測試問題單
項目編號 測試類別:集成測試 序號:001
6.3 測試
本次測試主要用于對系統(tǒng)的出錯進行測試,測試項目包括用戶登陸模塊、帖子回復(fù)模塊、用戶注冊模塊等方面。在本次測試中我們共發(fā)現(xiàn)了8處錯誤,經(jīng)過修改,已對部分錯誤進行更正,其他部分正在進行中。通過本次測試,我希望在以后的開發(fā)中能夠避免再犯類似錯誤。
7.結(jié)束語
經(jīng)過以上詳細的設(shè)計與架構(gòu),終于完成了畢業(yè)選題系統(tǒng)的開發(fā)。在本次開發(fā)過程中,遇到了很多的困難。包括數(shù)據(jù)庫設(shè)計方面,技術(shù)實現(xiàn)方面以及系統(tǒng)測試方面。同時,我也受到了很大的啟發(fā),希望通過今后的學(xué)習(xí),能夠?qū)Ρ鞠到y(tǒng)在安全性方面進行進一步的完善。
參考文獻
[1]李長林 等編著.Jsp組建動態(tài)網(wǎng)站基礎(chǔ)與實例操作[M].出版社,2005,11
[2] [美] Thinking.In.Java(版) [M] eBooks
[3]魯曉東 李育龍 楊健。jsp軟件工程案例精解[M]電子工業(yè)出版社,2005,5
[4]馮博 應(yīng)群 編著。面向?qū)ο蟮腏AVA網(wǎng)絡(luò)編程[M] 清華大學(xué)出版社,2004,5,4
【美食論壇系統(tǒng)設(shè)計】相關(guān)文章:
學(xué)生信息管理系統(tǒng)設(shè)計開題報告07-20
基于web的異地并行設(shè)計與制造系統(tǒng)研究06-02
基于PLC的斷路器型式試驗系統(tǒng)設(shè)計03-10
職工工資管理系統(tǒng)的設(shè)計與開發(fā)論文開題報告09-15
基于電話網(wǎng)絡(luò)的熱網(wǎng)遠程控制系統(tǒng)設(shè)計05-11
雙容水箱串級液位控制系統(tǒng)設(shè)計 開題報告07-30
分析基于三維掃描的特種設(shè)備管理系統(tǒng)設(shè)計論文05-26
綜合布線系統(tǒng)概述09-22
前臺mis治理系統(tǒng)06-04
績效治理系統(tǒng)及作用06-05