JSP課程設(shè)計(jì)基于JSP技術(shù)開發(fā)的BBS論壇系統(tǒng)方案_第1頁
JSP課程設(shè)計(jì)基于JSP技術(shù)開發(fā)的BBS論壇系統(tǒng)方案_第2頁
JSP課程設(shè)計(jì)基于JSP技術(shù)開發(fā)的BBS論壇系統(tǒng)方案_第3頁
JSP課程設(shè)計(jì)基于JSP技術(shù)開發(fā)的BBS論壇系統(tǒng)方案_第4頁
JSP課程設(shè)計(jì)基于JSP技術(shù)開發(fā)的BBS論壇系統(tǒng)方案_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 . JSP程序設(shè)計(jì)-課程設(shè)計(jì)基于JSP技術(shù)開發(fā)的BBS論壇系統(tǒng)院 系:專業(yè)班級(jí):組 長:2010年 12 月 15 日摘 要當(dāng)今,隨著網(wǎng)絡(luò)的迅速發(fā)展,制作BBS論壇的技術(shù)和方法也越來越多。本文主要講述利用Java Web的相關(guān)技術(shù)來制作一個(gè)簡單論壇。通過實(shí)際制作,實(shí)現(xiàn)了BBS論壇系統(tǒng)應(yīng)有的一些基本功能,如:登陸功能,通過在登陸界面輸入用戶名和密碼來實(shí)現(xiàn)會(huì)員的登錄,用戶只有登錄成功了才能進(jìn)行一系列的操作;注冊(cè)功能,用戶首次登陸,需要先注冊(cè),注冊(cè)時(shí)需要用戶填寫個(gè)人信息;找回密碼功能,當(dāng)用戶忘記密碼時(shí)可以通過此功能找回密碼,找回密碼時(shí)需要用戶記得注冊(cè)時(shí)填寫的個(gè)人信息。除此之外,還有瀏覽帖子、發(fā)表帖

2、子、回復(fù)貼子以與刪除帖子等等功能。制作本論壇所用的前臺(tái)軟件是MyEclipse,后臺(tái)數(shù)據(jù)庫是MySQL,運(yùn)行時(shí)所用的服務(wù)器是Tomcat,綜合運(yùn)用了HTML、JSP以與JavaScript語言。關(guān)鍵詞:BBS 論壇; JSP 技術(shù); 登陸;注冊(cè); 找回密碼;瀏覽貼子; 發(fā)表帖子; 回復(fù)貼子; 刪除帖子目 錄一、概論1(一)、BBS歷史背景1(二)、BBS制作目的1(四)、BBS制作的局限性2二、相關(guān)軟件、技術(shù)介紹與開發(fā)環(huán)境的選擇2(一)、開發(fā)環(huán)境介紹2(二)、JDK(Java Development Kit)2(三)、MyEclipse6.5軟件的簡單介紹3(四)、MySQL數(shù)據(jù)庫介紹3(五)

3、、JSP(Java Server Pages)網(wǎng)頁設(shè)計(jì)技術(shù)介紹3(六)、Tomcat5.5服務(wù)器介紹3三、應(yīng)用需求分析3(一)、用戶登錄和注冊(cè)功能4(二)、用戶找回密碼功能4(三)、用戶帖子的瀏覽5(五)、用戶回復(fù)他人帖子6(六)、管理員對(duì)帖子的查看/發(fā)表/刪除功能6四、系統(tǒng)總體設(shè)計(jì)7(一)、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)7(二)、數(shù)據(jù)庫設(shè)計(jì)8五、系統(tǒng)詳細(xì)設(shè)計(jì)10(一)、建立數(shù)據(jù)庫與數(shù)據(jù)庫表10(二)、用戶登錄功能的實(shí)現(xiàn)11(三)、用戶發(fā)表新帖子頁面的制作1214 / 17一、概論當(dāng)前形勢(shì)下,BBS論壇種類繁多,通過BBS可隨時(shí)取得國際最新的軟件與信息,也可以通過BBS來和別人討論計(jì)算機(jī)軟件、硬件、Intern

