




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
本科生課程實習課程名稱Web開發(fā)技術課程實習課程編號j1620108學號學生姓名所在專業(yè)計算機科學與技術所在班級指導教師成績教師簽字課程實習時間:2012年5月14日 至 5月18日評語:目 錄1、開發(fā)背景22、需求分析23、系統(tǒng)設計23.1、系統(tǒng)目標23.2、系統(tǒng)功能結(jié)構(gòu)23.3、系統(tǒng)瀏覽33.4、業(yè)務流程圖73.5、程序運行環(huán)境74、數(shù)據(jù)庫設計74.1、數(shù)據(jù)庫概要說明74.2、數(shù)據(jù)庫概念設計74.3、數(shù)據(jù)庫邏輯結(jié)構(gòu)設計104.4、文件夾組織結(jié)構(gòu)115、公共類設計125.1、數(shù)據(jù)庫公共類125.2、編碼轉(zhuǎn)換公共類146、登錄模塊146.1、登錄模塊概述146.2、登錄模塊技術分析157、注冊模塊157.1、注冊模塊概述157.2、注冊模塊的實現(xiàn)158、論壇的主頁面設計178.1、論壇主頁面概述178.2、論壇主頁面的實現(xiàn)189、主題顯示模塊209.1、主題顯示模塊概述209.2、主題顯示模塊的設計2010、主題內(nèi)容顯示與回復內(nèi)容顯示2210.1、設計概念2210.2、主題內(nèi)容顯示和回復內(nèi)容顯示設計過程2211、主題回復2311.1、主題回復模塊概述2311.2、主題回復模塊的設計2412、發(fā)表新主題2412.1、發(fā)表新主題模塊概述2412.2、新主題模塊設計2513、后臺設計2613.1、后臺模塊的概述2613.2、后臺模塊的設計2614、總結(jié)281、開發(fā)背景 在當今網(wǎng)絡的時代,人與人之間的交流從原來的面對面交流,慢慢地借助于現(xiàn)代計算機軟件技術和網(wǎng)絡技術演變成一種遠程的,存在于網(wǎng)絡上的交流,這種遠程交流其中一種方式是通過使用BBS論壇進行的,有了這樣的交流,人與人之間的知識文化就可以很快地進行傳播2、需求分析BBS系統(tǒng)主要的功能是討論各種話題的交流中心。需要有各種不同話題的板塊。需要為用戶分等級,版主(擁有刪除該板塊中帖子的能力)、普通用戶(擁有發(fā)帖和瀏覽不同板塊的帖子的功能)、管理員(擁有新建板塊,刪除板塊和刪除用戶等一些列后臺管理功能)3、系統(tǒng)設計3.1、系統(tǒng)目標根據(jù)需求分析的要求,制定了BBS系統(tǒng)目標如下:1、 系統(tǒng)界面友好、美觀2、 劃分用戶級別,將不同的權(quán)限劃分給不同的人群3、 合理管理論壇相關信息4、 易于維護和擴展5、 系統(tǒng)運行穩(wěn)定可靠3.2、系統(tǒng)功能結(jié)構(gòu)本BBS系統(tǒng)是一個典型的Java Web程序,由系統(tǒng)的前臺和后臺管理兩部分組成1、 系統(tǒng)前臺系統(tǒng)前臺模塊提供給所有用戶使用,用戶包括注冊用戶和普通游客,兩者所擁有的功能不同。系統(tǒng)前臺主要包括用戶登錄、用戶注冊、發(fā)表主題、論壇瀏覽、主題瀏覽等功能模塊圖3.2.12、 系統(tǒng)后臺后臺管理主要由管理員使用,可對論壇中相關信息進行管理維護。普通用戶無權(quán)使用。后臺管理功能主要包括用戶管理、板塊管理、帖子管理、回復管理等。圖、系統(tǒng)瀏覽BBS論壇主頁,主要內(nèi)容是導航條、用戶登錄、用戶注冊、板塊信息。用戶可以通過論壇主頁獲得相應的信息。圖3.3.1(論壇主頁)用戶登錄界面在主頁面的上方(用戶可以通過登錄界面登錄論壇,登錄論壇后可以發(fā)帖,否則只能瀏覽帖子內(nèi)容,不能回復和發(fā)帖)圖3.3.2(用戶登錄界面)圖3.3.3(登錄后的界面)游客通過用戶注冊頁面注冊為論壇用戶圖3.3.4(注冊頁面)板塊里的主題(帖子)圖3.3.5(板塊主題)主題內(nèi)容和回復信息圖3.3.6快速回復,在每個主題的最下方圖3.3.7后臺管理頁面(管理板塊信息、用戶信息、主題信息)圖、業(yè)務流程圖3.5、程序運行環(huán)境1、系統(tǒng)開發(fā)平臺:MyEclipse92、系統(tǒng)開發(fā)語言:JSP3、數(shù)據(jù)庫管理系統(tǒng)軟件:Microsoft SQL Server 20054、運行環(huán)境:Windows 74、數(shù)據(jù)庫設計在開發(fā)應用程序時,對數(shù)據(jù)庫的操作是必不可少的,數(shù)據(jù)庫設計是根據(jù)程序的需求及其實現(xiàn)功能所制定的,數(shù)據(jù)庫設計的合理性將直接影響到程序的開發(fā)過程。 4.1、數(shù)據(jù)庫概要說明本系統(tǒng)采用SQL Server 2005數(shù)據(jù)庫,相對于Oracle等大型數(shù)據(jù)庫來講,SQL Server2005更加適合中小型系統(tǒng),再者由于對SQL Server2005比較熟悉,因此選用了SQL Server2005作為數(shù)據(jù)庫軟件。4.2、數(shù)據(jù)庫概念設計根據(jù)本系統(tǒng)的需求分析、流程設計及功能結(jié)構(gòu)的確定,每個功能模塊可以抽象出一個或多個實體對象,例如用戶、論壇版塊、主題、回復主題等實體對象。這些實體對象彼此相互聯(lián)系,并且最終創(chuàng)建成數(shù)據(jù)庫表結(jié)構(gòu)。1、 用戶實體對象用戶實體包括用戶編號、用戶名、用戶等級、用戶頭像等用戶相關屬性。用戶編號是識別用戶實體的唯一編號,也就是數(shù)據(jù)表的主鍵,它的數(shù)據(jù)類型為int型,并具有自增的特性;用戶級別屬性是標明用戶在本系統(tǒng)中的功能權(quán)限;其他屬性都是描述用戶相關信息的屬性。圖4.2.12、 論壇版塊實體對象論壇版塊實體對象包括論壇版塊編號、論壇名稱、版主、創(chuàng)建時間等相關屬性。版塊實體對象中的板塊編號屬性與用戶實體對象中的用戶編號屬性類型相同。都是具有自增的特性,板塊實體的其他對象都是描述板塊的相關信息的屬性。圖4.2.23、 主題實體對象 主題實體包括主題編號、主題標題、主題內(nèi)容、主題作者、提價時間、論壇板塊編號(外鍵)、論壇板塊名稱(外鍵)、人氣等相關屬性。主題編號屬性類型為int型,并具有自增特性;論壇板塊編號標明此主題發(fā)表在哪個論壇板塊中,人氣屬性用來記錄主題的被訪問信息。圖4.2.34、 回復主題實體對象回復主題實體包括回復編號、回復標題、回復內(nèi)容、回復時間、回復作者、主題編號、主題標題等相關回復屬性?;貜途幪枌傩灶愋蜑閕nt型,并具有自增特性。主體編號和主題標題是外鍵。圖4.2.45、 各個表之間的關系圖、數(shù)據(jù)庫邏輯結(jié)構(gòu)設計根據(jù)上面設計好的E-R圖,可以在數(shù)據(jù)庫中創(chuàng)建相應的數(shù)據(jù)表,BBS系統(tǒng)中各數(shù)據(jù)表的結(jié)構(gòu)如下:1、 tb_user(用戶表)表tb_user用于保存注冊用戶的信息用戶表(tb_user)字段名數(shù)據(jù)類型主鍵描述usernamevarchar(20)否用戶名passwordvarchar(20)否用戶密碼sexvarchar(20)否性別emailvarchar(50)否郵箱qqvarchar(20)否qq號signaturevarchar(300)否個性簽名gradevarchar(20)否用戶等級lxdzvarchar(50)否聯(lián)系地址txvarchar(50)否頭像grzyvarchar(50)否個人主頁realnamevarchar(30)否真名idint是用戶編號圖4.3.12、 tb_forum(板塊表)表tb_forum用于保存論壇板塊信息版塊表(tb_forum)字段名數(shù)據(jù)類型主鍵描述idint是版塊號forumnamevarchar(20)否版塊名managervarchar(100)否版塊管理員createtimedatetime否版塊創(chuàng)建時間圖4.3.23、 tb_topic(主題表)表tb_topic保存主題信息,其中forumid為板塊號,通過檢索板塊號,可以獲得該板塊下相應的主題。因此版塊號為外鍵。主題表(tb_topic)字段名數(shù)據(jù)類型主鍵描述idint是主題號contenttext否主題內(nèi)容authorvarchar(20)否作者submittimedatetime否主題提交時間forumidint否所屬版塊號titlevarchar(300)否題目xqvarchar(30)否心情rqint否人氣forumnamevarchar(20)否所屬版塊名圖4.3.34、 tb_response(回復表)表tb_response用于保存回復信息,其中topicid為主題號,通過檢索主題號可以獲得該主題相對應的回復信息,主題好為外鍵回復表(tb_response)字段名數(shù)據(jù)類型主鍵描述idInt是回復編號titlevarchar(300)否題目contenttext否內(nèi)容authorvarchar(20)否作者submittimetimestamp否提交時間topicidint否主題號topicnamevarchar(100)否主題名xqvarchar(20)否心情圖、文件夾組織結(jié)構(gòu)每個項目都會有相應的文件夾組織結(jié)構(gòu)。當項目文件過多時,會劃分相應的包來存放文件。其中javabean包放javabean,servlet包放servlet,tag包放自定義標簽,util放一些通用工具方法,如數(shù)據(jù)庫連接、編碼轉(zhuǎn)換等。圖4.4.15、公共類設計 在開放應用程序時,可以將數(shù)據(jù)庫等相關操作封裝在自定義類中,以便于在開發(fā)程序時調(diào)用,這樣,可以提高代碼的重用性。本系統(tǒng)創(chuàng)建了DB類、HandleString類等公共類5.1、數(shù)據(jù)庫公共類本系統(tǒng)采用SQL Server2005數(shù)據(jù)庫,系統(tǒng)通過數(shù)據(jù)源來連接數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫時應該在系統(tǒng)上創(chuàng)建數(shù)據(jù)源(創(chuàng)建數(shù)據(jù)源的方法詳見百度)。DB類為數(shù)據(jù)庫類,它里面封裝了數(shù)據(jù)庫操作的常用方法、如數(shù)據(jù)的插入、數(shù)據(jù)的更新、事務等一些列常用方法。DB類的構(gòu)造函數(shù)負責加載Java提供的數(shù)據(jù)庫連接驅(qū)動,并且與數(shù)據(jù)庫連接每次調(diào)用DB類時都會與數(shù)據(jù)庫相連。而每次調(diào)用完數(shù)據(jù)庫時應該釋放連接和結(jié)果集對象,因此需要一個close方法DB類還應該有SQL語句的執(zhí)行等方法除了數(shù)據(jù)庫正常的連接、釋放、執(zhí)行SQL方法外,還有數(shù)據(jù)庫所對應的執(zhí)行方法。在這里就不一一列出,DB類的詳細方法可以瀏覽該類的源代碼。5.2、編碼轉(zhuǎn)換公共類本系統(tǒng)是一個Java Web程序,很多不同的頁面與數(shù)據(jù)庫的操作都需要通過轉(zhuǎn)碼才能正確顯示。因此,有必要建立一個編碼轉(zhuǎn)碼的公共類。通過這個方法能把gb2312的編碼轉(zhuǎn)為正確,不會出現(xiàn)亂碼。但是還考慮到以后的拓展性,頁面可能采用的是UTF-8的編碼,這里上述的方法就不適用,因此在轉(zhuǎn)碼類中還定義了其他方法,以為以后的拓展左準備。6、登錄模塊6.1、登錄模塊概述登錄模塊嵌套在主頁面上,用戶通過登錄模塊登錄論壇。只要用戶輸入正確的用戶名和密碼就能通過登錄按鈕進行登錄。圖、登錄模塊技術分析由于本次設計我采用的是MVC模式,因此有視圖、模型和控制三個層次,其中視圖就是圖6.1.1所示。而模型就是在javabean包中Login.java它里面的成員包含了用戶的所有信息,當然登錄并不需要用到里面的所有成員,只需要用到用戶名和密碼這兩項就可以了。而servlet就是負責處理用戶名和密碼是否存在數(shù)據(jù)庫,如果存在就允許登錄,如果不是的話就提示登錄失敗。1、 在視圖中獲取用戶名和密碼 用戶名: 密碼: 2、 獲取用戶名和密碼后,把這兩項內(nèi)容提交到servlet中,然后在servlet中連接數(shù)據(jù)庫,把用戶名和密碼與數(shù)據(jù)庫進行select。最后把結(jié)果放到一個session中。最后跳轉(zhuǎn)頁面。(代碼略)3、 跳轉(zhuǎn)頁面顯示是否登錄成功(視圖jsp頁面代碼略)7、注冊模塊7.1、注冊模塊概述用戶通過注冊模塊進行注冊注冊模塊在圖3.3.4中7.2、注冊模塊的實現(xiàn)本系統(tǒng)一致采用MVC模式。注冊頁面是視圖、Servlet為控制器、JavaBean為模型。用戶通過在注冊頁面填寫注冊信息。通過提交后,信息被提交到Servlet中。然后通過Servlet寫入數(shù)據(jù)庫中。最后跳轉(zhuǎn)頁面返回信息。Servlet核心代碼:try con = DriverManager.getConnection(uri, sa, 709394);if (boo) String insertUser = insert into tb_user(username,password,sex,email,qq,signature,grade,lxdz,tx,grzy,realname)+ values(?,?,?,?,?,?,?,?,?,?,?);pre = con.prepareStatement(insertUser);pre.setString(1, username);pre.setString(2, password);pre.setString(3, sex);pre.setString(4, email);pre.setString(5, qq);pre.setString(6, signature);pre.setString(7, grade.trim();pre.setString(8, lxdz);pre.setString(9, tx);pre.setString(10, grzy);pre.setString(11, realname);int m = pre.executeUpdate();if (m != 0) backNews = 注冊成功;reg.setBackNews(backNews); else backNews = 信息填寫不完整,請?zhí)顚憥翘柕男畔?reg.setBackNews(backNews);con.close(); catch (SQLException exp) backNews = 該會員名已被使用,請更換名字 + exp;reg.setBackNews(backNews);String register = register;session.setAttribute(changeMes, backNews);session.setAttribute(reg, register);RequestDispatcher dispatcher = request.getRequestDispatcher(showCBMes.jsp);dispatcher.forward(request, response);8、論壇的主頁面設計8.1、論壇主頁面概述論壇主頁面包括3部分,第一部分是導航條、第二部分是用戶登錄與注冊、第三部分是論壇板塊的顯示。其中論壇主頁有兩個頁面,一個是用戶登錄前的頁面,一個是用戶登錄后的頁面(兩個頁面的主要區(qū)別是導航條游客一欄變回該登錄的用戶名、用戶登陸框和注冊按鈕消失,其他的不變)圖8.1.1為登錄前的頁面、圖8.1.2為登錄后的頁面圖8.1.1圖、論壇主頁面的實現(xiàn)論壇主頁面的JSP代碼(部分),它通過判斷用戶是否登錄,登錄的話打開afterlogin.jsp這個頁面,否者的話打開beforelogin.jsp這個頁面登錄前頁面beforelogin.jsp與afterlogin.jsp的結(jié)構(gòu)大致相同,不同的是用戶登錄注冊模塊,登錄前頁面有用戶登錄模塊,而登錄后頁面沒有用戶登錄模塊。除此以外,兩者的結(jié)構(gòu)都有論壇板塊顯示DisplayTag,java文件(這個文件是自定應標簽)。這個標簽文件用于顯示論壇板塊的詳細信息。Beforelogin.jsp的代碼(部分)用戶登錄與注冊: 用戶名: 密碼: 注冊采用的是圖片熱點跳轉(zhuǎn):調(diào)用自定義標簽:自定義標簽DisplayTag.java部分代碼:try List l = new ArrayList();if (session.getAttribute(list) != null) l = (List) session.getAttribute(list);for (int i = 0; i l.size(); i+) Forum forumBean = (Forum) l.get(i);out.println();out.println();out.println();out.println();out.println();out.println(+ + forumBean.getForumname()+ );out.println(afterlogin.jsp頁面也beforelogin.jsp頁面大致相同,除了沒有用戶登錄模塊以外。9、主題顯示模塊9.1、主題顯示模塊概述主題顯示模塊同樣使用了自定義標簽來設計。通過點擊論壇板塊,把論壇板塊的id號,傳到servlet中,通過servlet處理,把獲得的內(nèi)容存放到javabean中,然后通過跳轉(zhuǎn)到主題顯示模塊,把獲得的內(nèi)容通過一定的方式顯示在頁面上。圖、主題顯示模塊的設計調(diào)用自定義標簽DisplayTopic.java文件顯示DisplayTopic.java(代碼)public class DisplayTopic extends TagSupport public int doEndTag() throws JspException JspWriter out = pageContext.getOut();HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();HttpSession session = pageContext.getSession();HandleString s = new HandleString();try if (session.getAttribute(List) != null) List l = (List) session.getAttribute(List);for (int i = 0; i l.size(); i+) Topic t = (Topic) l.get(i);out.println();out.println();out.println();out.println( );out.println();out.println(+ (t.getTitle() + );out.println(+ t.getAuthor() + );out.println(+ t.getReCount() + / + t.getRq() + );out.println(+ t.getSubmittime() + );out.println();out.println();out.println();out.println(); catch (Exception e) e.printStackTrace();return super.doEndTag(); 10、主題內(nèi)容顯示與回復內(nèi)容顯示10.1、設計概念同樣通過自定義標簽來顯示主題內(nèi)容和回復內(nèi)容。DisplayResponse.java為自定義標簽。圖、主題內(nèi)容顯示和回復內(nèi)容顯示設計過程DisplayResponse.java自定義標簽的設計和上述論壇板塊的自定義標簽的設計方法大致相同。不同的是頁面的布局和內(nèi)容的不同。代碼不詳細放出。HandleResponse.java是負責獲取主題的信息和回復信息,并且把這些顯示反饋給視圖(即這里的自定義標簽DisplayResponse.java,負責顯示主題內(nèi)容和回復內(nèi)容的Jsp頁面嵌套了DisplayResponse.java這個自定義標簽)HandleResponse.java部分代碼:/ 獲取發(fā)表人的發(fā)表內(nèi)容和信息Topic topicBean = new Topic();try List listContent = topicBean.getRecordTopic(String) session.getAttribute(topicId);session.setAttribute(listContent, listContent);List listAuthor = topicBean.getTopicAuthorInfo(String) session.getAttribute(topicId);session.setAttribute(listAuthor, listAuthor); catch (SQLException e1) e1.printStackTrace();/ 獲取回復人回復內(nèi)容和信息Topic topicBean2 = new Topic();try List listResponse = topicBean2.getRecordResponse(String) session.getAttribute(topicId);session.setAttribute(listResponse, listResponse); catch (SQLException e) e.printStackTrace();11、主題回復11.1、主題回復模塊概述主題回復模塊放在主題內(nèi)容顯現(xiàn)的最下方。主題的回復用戶必須要先登錄才能回復。圖、主題回復模塊的設計通過回復按鈕,把回復得內(nèi)容提交到主題回復的servlet中,然后通過servlet把內(nèi)容存放到數(shù)據(jù)庫中。最后再次跳轉(zhuǎn)到主題內(nèi)容顯示這個頁面,把最新的回復信息顯示到視圖上。Servlet部分代碼:try /快速回復不用tilteString resTitle = response;m = topicBean.InsertDataResponse(resTitle, content, xq, author, topicId, topicName);if (m = 1) try RequestDispatcher dispatcher = request.getRequestDispatcher(responseList);dispatcher.forward(request, response); catch (Exception ex) ex.printStackTrace(); catch(Exception e) e.printStackTrace();12、發(fā)表新主題12.1、發(fā)表新主題模塊概述發(fā)表新主題和回復模塊的設計大致相同。圖12.1.1通過在視圖上輸入新主題的信息,然后通過提交到servlet中并把信息存放到數(shù)據(jù)庫中,最后跳轉(zhuǎn)到主題顯示頁面,把新主題顯示出來。12.2、新主題模塊設計新主題模塊的設計與回復模塊大致相同。新主題模塊的servlet部分代碼:Topic topicBean = new Topic();int i = 0;try i = topicBean.InsertData(title, content, xq, author, forumId,forumName); catch (Exception e) e.printStackTrace();if (i = 1) try List l = topicBean.search(0, forumId);session.setAttribute(List, l);RequestDispatcher dispatcher = request.getRequestDispatcher(topi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家電二維碼管理制度
- 應付賬賬款管理制度
- 張勇海底撈管理制度
- 影像科預約管理制度
- 微商公司化管理制度
- 心理vr室管理制度
- 快艇安全全管理制度
- 快餐店員工管理制度
- 總公司資金管理制度
- 總經(jīng)理資格管理制度
- 民法典案例解讀PPT
- 安全生產(chǎn)知識應知應會
- 質(zhì) 量 管 理 體 系 認 證審核報告(模板)
- 腫瘤科新護士入科培訓和護理常規(guī)
- 體育器材采購設備清單
- 第4章 頜位(雙語)
- 二手車鑒定評估報告書最終
- 電影場記表(雙機位)
- 塔吊負荷試驗方案
- 電子商務專業(yè)“產(chǎn)教融合、五雙并行”人才培養(yǎng) 模式的實踐研究課題論文開題結(jié)題中期研究報告(經(jīng)驗交流)
- 購買社區(qū)基本公共養(yǎng)老、青少年活動服務實施方案
評論
0/150
提交評論