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