課程設(shè)計基于JSP的留言板課程設(shè)計_第1頁
課程設(shè)計基于JSP的留言板課程設(shè)計_第2頁
課程設(shè)計基于JSP的留言板課程設(shè)計_第3頁
課程設(shè)計基于JSP的留言板課程設(shè)計_第4頁
課程設(shè)計基于JSP的留言板課程設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 jsp在水一方留言簿設(shè)計報告一 需求分析隨著互聯(lián)網(wǎng)的迅猛的發(fā)展,網(wǎng)站給我們帶來不少的便利,于此同時,論壇基本是每個網(wǎng)站必有的功能,為用戶之間的交流提供的很好的平臺。我通過仔細的分析和規(guī)劃,本論壇有如下功能:用戶注冊,登錄,用戶信息修改,簽寫留言,留言查看,回復(fù)留言和管理員的普通維護功能等。 這些功能的具體描述如下:1)用戶注冊模塊:用戶可已成為本論壇的會員,通過表單把用戶的相關(guān)信息提交給數(shù)據(jù)庫。2)登錄模塊:基本是每個系統(tǒng)必備的模塊,本論壇的登錄的模塊分為兩個小模塊:普通用戶登錄,另一個是管理員登錄。3)簽寫留言模塊:這是論壇的主要功能之一,用戶把自己感興趣的話題發(fā)表到論壇上,與網(wǎng)上的會員進

2、行探討。4)查看留言模塊:這也是論壇的主要功能之一,把用戶發(fā)表的留言逐條,安順序顯示出來。5)回復(fù)留言模塊:這也是論壇的主要功能之一,用戶對別的用戶發(fā)表的留言進行回復(fù)。6)普通的維護模塊:這是給管理員的功能,該功能對那些危害社會風(fēng)氣的留言刪除。7)用戶信息修改模塊:用戶能對自己的信息進行修改。 二 分析和設(shè)計(頁面和數(shù)據(jù)庫)設(shè)計網(wǎng)站論壇時,首先應(yīng)該區(qū)別是普通用戶登錄還是管理員登錄。如果是普通用戶登錄,那么該用戶只有查看和回復(fù)留言的權(quán)限。如果是管理員登錄,則除了具有查看和回復(fù)權(quán)限外,還用具有管理論壇的權(quán)限。在用戶發(fā)表留言后,將顯示該用戶的用戶名、性別、留言內(nèi)容和留言時間等內(nèi)容。如果在某個留言有回

3、復(fù)內(nèi)容,則顯示出是誰恢復(fù)了該篇留言和回復(fù)的內(nèi)容。另外還能在頁面中顯示當(dāng)前的系統(tǒng)的時間和訪問權(quán)限。 數(shù)據(jù)庫設(shè)計通過以上的分析:數(shù)據(jù)庫應(yīng)有四個表,tb_user、td_topic、tb_reply、tb_counter。由于是個小型的論壇,選擇aeess數(shù)據(jù)庫。具體各表的設(shè)計如下:1 分析得知tb_user表功能的記錄用戶的信息,具有如下字段:id、username、pwd、birthday、sex、oicq、tel、homepage、address、postcode、email、status。 2 分析得知tb_topic表功能是存放用戶發(fā)表的留言,具有如下字段:id、anthor、face、c

4、ontent、datetime。 3 分析得知tb_reply表功能是用于存放用戶對每條留言所回復(fù)的信息,具有如下字段:id、tpoicid、content、replyuser。 4 通過分析得知:tb_counter是記錄網(wǎng)站每天的訪問次數(shù),有如下兩個字段:accesstime、hit。 5.通過分析,在顯示留言的是時候,要用到tb_user和tb_topic兩張表,所以要設(shè)計一個具有這兩張表的一個視圖:首先建立關(guān)系如下: 視圖如下: 頁面設(shè)計1 網(wǎng)站的流程體如下: 2 各頁面功能實現(xiàn)說明:1) 系統(tǒng)提供的服務(wù)(top.jsp) 程序的主要實現(xiàn)根據(jù)等級設(shè)置用戶權(quán)限,是用腳本言語(javasc

5、ript)來顯示系統(tǒng)的當(dāng)前時間,并通過來實現(xiàn)滾動的顯示,主要代碼如下:function clockon()var date=new date(); var yy=date.getyear(); var mm=date.getmonth()+1; var dd=date.getdate(); var kk=date.getday(); var hh=date.gethours(); var mm=date.getminutes(); var ss=date.getseconds(); if (mm10) mm=0+mm; if (dd10) dd=0+dd; if (hh10) hh=0+hh;