4、et、多媒體、程序設(shè)計(jì)以與醫(yī)學(xué)等等各種有趣的話題,更可以利用BBS來刊登一些“征友”、“廉價(jià)轉(zhuǎn)讓”與“公司產(chǎn)品”等啟事。只要您擁有1臺(tái)計(jì)算機(jī)、1只調(diào)制解調(diào)器和1條線,就能夠進(jìn)入這個(gè)“超時(shí)代”的領(lǐng)域。(一)、BBS歷史背景BBS的英文全稱是Bulletin Board System,翻譯為中文就是“電子公告板”。BBS最早是用來公布股市價(jià)格等類信息的,當(dāng)時(shí)BBS連文件傳輸?shù)墓δ芏紱]有,而且只能在蘋果計(jì)算機(jī)上運(yùn)行。早期的BBS與一般街頭和校園的公告板性質(zhì)一樣,只不過是通過電腦來傳播或獲得消息而已。一直到個(gè)人計(jì)算機(jī)開始普與之后,有些人嘗試將蘋果計(jì)算機(jī)上的BBS轉(zhuǎn)移到個(gè)人計(jì)算機(jī)上,BBS才開始漸漸普與

5、開來。近些年來,由于愛好者們的努力,BBS的功能得到了很大的擴(kuò)充。(二)、BBS制作目的BBS論壇是一種比較好的交流平臺(tái),他能方便人們進(jìn)行即時(shí)在線交流,發(fā)表各種信息,實(shí)現(xiàn)網(wǎng)絡(luò)資源的共享。而且,也能促使人們敞開心扉去學(xué)習(xí)知識(shí)、追求進(jìn)步,以至于能更好的利用網(wǎng)絡(luò)資源。 (三)、BBS制作的可行性 隨著計(jì)算機(jī)軟件的迅速發(fā)展,BBS的界面效果越來越美觀,功能、作用和圍也得到了迅速擴(kuò)大。與此同時(shí),制作BBS論壇的方法和所用的軟件種類也越來越多了。而在這里,我將采用基于JSP網(wǎng)頁技術(shù)的方法進(jìn)行簡單的BBS論壇制作。我所用的開發(fā)軟件是MyEclipse6.5,它是一款可以做基礎(chǔ)Java項(xiàng)目開發(fā)的工具;JDK1

6、.6,當(dāng)前進(jìn)行Java開發(fā)的最新版本;數(shù)據(jù)庫是MySQL,它是一款當(dāng)前比較流行的進(jìn)行中小量數(shù)據(jù)開發(fā)的中小型數(shù)據(jù)庫;服務(wù)器是Tomcat5.5,它也是一款當(dāng)前比較流行的軟件,主要用于網(wǎng)絡(luò)服務(wù)器的開發(fā)。(四)、BBS制作的局限性 此次BBS論壇制作的界面效果比較粗糙,功能也不是很強(qiáng)大,但幸好一些基本的功能都還有,比如,用戶(或管理員)登陸,發(fā)表新的帖子,查看已存在的帖子,回復(fù)別人發(fā)表的帖子(也叫跟帖)以與管理員刪除垃圾帖子或著垃圾的跟帖等等。但是像一些高級(jí)功能,比如,搜尋或查找帖子的功能,上傳圖片或文件的功能,個(gè)人空間的功能等。由于本人所學(xué)知識(shí)以與能力地限制,并沒能將其實(shí)現(xiàn)。二、相關(guān)軟件、技術(shù)介紹

7、與開發(fā)環(huán)境的選擇(一)、開發(fā)環(huán)境介紹1、硬件環(huán)境與軟件環(huán)境要求服務(wù)器端硬件處理器:Intel P4或更好存:1G 或更大硬盤剩余空間:2G 或更大軟件Microsoft Windows XP或更高版本JDK1.60或更高版本MyEclipse6.0或更高版本MySQL5.0或更高版本Tomcat5.5或更高版本Microsoft IE6.0瀏覽器或更高版本客戶機(jī)端硬件一般聯(lián)網(wǎng)的計(jì)算機(jī)均可軟件Microsoft Windows XP 或更高版本Microsoft IE 6.0或更高版本2、制作工具JDK1.6用于Java程序的解釋執(zhí)行,MyEclipse6.5提供了一個(gè)良好的開發(fā)界面,MySQL

8、5.0用于數(shù)據(jù)庫的連接,Tomcat5.5 Web服務(wù)器用于運(yùn)行此項(xiàng)目。(二)、JDK(Java Development Kit)JDK(Java Development Kit)是Sun Microsystems針對(duì)Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK(Software development kit)。(三)、MyEclipse6.5軟件的簡單介紹MyEclipse 6.5集中了開源和商業(yè)軟件的開發(fā)支持的大多數(shù)框架,方便易用,功能強(qiáng)大,獲得了廣大開發(fā)人員的喜愛。它支持開發(fā)調(diào)試基于Spring, Hibernate,Struts, JSF,

