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