6、 if (mm10) mm=0+mm; if (ss10) ss=0+ss; switch (kk) case 1: kk=星期一; break; case 2: kk=星期二; break; case 3: kk=星期三; break; case 4: kk=星期四; break; case 5: kk=星期五; break; case 6: kk=星期六; break; case 0: kk=星期日; break; var str_date= 系統(tǒng)公告:+yy+年+mm+月+dd+日 +kk+ +hh+:+mm+:+ss; if(document.all) div_date.innerht

7、ml=str_date; var timer=settimeout(clockon(),200); 簽寫留言 修改資料 用戶注冊 注銷用戶 用戶登錄 查看留言 刷新頁面 注銷版主登錄 版主登錄 系統(tǒng)公告: 您好!歡迎訪問“在水一方”留言簿!已經(jīng)有 人訪問過本網(wǎng)站! 2) 查看留言(index1.jsp)將所有的;留言記錄通過循環(huán)顯示在客戶端,并將某條留言的回復(fù)記錄和回復(fù)者的姓名也顯示出來。如果是登錄用戶的權(quán)限為普通用戶,那么該用戶的權(quán)限極為回復(fù)留言。如果是管理員,那么該用戶的權(quán)限就是回復(fù)和刪除留言。由于涉及到多條記錄的顯示,我們用了分頁顯示的方法出來。定義每個頁面顯示的記錄,通過results

8、et對象計算出總的記錄數(shù),通過這兩個數(shù)據(jù)計算總的頁數(shù)。主要代碼如下: -%boolean tj=rs_user.next();string str=(string)request.getparameter(page);if(str=null) str=0;int pagesize=5; /每頁顯示的數(shù)據(jù)條數(shù)rs.last();int recordcount=rs.getrow(); /獲得記錄的總條數(shù)int maxpage=0;maxpage=(recordcount%pagesize=0)?(recordcount/pagesize):(recordcount/pagesize+1); /得

9、到的是總頁數(shù) int page=integer.parseint(str); /當(dāng)前時第幾頁if(pagerecordcount) page=maxpage; rs.absolute(page-1)*pagesize+1);for(int i=1;i () 生 表情: img src=images/email.gif alt=email: width=16 height=16 img src=images/home-menu.gif alt=個人主頁: width=26 height=20 img src=images/atusers.gif alt=oicq號碼: width=14 heig

10、ht=16 img src=images/datetime.gif alt= width=18 height=18 留言時間: % out.println(回復(fù) ); if(tj)out.println(刪除);%   回復(fù)   當(dāng)前頁數(shù):/  1)% 第一頁a href=index1.jsp?page=上一頁 % if(page a href=index1.jsp?page=下一頁a href=index1.jsp?page=最后一頁  3) 用戶登陸(login_user_deal.jsp)在top.jsp中設(shè)計的是當(dāng)用戶單擊登錄

11、連接的時候,彈出一個小的對話框來提供用戶的登錄功能,所以在在個頁面中需要刷新用戶登錄后的頁面,用到了腳本語言(javascript)中的一段代碼:open.location.reload().管理員登錄(login_manager_deal.jsp)與此頁面的代碼相似,下面就不再寫了。主要的代碼如下: opener.location.reload(); window.close(); alert(您輸入的密碼不正確,請重新輸入!); history.back(); alert(您輸入的用戶名不正確,請重新輸入!);history.back();4) 留言回復(fù)(reply_deal.jsp)回復(fù)

12、留言的關(guān)鍵如何準(zhǔn)確地將回復(fù)內(nèi)容和留言關(guān)聯(lián)起來。本例通過獲得留言查看(index1.jsp)頁面中的留言回復(fù)連接所傳遞過來的參數(shù)topictd(留言記錄id),來完成回復(fù)功能。添加留言(topic_add_deal.jsp)于此相似,在次就不在介紹。主要程序代碼如下:回復(fù)信息 0) string sql=insert into tb_reply(topicid,content,replyuser) values(+topicid+,+content+,+replyuser+); int ret=0; ret=stmt.executeupdate(sql); if(ret!=0) out.prin