9、JPA, E, Web Service 等 Java EE 技術(shù)的項(xiàng)目。(四)、MySQL數(shù)據(jù)庫介紹MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型為了降低總體擁有成本而選擇了MySQL作為數(shù)據(jù)庫。(五)、JSP(Java Server Pages)網(wǎng)頁設(shè)計(jì)技術(shù)介紹JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JS

10、P標(biāo)記(tag),從而形成JSP文件(*.jsp)。 (六)、Tomcat5.5服務(wù)器介紹Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器, Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。三、應(yīng)用需求分析作為一個(gè)BBS論壇,它應(yīng)該具有BBS所有的一些基本功能,包括:用戶登陸功能,用戶取回密碼功能,用戶瀏覽帖子的功能以與用戶發(fā)表、回復(fù)、修改和刪除帖子的功能等。接下來,我將詳細(xì)闡述一下這些功能。(一)、用戶登錄和注冊(cè)功能進(jìn)入登錄頁面后,對(duì)于第一次登陸的用戶來說,首先需要注冊(cè),單擊“新用戶注冊(cè)”按鈕即可

11、進(jìn)入注冊(cè)界面,注冊(cè)完成后返回登錄界面。然后,在對(duì)應(yīng)的地方分別輸入用戶名和密碼,點(diǎn)擊“登錄”按鈕,系統(tǒng)即將用戶名和密碼發(fā)送到網(wǎng)絡(luò)服務(wù)器上,與保存在服務(wù)器數(shù)據(jù)庫中的信息進(jìn)行核對(duì)。若核對(duì)正確,則進(jìn)入帖子瀏覽的界面,若不正確,則重新返回登錄界面。注冊(cè)界面如下所示:圖4-1用戶登錄界面(二)、用戶找回密碼功能 在有些時(shí)候,我們可能會(huì)忘記登錄密碼,這時(shí)就用到了密碼找回功能,通過正確的回答當(dāng)初注冊(cè)時(shí)的一些信息即可取回密碼。圖4-2 密碼找回(三)、用戶帖子的瀏覽 當(dāng)用戶登錄成功后便進(jìn)入該頁面,在該頁面可以瀏覽他人已經(jīng)發(fā)表的主題帖子,圖4-3 帖子瀏覽在主題頁面中主要有兩部分組成,一是用戶的個(gè)人信息,再就是他

12、人已經(jīng)發(fā)表的主題帖子,每個(gè)帖子都包含了一些簡單信息:主題、作者和時(shí)間。(四)、用戶帖子的發(fā)布/修改/刪除功能登陸成功進(jìn)入主題頁面后,點(diǎn)擊“發(fā)表新的主題文章”按鈕后,便可進(jìn)入發(fā)表帖子的界面。在該頁面中填寫完信息,點(diǎn)擊“發(fā)送新的主題”即可。圖4-4發(fā)表新話題(五)、用戶回復(fù)他人帖子打開他人的帖子,點(diǎn)擊“我要回復(fù)”便可對(duì)該貼進(jìn)行回復(fù),如要想對(duì)其他回復(fù)此貼的人進(jìn)行回復(fù),可以點(diǎn)擊回復(fù)(如圖4-6)對(duì)其進(jìn)行回復(fù)。圖4-6 帖子回復(fù)(六)、管理員對(duì)帖子的查看/發(fā)表/刪除功能1、管理員查看或發(fā)表帖子管理員查看或發(fā)表帖子與普通用戶的一樣。2、管理員刪除帖子管理員刪除帖子與普通用戶的區(qū)別在于,他可以刪除任何人發(fā)表

13、的貼子,另外他還有一項(xiàng)特權(quán),就是可以刪除任何人回復(fù)的垃圾帖子。四、系統(tǒng)總體設(shè)計(jì)(一)、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)本BBS論壇系統(tǒng)共分為三大功能模塊:(1) 登陸管理功能系統(tǒng);(2) 注冊(cè)功能系統(tǒng);(3) 找回密碼功能系統(tǒng)。登陸管理功能系統(tǒng),又包括四個(gè)子模塊:單純的用戶登錄模塊,用戶發(fā)表帖子模塊,用戶回復(fù)他人帖子模塊和用戶刪除自己所發(fā)表的帖子模塊。1、 各個(gè)頁面的功能與示意圖有兩個(gè)頁面用于基本功能的實(shí)現(xiàn),被其它頁面所調(diào)用:頁面名稱主要功能用于實(shí)現(xiàn)基本功能Opendata.jsp打開數(shù)據(jù)庫Convert.jsp用于字符的轉(zhuǎn)換其余的頁面如下表所示:各個(gè)模塊頁面名稱頁面功能開始登陸的界面Login.html系統(tǒng)啟動(dòng)

