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