13、tln(alert(回復(fù)信息成功!);window.location.href=index1.jsp;); else out.println(alert(回復(fù)信息失?。?;window.location.href=index1.jsp;); else response.sendredirect(index1.jsp);%5) 修改資料(modify_deal.jsp)用戶登錄后,如果想修改除了用戶名以外的資料時,單擊相應(yīng)的連接進入修改資料頁面進行操作。主要代碼如下: !doctype html public -/w3c/dtd html 4.01 transitional/en 0 ) str

14、ing pwd=getstr(request.getparameter(pwd1); string birthday=request.getparameter(birthday); string sex=getstr(request.getparameter(sex); string oicq=getstr(request.getparameter(oicq); string tel=getstr(request.getparameter(tel); string homepage=getstr(request.getparameter(homepage); string address=ge

15、tstr(request.getparameter(address); string postcode=request.getparameter(postcode); string email=getstr(request.getparameter(email); int ret=0; string sql=update tb_user set pwd=+pwd+,birthday=+birthday+,sex=+sex+,oicq=+oicq+,tel=+tel+,homepage=+homepage+,address=+address+,postcode=+postcode+,email=

16、+email+ where username=+username+; ret=stmt.executeupdate(sql); if(ret!=0) out.println(alert(資料修改成功!);window.location.href=index1.jsp;); else out.println(alert(資料修改失敗!);window.location.href=modify.jsp;); else response.sendredirect(modify.jsp);% 6) 新用戶注冊(reg_ok.jsp)用戶注冊時應(yīng)先判斷用戶的數(shù)據(jù)是否正確。比如:兩次輸入的密碼是否一致,對

17、必填的字段是否為空等要加以限制。這些可以通過jsp所創(chuàng)建的靜態(tài)頁面進行判斷。這里主要是判斷新用戶注冊的用戶名是否已經(jīng)被占用,如果沒有就將用戶所填寫的數(shù)據(jù)添加到數(shù)據(jù)庫中,如果被占用則提示用戶重新填寫。主要的代碼如下:% request.setcharacterencoding(gb2312); string username=request.getparameter(username); string pwd=request.getparameter(pwd1); string birthday=request.getparameter(birthday); string sex=request

18、.getparameter(sex); string oicq=request.getparameter(oicq); string tel=request.getparameter(tel); string homepage=request.getparameter(homepage); string address=request.getparameter(address); string postcode=request.getparameter(postcode); string email=request.getparameter(email); resultset rs=stmt.

19、executequery(select * from tb_user where username=+username+); if(rs.next() out.println(alert(該用戶名已經(jīng)存在,請重新注冊!);window.location.href=reg.jsp;); else string sql=insert into tb_user(username,pwd,birthday,sex,oicq,tel,homepage,address,postcode,email,status) values(+username+,+pwd+,+birthday+,+sex+,+oicq

20、+,+tel+,+homepage+,+address+,+postcode+,+email+,用戶); int ret=0; ret=stmt.executeupdate(sql); if (ret!=0) out.println(alert(用戶注冊成功!);window.location.href=index1.jsp;); else out.println(alert(用戶注冊失?。?;window.location.href=reg.jsp;); %7) 刪除留言(del.jsp)當(dāng)管理員登錄后,在查看(index1.jsp)界面中會多出一個鏈接刪除。刪除留言同回復(fù)留言一樣,關(guān)鍵就是

21、準(zhǔn)確地獲的所需要刪除留言記錄的id。這里同樣使用的是index.jsp頁面中刪除這個鎖鏈所傳遞過來的參數(shù)(topicid),主要的代碼如下:- % var con; con=confirm(您真的要刪除該主題嗎?); if(con!=true) window.location.href=index1.jsp; % int ret=0; ret=stmt.executeupdate(sql); if (ret!=0) out.println(alert(留言信息刪除成功!);window.location.href=index1.jsp;); else out.println(alert(留言信息刪除失?。?;window.location.href=index1.jsp;); %8) 這段代碼比較簡單,只要將session對象中存儲的值清空即可。主要的代碼如下: function my

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論