《JSP課程設(shè)計報告技術(shù)論壇系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《JSP課程設(shè)計報告技術(shù)論壇系統(tǒng)(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、華 北 科 技 學(xué) 院課程設(shè)計說明書班級: 姓名: 學(xué)號: 設(shè)計題目: 技術(shù)論壇系統(tǒng) 設(shè)計時間: 至 指導(dǎo)教師: 評 語:_評閱成績:評閱教師:一 摘要BBS討論區(qū)是目前因特網(wǎng)上人氣最旺的互動交流服務(wù),據(jù)統(tǒng)計,國內(nèi)三大門戶網(wǎng)站的BBS討論區(qū)帶來的流量已經(jīng)遠(yuǎn)遠(yuǎn)超過其門戶新聞帶來的流量。本系統(tǒng)是一個結(jié)構(gòu)簡單的BBS論壇系統(tǒng),該系統(tǒng)采用了MVC三層架構(gòu)模型,通過這種設(shè)計模型把界面展示、處理流程和業(yè)務(wù)邏輯分成不同的組建實現(xiàn),方便維護(hù)與重用。二 課程題目及需求分析 課程題目:技術(shù)論壇系統(tǒng)題目設(shè)計要求:要求實現(xiàn)一個簡單的技術(shù)論壇系統(tǒng)。涉及到的各類信息需要自行分析設(shè)計,要求實現(xiàn)的功能主要有:1)用戶注冊:錄
2、入用戶個人信息,獲得進(jìn)入論壇的權(quán)限,并賦予一定級別(級別可隨發(fā)帖次數(shù)提高)2)用戶登錄:已注冊用戶使用用戶名和密碼登錄,成功后進(jìn)入論壇;3)用戶發(fā)帖:已登錄用戶可以發(fā)帖;4)用戶回帖:已登錄用戶可以跟在其它人帖子后回復(fù);5)管理員功能:管理員可以對查看和刪除用戶信息和帖子信息,可以設(shè)置帖子是否可以回復(fù)。6)查找功能:用戶和管理員能夠根據(jù)帖子主題查找相關(guān)帖子;7)要求所有用戶先登錄后使用,根據(jù)用戶身份給予訪問不同頁面的權(quán)限。需求分析:對于一個簡單的論壇系統(tǒng)來說,主要包括討論區(qū)、帖子和回帖三部分:討論區(qū) 每個討論區(qū)對應(yīng)一個話題類別,用戶可以根據(jù)討論區(qū)的名字判斷討論區(qū)的內(nèi)容。帖子 用戶發(fā)表的帖子包含
3、標(biāo)題和內(nèi)容,標(biāo)題簡要說明帖子的內(nèi)容,內(nèi)容詳細(xì)的表述用戶需要發(fā)表的觀點(diǎn)和提出的問題回帖 對帖子的回復(fù),一般沒有標(biāo)題,只有內(nèi)容,用于對一個帖子進(jìn)行回復(fù)。本系統(tǒng)用戶主要分為普通用戶和管理員兩類,普通用戶在登錄后可以瀏覽討論區(qū)、發(fā)帖和回帖,管理員除了具有普通用戶的功能外還有刪除用戶信息和帖子信息、設(shè)置帖子是否可以回復(fù)等功能。 三 數(shù)據(jù)流圖及系統(tǒng)功能圖(一) 數(shù)據(jù)流圖 技術(shù)論壇系統(tǒng)管理員用戶 登錄信息 登錄信息 帖子信息 帖子、用戶信息 回帖信息 刪除、設(shè)置帖子信息 帖子、回帖信息 帖子、用戶信息 圖1 數(shù)據(jù)流圖(二) 系統(tǒng)功能圖 普通用戶注冊、登錄搜索查看帖子發(fā)表帖子回復(fù)帖子技術(shù)論壇系統(tǒng)管理員搜索查看
4、帖子刪除設(shè)置帖子刪除查看用戶 圖2 系統(tǒng)功能圖四 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫包括討論區(qū)forum表、帖子topic表、回帖reply表和用戶user表,表的設(shè)計如以下幾個圖所示forum表 (板塊id,名稱,描述) 表1 forum表 topic表(帖子id,板塊id,作者,標(biāo)題,內(nèi)容,發(fā)布時間,回帖數(shù),可回復(fù)標(biāo)志)表2 topic表 reply表(回帖id,帖子id,內(nèi)容,作者,回帖時間) 表3 reply表 user表(用戶id,用戶名,密碼,郵箱,級別,身份,發(fā)帖數(shù)) 表4 user表 五 程序設(shè)計及功能實現(xiàn)(一)普通用戶操作模塊本系統(tǒng)運(yùn)行后首先彈出首頁,如圖3所示,用戶只有登錄后才可以瀏覽論壇,
5、當(dāng)用戶沒有登錄而操作論壇時會彈出用戶登錄的界面,這里是用session來實現(xiàn)用戶的登錄認(rèn)證的,當(dāng)用戶成功登錄后,就可以瀏覽各個模塊的帖子,可以對帖子進(jìn)行回復(fù),還可以發(fā)表新的帖子,當(dāng)用戶需要快速找到某個帖子時可以對該帖子的主題進(jìn)行搜索。 圖3 論壇首頁1搜索帖子功能搜索帖子是根據(jù)用戶輸入的標(biāo)題來搜索相應(yīng)的帖子,這里是用一個表單來提交用戶的搜索要求,然后表單將搜索數(shù)據(jù)傳到后臺應(yīng)用程序進(jìn)行處理,搜索帖子的界面如圖4所示 圖4 用戶搜索界面搜索帖子的關(guān)鍵代碼String sql;conn con=new conn();ResultSet rs;String title=searchForm.getTi
6、tle().trim(); /獲取前臺表單傳來的title值System.out.print(title);String select=searchForm.getSelect(); /獲取前臺表單傳來的select值sql=select * from topic where title=+title+;System.out.print(sql);rs=con.executeQuery(sql);List list = new ArrayList();while (rs.next()Integer id=rs.getInt(id);String username = rs.getString(
7、username);String title1 = rs.getString(title);String time=rs.getTime(time).toString();Integer reply = rs.getInt(reply);Topic topic = new Topic();topic.setId(id);topic.setUsername(username);topic.setTitle(title);topic.setTime(time);topic.setReply(reply);list.add(topic);request.setAttribute(list, list
8、); /將list對象發(fā)送到前臺return mapping.findForward(result); /轉(zhuǎn)向前臺頁面2 回復(fù)帖子功能用戶對某個帖子進(jìn)行回復(fù)是通過一個回帖表單提交數(shù)據(jù)的,表單將數(shù)據(jù)傳到后臺應(yīng)用程序,應(yīng)用程序接收到數(shù)據(jù)后對數(shù)據(jù)庫經(jīng)行一系列操作然后返回回帖的頁面,回帖的界面如圖5所示圖5 回帖界面回帖的關(guān)鍵代碼topicid=request.getParameter(id); /獲取從前臺傳來的id值Integer tid=Integer.parseInt(topicid);content=request.getParameter(content);HttpSession sess
9、ion=request.getSession();Object o = session.getAttribute(uid);username = (String)o;SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd); /獲取系統(tǒng)日期Date date=new Date();String strDate=sdf.format(date);System.out.println(strDate);con=new conn(); ResultSet rsTmp = con.executeQuery( select max(id) as maxi
10、d from reply );if(rsTmp.next() id = rsTmp.getInt(maxid) + 1;rsTmp.close();sql = insert into reply values ( + id ;sql += ,+tid+,+ content+,+username+,+strDate+ );con.executeUpdate(sql);(二)管理員操作管理員除了具有普通用戶的功能外還可以對用戶和帖子信息進(jìn)行查看和刪除,還可以設(shè)置某個帖子是否可以回復(fù)設(shè)置帖子不可回復(fù)在設(shè)計帖子的數(shù)據(jù)庫時設(shè)計了一個flag標(biāo)志屬性來標(biāo)志帖子是否可以回復(fù),當(dāng)flag為0時帖子可以回復(fù),當(dāng)
11、flag為1時帖子不可以回復(fù)。用戶發(fā)表的帖子默認(rèn)情況下是可以回復(fù)的,管理員設(shè)置帖子不可以回復(fù)時就把flag的值置為1,這樣當(dāng)用戶瀏覽該帖子時回復(fù)帖子的表單就會隱藏,從而達(dá)到不可回復(fù)的功能。操作界面如圖6所示,隱藏表單的帖子界面如圖7所示。 圖6 管理員操作界面 圖7 不可回復(fù)界面關(guān)鍵代碼String sql;String id=request.getParameter(id);conn con=new conn();sql=update topic set flag=1 where id=+id;con.executeUpdate(sql);作者:時間:樓六 總結(jié) 本次課程設(shè)計是做一個技術(shù)論壇
12、系統(tǒng),我采用的是基于struts框架的MVC設(shè)計模式來設(shè)計完成題目的。運(yùn)用Struts框架對我來說是一個難點(diǎn),因為以前沒有學(xué)過Struts框架,對它一點(diǎn)都不了解,因此這次課設(shè)花了很多時間用在學(xué)習(xí)Struts框架上,后來通過老師的指點(diǎn)和同學(xué)的幫助,慢慢的理解了struts框架的原理和運(yùn)行機(jī)制,做課程設(shè)計也就慢慢上手了。我感覺運(yùn)用Struts框架最大的好處就在實現(xiàn)了數(shù)據(jù)操作和數(shù)據(jù)顯示的分離,jsp頁面只用來顯示顯示頁面,不參與數(shù)據(jù)的處理,這樣理清了設(shè)計思路,便于維護(hù)和代碼的重用性。這次實驗加深了我對MVC設(shè)計模式的理解。通過這次實驗我還掌握了網(wǎng)頁結(jié)構(gòu)化設(shè)計的方法,大大提高了工作效率。當(dāng)然在這次實驗中我也遇到了不少問題,例如如何控制用戶的權(quán)限認(rèn)證,即用戶直接在地址欄訪問后臺操作頁面而不通過登錄系統(tǒng),通過查資料和請教同學(xué),最終把這個問題解決??傊?,這次實驗加深了我對Web應(yīng)用開發(fā)的理解,我進(jìn)一步熟練了各種技術(shù)的在Web應(yīng)用開發(fā)中的使用,為我以后對Web應(yīng)用開發(fā)的學(xué)習(xí)和應(yīng)用打下了堅實的基礎(chǔ)。