- 相關推薦
美食論壇系統(tǒng)設計
引言
隨著網(wǎng)絡的發(fā)展,論壇已經(jīng)成為人們?nèi)粘_M行交流的一個不可或缺的空間。人們可以在論壇中談論喜歡的話題、提出或解答疑問、發(fā)布通知和公告等。由于它獨特的形式和強大的功能,受到廣大網(wǎng)友的歡迎,并成為全世界用戶交流信息的園地。
1.系統(tǒng)概述
目前論壇為人們提供了一個交流空間,用戶可以參與到自己的討論話題中,瀏覽論壇中的帖子或者發(fā)表自己的看法。在論壇中非注冊用戶只可以瀏覽論壇中的帖子,不可以對帖子發(fā)表評論或發(fā)表新的論題;論壇的注冊會員可以發(fā)布新的論題,并且可以自己的個人信息。
1.1系統(tǒng)現(xiàn)狀研究
目前常見的論壇系統(tǒng)主要有兩類:一類是利用Telnet軟件登陸站點上,這種方式可以使用同時上站的用戶數(shù)大大增加,每一個站點可以同時有200人上線,使多人之間的直接討論成為可能;另一類就是現(xiàn)在許多用戶更習慣的,基于web的論壇系統(tǒng),用戶只要連接到Internet上直接利用瀏覽器就可以進入論壇,閱讀其他用戶的發(fā)言,發(fā)表自己的意見。
1.2系統(tǒng)開發(fā)方法
本系統(tǒng)討論的是一個基于web的關于飲食的論壇系統(tǒng)。本系統(tǒng)需要綜合應用數(shù)據(jù)庫,javabean和jdbc等技術。
2.可行性分析
2.1系統(tǒng)總體目標
本系統(tǒng)主要是為了給那些對飲食方面感興趣的朋友提供一個交流的平臺,對有話可說的朋友,你在這里可以進行注冊成為會員,參與有關話題的討論,或提出新的話題,還可以修改個人資料。非注冊會員你可以瀏覽論壇里的帖子,獲取對自己有用的信息。另外假如你對某些版塊很趕興趣,你還可以向員成為某一版塊的斑竹,去管理本版塊的帖子,對于那些不健康的帖子你可以把它們給刪除掉。起到對論壇的維護作用。對于管理員擁有最高權限,可以授予別人為某個版塊的斑竹等等。
2.2技術可行性分析
本論壇是基于web來開發(fā)的,主要運用JSP,JDBC,JavaBean等相關技術,以Access 為后臺數(shù)據(jù)庫、Tomcat5.5為應用服務器。這些應用軟件(如JDK、tomcat5.5、eclipse、Macromedia Dreamweaver MX 2004等都可以在網(wǎng)絡上下載得來),并且這些軟件都是些最常用的網(wǎng)頁開發(fā)工具,都能夠快和好的掌握,并且也學了有關網(wǎng)頁開發(fā)的課程,所以一些最常用的技術能夠比較好的實現(xiàn),所以對于本系統(tǒng)在技術上是可以達到的。
3.需求分析
經(jīng)過以上對系統(tǒng)的調(diào)研及可行性分析后,下面對系統(tǒng)在功能上和性能上進行進一步的需求分析。
3.1功能需求
本系統(tǒng)應該具有信息瀏覽、信息發(fā)布、信息回復、編輯、刪除帖子、用戶注冊、用戶、個人信息修改、查看個人信息等功能。
3.2性能需求
設備需求:PC機,Windows98/2000/xp操作系統(tǒng),PII以上,64MB RAM。服務器、采用Access數(shù)據(jù)庫管理。
4.系統(tǒng)設計
4.1功能模塊結(jié)構圖
SHAPE \* MERGEFORMAT
(功能模塊結(jié)構圖)
4.2功能模塊描述
根據(jù)權限的不同,用戶的操作范圍也不相同,系統(tǒng)管理員可以維護此版塊的所有帖子的相關信息;注冊用戶可以發(fā)布新帖子、回復帖子、編輯自己發(fā)的帖子和瀏覽版塊中的所以帖子;而非注冊用戶只有瀏覽帖子的權限。
(1)登陸模塊
根據(jù)用戶輸入的擁護名和密碼,與數(shù)據(jù)庫中進行匹配,驗證賬號和密碼。
。2)注冊模塊
注冊新的用戶,根據(jù)提示填寫你的相關信息,再提交到數(shù)據(jù)庫,進行檢查,如果已經(jīng)有此用戶名就要重新命名。
。3)信息修改
可以進行修改你的個人信息。
。4)瀏覽帖子
用戶可以在此瀏覽帖子的主題信息。通過單擊主題信息的連接,可以進入此貼的主題的內(nèi)容和瀏覽此貼的詳細內(nèi)容。
(5)發(fā)布帖子
匿名用戶不可以使用此部分的功能,只有注冊用戶才可以在此模塊中發(fā)布一個新的主題信息。
。6)回復帖子
此部分也需要由注冊用戶使用。用戶可以在此部分對一個貼子的信息進行回復。
。7)編輯帖子
注冊用戶可以對自己所發(fā)的帖子進行編輯。
4.3數(shù)據(jù)庫設計
此實例中使用Access數(shù)據(jù)庫,通過JDBC-ODBC橋進行數(shù)庫連接,例如此數(shù)據(jù)庫名為fourm.mdb,該系統(tǒng)中需要建立,存放相關信息。
。1)首先創(chuàng)建user表,在此表里存儲了包括所有用戶的注冊信息。
(2)然后創(chuàng)建article表,此表記錄了論壇中的所有版塊的所有信息
4.4 詳細設計
4.4.1登陸模塊設計
用戶登陸模塊主要根據(jù)用戶登陸信息,與數(shù)據(jù)庫信息成功匹配后,獲得其相應的操作權限。
打開網(wǎng)頁,等待用戶輸入帳號、密碼、判斷用戶輸入信息,與后臺數(shù)據(jù)庫是否匹配,若不匹配,則刷新頁面,等待用戶重新輸入。
4.4.2用戶注冊模塊設計
單擊登陸頁面下方的“注冊新用戶”將進入注冊頁面。根據(jù)注冊相關選項填寫所要求填寫的信息。其中會進行用戶名長度和密碼長度驗證。如果不符合條件得從新輸入。
4.4.3用戶信息修改設計
當進入系統(tǒng)后,你可以單擊“修改個人信息”,進行相關信息的修改。
4.4.4瀏覽帖子模塊設計
當單擊論壇某個版塊連接時,即可以在打開的頁面看到該版塊帖子的主題列表,在列表中列出了帖子的作者、回復數(shù)量、瀏覽數(shù)量和最后恢復的時間。
4.4.5發(fā)布帖子模塊設計
論壇作為一種信息交流的工具,少不了要發(fā)表文章,其頁面和一般的表單提交差不多,只是增加了一些功能而已。為了用戶的方便,在設計時有兩個地方可以實現(xiàn)對帖子的發(fā)表,一個是在瀏覽帖子主題列表頁面中;另一個是在瀏覽帖子內(nèi)容頁面中,但這兩個所指向的連接是同一個頁面。在發(fā)表帖子時,將通過JavaBean 取得帖子數(shù)量,并保存到數(shù)據(jù)庫中。
4.4.6回復帖子模塊設計
回復帖子也是在post.jsp頁面完成的。回復帖子都會在原文標題前加上“re”作為帖子標題,對帖子的回復需要獲得帖子的主題id,一個帖子id 可能有零個或多個回復,這個主題id提交也是在連接中動態(tài)生成。
4.4.7編輯帖子模塊設計
如果用戶需要修改自己發(fā)表的帖子,或者對帖子不滿意,那么你可以對帖子進行相應的修改。在瀏覽帖子頁面單擊“編輯”連接,既可進入編輯頁面,在此可以對標題、內(nèi)容和圖表等信息進行修改,編輯帖子頁面。
5.系統(tǒng)的組成和實現(xiàn)
在本系統(tǒng)中,版塊越多,帖子數(shù)量越大,就越能吸引人氣,所以,論壇都會分為多個模塊,在每個版塊中發(fā)表相應的帖子,而本文將著重介紹論壇帖子的相應操作及這一部分,包括瀏覽帖子,發(fā)表帖子,回復帖子,編輯帖子,刪除帖子等操作,而具有不同權限的用戶可以進行不同的操作非注冊用戶只能瀏覽帖子。注冊擁護可以發(fā)表帖子、回復帖子、可以管理自己所發(fā)表的帖子;而管理員可以進行所有的操作。下面將逐一介紹。
5.1系統(tǒng)組成
本系統(tǒng)包括瀏覽帖子,發(fā)表帖子,回復帖子,編輯帖子,刪除帖子等操作,分為技術交流區(qū)、美食天地、生活五味、精華區(qū)等區(qū)域版塊。
5.2系統(tǒng)的實現(xiàn)
dbBean文件實現(xiàn)了數(shù)據(jù)庫的連接,以及各種通用函數(shù)的聲明。其他網(wǎng)頁如果需要連接數(shù)據(jù)庫,只要包含該文件即可。這樣可以大大減少代碼的重復,便于閱讀和維護,由于該文件設計合理,因此所有頁面都使用該文件。主頁面()
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)后,你可以單擊“修改個人信息”,進行相關信息的修改。
代碼省略。
5.2.4瀏覽帖子模塊實現(xiàn)
當單擊論壇某個版塊連接時,即可以在打開的頁面看到該版塊帖子的主題列表,在列表中列出了帖子的作者、回復數(shù)量、瀏覽數(shù)量和最后恢復的時間。代碼見系統(tǒng);
(該圖即為技術交流區(qū)的相關帖子,其他的版塊帖子見系統(tǒng)。)
另外瀏覽帖子主題列表和論壇的其他版塊都使用了 分頁的功能,這里通過int pagesize=10;語句確定每頁帖子的數(shù)量,這個數(shù)量可以根據(jù)自己的需要設置;用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ā)表文章,其頁面和一般的表單提交差不多,只是增加了一些功能而已。為了用戶的方便,在設計時有兩個地方可以實現(xiàn)對帖子的發(fā)表,一個是在瀏覽帖子主題列表頁面中;另一個是在瀏覽帖子內(nèi)容頁面中,但這兩個所指向的連接是同一個頁面。在發(fā)表帖子時,將通過JavaBean 取得帖子數(shù)量,并保存到數(shù)據(jù)庫中。發(fā)表帖子的頁面為(post.jsp):
當用戶提交帖子時,該帖子的信息將被保存到.jsp頁面中,然后保存到數(shù)據(jù)庫的數(shù)據(jù)表中,然后頁面跳到瀏覽帖子頁面。
5.2.6回復帖子模塊實現(xiàn)
回復帖子也是在。Jsp頁面完成的;貜吞佣紩谠臉祟}前加上“re”作為帖子標題,如圖,對帖子的回復需要獲得帖子的主題id,一個帖子id 可能有零個或多個回復,這個主題id提交也是在連接中動態(tài)生成。
5.2.7編輯帖子模塊實現(xiàn)
如果用戶需要修改自己發(fā)表的帖子,或者對帖子不滿意,那么你可以對帖子進行相應的修改。在瀏覽帖子頁面單擊“編輯”連接,既可進入編輯頁面,在此可以對標題、內(nèi)容和圖表等信息進行修改,編輯帖子頁面。
5.2.8帖子加精模塊設計
對于那些好的帖子你可以把它們加入精華區(qū)。
同理你也可以把它們刪除掉。
用戶對帖子進行刪除時,不能刪除整個帖子,只能刪除單個回復(如果該帖子沒有回復時,那么將刪除該帖子),而且和編輯帖子一樣,只能刪除自己所發(fā)表的帖子或恢復的帖子(員除外),在要刪除的帖子回復上單擊“刪除”連接,將彈出刪除確認對話框,確認后,該回復將被刪除,并返回到瀏覽帖子主題列表頁面。
6 系統(tǒng)測試
6.1系統(tǒng)登陸模塊測試
(1) 測試問題單
項目編號 測試類別:集成測試 序號:001
6.2帖子回復模塊測試
測試問題單
項目編號 測試類別:集成測試 序號:001
6.3 測試
本次測試主要用于對系統(tǒng)的出錯進行測試,測試項目包括用戶登陸模塊、帖子回復模塊、用戶注冊模塊等方面。在本次測試中我們共發(fā)現(xiàn)了8處錯誤,經(jīng)過修改,已對部分錯誤進行更正,其他部分正在進行中。通過本次測試,我希望在以后的開發(fā)中能夠避免再犯類似錯誤。
7.結(jié)束語
經(jīng)過以上詳細的設計與架構,終于完成了畢業(yè)選題系統(tǒng)的開發(fā)。在本次開發(fā)過程中,遇到了很多的困難。包括數(shù)據(jù)庫設計方面,技術實現(xiàn)方面以及系統(tǒng)測試方面。同時,我也受到了很大的啟發(fā),希望通過今后的學習,能夠?qū)Ρ鞠到y(tǒng)在安全性方面進行進一步的完善。
參考文獻
[1]李長林 等編著.Jsp組建動態(tài)網(wǎng)站基礎與實例操作[M].出版社,2005,11
[2] [美] Thinking.In.Java(版) [M] eBooks
[3]魯曉東 李育龍 楊健。jsp軟件工程案例精解[M]電子工業(yè)出版社,2005,5
[4]馮博 應群 編著。面向?qū)ο蟮腏AVA網(wǎng)絡編程[M] 清華大學出版社,2004,5,4
【美食論壇系統(tǒng)設計】相關文章:
基于web的校園論壇系統(tǒng)ASP+SQL03-08
智能無線防盜系統(tǒng)的設計03-18
SoC系統(tǒng)的低功耗設計03-18
GSM直放站監(jiān)控系統(tǒng)的設計03-07
ASP交友系統(tǒng)設計(一)03-07
彩色激光演示系統(tǒng)的設計03-07
電阻抗成像系統(tǒng)的設計03-18