14、時(shí)的首頁登錄管理功能系統(tǒng)Enter.jsp用于判斷用戶名和密碼是否正確MainForm.jsp登陸成功后轉(zhuǎn)入該頁面Discuss.jsp瀏覽主題帖子的頁面,在這可以查看各類帖子Person.jsp顯示個(gè)人信息的頁面NewTitle.jsp發(fā)表新的主題帖子的頁面SaveNewTitle.jsp將新發(fā)表的帖子存入數(shù)據(jù)庫表Discuss中Detail.jsp用于顯示帖子的容與回復(fù)該帖的容SaveRevert.jsp將回復(fù)容存入數(shù)據(jù)庫表Reply中Delete.jsp用于刪除帖子注冊(cè)功能系統(tǒng)Register.jsp該界面用于新用戶注冊(cè)SaveRegister.jsp保存新用戶注冊(cè)信息到數(shù)據(jù)庫表Stud

15、ent中找回密碼功能系統(tǒng)GetPassword.jsp用于用戶找回密碼(二)、數(shù)據(jù)庫設(shè)計(jì)1、用戶信息表Student表名:Student用戶信息表Student包括八個(gè)字段:即,ID(用戶的標(biāo)識(shí)符)、USERNAME(用戶名)、PASSWORD(用戶密碼)、SEX(性別)、AGE(年齡)、BIRTH(生日)、TELEPHONE(聯(lián)系)、EMAIL(電子)等。STUDENT表的屬性如下圖所示: STUDENT表的容如下圖所示:2、存儲(chǔ)帖子所用的信息表DISCUSS表名:DISCUSS信息表DISCUSS包括七個(gè)字段:即,NAME(發(fā)帖人的昵稱)、EMAIL(電子)、SUBJECT(帖子的主題)、

16、CONTENT(帖子的容)、TIME(發(fā)帖的時(shí)間)、USERNAME(用戶名)、ID(帖子的標(biāo)識(shí))等。表的屬性: 表的容:3、存儲(chǔ)回復(fù)帖子的信息表REPLY表名:REPLY信息表REPLY包括五個(gè)字段:即,NAME(回帖人的昵稱)、CONTENT(回帖的容)、TIME(回帖的時(shí)間)、REPLY(所回復(fù)的主貼的標(biāo)識(shí)符)、ID(回復(fù)貼的標(biāo)識(shí)符)等。表的屬性: 表的容:五、系統(tǒng)詳細(xì)設(shè)計(jì)(一)、建立數(shù)據(jù)庫與數(shù)據(jù)庫表建立一個(gè)數(shù)據(jù)庫Test和三個(gè)數(shù)據(jù)庫表(STUDENT、DISCUSS和REPLY)。首先在MyEclipse6.5軟件里配置MySQL5.0,配置完成后在MyEclipse界面里建立名為“T

17、est”的數(shù)據(jù)庫,然后再建立三個(gè)數(shù)據(jù)庫表(STUDENT、DISCUSS和REPLY)。創(chuàng)建表student:stmt.executeUpdate("create table student(id int not null auto_increment," +"username varchar(20) unique," +"password varchar(20) not null," +"sex varchar(8) not null,"+"age varchar(4) ,"+"bi

18、rth varchar(20) not null,"+"telephone varchar(12),"+"email varchar(40) not null," +"primary key (id)");創(chuàng)建表discuss:stmt.executeUpdate("create table discuss(name char(20) not null,"+"email char(40) not null,"+"subject char(60) not null,"

19、+"content text not null,"+"time char(40),"+"username char(20),"+"id int not null auto_increment,primary key (id)");創(chuàng)建表reply:stmt.executeUpdate("create table reply(name char(20) not null,"+"content text not null,"+"time char(40),reply i

20、nt,"+"id int not null auto_increment,"+"primary key (id)");(二)、用戶登錄功能的實(shí)現(xiàn)1、 登陸界面的制作(1)JavaScript標(biāo)記語言判斷輸入的用戶名和密碼是否為空:<script type=text/javascript>/ 驗(yàn)證輸入不為空的腳本代碼 function checkForm(form) if(form.username.value = "") alert("用戶名不能為空!");form.username.focu

21、s();return false;if(form.password.value = "") alert("密碼不能為空!");form.password.focus();return false;return true;</script>(2)登陸界面的制作:<table border=0><form action="enter.jsp" method="post" onsubmit="return checkForm(this);"><tr>&l

22、t;td><h2>用戶名:</td><td><h3><input type="text" name="username"></td></tr><tr><td><h2>密碼 :</td><td><h3><input type="password" name="password"></td></tr><tr>&l

23、t;td><input type="submit" value="登錄" name="submit1" ></td><td><input type="reset" value="重置" name="reset1"></td></tr></form><tr><td><form action="getPassword.jsp" method=

24、post ><input type="submit" value="取回密碼" name="getpass"></form></td><td><form action="register.jsp" method=post ><input type="submit" value="新用戶注冊(cè)" name="regist"></form></td></t

25、r></table>2、 登陸功能的實(shí)現(xiàn)通過Login.html界面?zhèn)鬟f參數(shù)username 和 password 給Enter.jsp界面,然后查詢數(shù)據(jù)庫,判斷用戶名和密碼是否正確。若判斷正確則為用戶建立一個(gè)session,并進(jìn)入了用戶主界面。<%String username = request.getParameter("username");/參數(shù)傳遞,用戶名String password = request.getParameter("password");/參數(shù)傳遞,密碼PreparedStatement pstmt

26、= null;/ 數(shù)據(jù)庫表達(dá)式sql = "select * from Student where username = ? and password= ?"/ SQL語句pstmt = conn.prepareStatement(sql);pstmt.setString(1, username);pstmt.setString(2, password);rs = pstmt.executeQuery();if (rs.next() /request.getSession(true);/創(chuàng)建session/保存登錄用戶到session中session.putValue(&q

27、uot;username", username);session.putValue("password", password);session.putValue("userIP", request.getRemoteAddr();session.putValue("enter", "true");/登錄成功主題頁面response.sendRedirect("MainForm.jsp"); elseresponse.sendRedirect("login.html"

28、);/登陸失敗轉(zhuǎn)向登錄頁面%>(三)、用戶發(fā)表新帖子頁面的制作 1、NewTitle.jsp頁面發(fā)表新的主題文章 此界面提供用戶輸入功能,輸入完成后“發(fā)表心得主題”按鈕便可提交數(shù)據(jù)給SaveNewTitle.jsp頁面:<form action=saveNewTitle.jsp?pageNO=1 method=post onsubmit="return checkForm(this);"> <table border=2> <tr bgcolor=yellow> <td><pre><center>

29、</td><td><input type=text size=20 name=name></td> </tr> <tr bgcolor=yellow> <td><pre><center>E-mail</td><td><input type=text size=40 name=email></td> </tr> <tr bgcolor=yellow> <td><pre><center>

30、;主題</td><td><input type=text size=60 name=subject></td> </tr> <tr valign=top bgcolor=yellow> <td><pre><center>容</td><td><textarea rows=10 cols=60 name=content></textarea></td> </tr> <tr align=center> <

31、td colspan=2><input type=submit value=發(fā)送新的主題 name=send ><input type=reset value=清除重寫></td> </tr> </table> <hr> <a href=discuss.jsp?pageNO=1>返回主頁</a></form>2、SaveNewTitle.jsp頁面用于保存由NewTitle.jsp頁面?zhèn)鱽淼臄?shù)據(jù)信息首先將傳遞來的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,然后將其插入數(shù)據(jù)庫Discuss中:<%Strin

32、g name = request.getParameter("name");String email = request.getParameter("email");String subject = request.getParameter("subject");String content = request.getParameter("content");int year, month, day, hour, minute, second;String time;GregorianCalendar calendar;calendar = new GregorianCalendar();year = calendar.get(Calendar.YEAR);month = calendar.get(Calendar.MONTH) + 1;day = calendar.get(Calendar.DAY_OF_MONTH);hour = calendar.get(Calendar.HOUR_OF_DAY);minute = calendar.get(Calendar.MINUTE);second = calendar.get(Calendar.SECO

溫馨提示

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

評(píng)論

0/150

提交評(píng)論