版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)士學(xué)位畢業(yè)設(shè)計(jì)(論文)基于JSP的個(gè)人微博系統(tǒng) 摘要博客是一種新的表達(dá)方式,它傳播的不僅僅是情感,還有很多智慧、觀點(diǎn)和想法。從某種意義上說(shuō),這是一種新的文化現(xiàn)象,標(biāo)志著互聯(lián)網(wǎng)的發(fā)展已經(jīng)開(kāi)始進(jìn)入更高的階段。該系統(tǒng)主要實(shí)現(xiàn)了博主發(fā)布博客和照片,訪客可以瀏覽評(píng)論,以及發(fā)表留言等功能。該系統(tǒng)的設(shè)計(jì)采用Enterprise Architect和MyEclipse工具來(lái)實(shí)現(xiàn)。MVC是一個(gè)框架模型,它強(qiáng)制分離輸入、處理和輸出的應(yīng)用程序。使用MVC應(yīng)用程序分為三個(gè)核心組件:模型、視圖、控制器。他們處理自己的任務(wù)。最典型的MVC模式是JSP+servlet+javabean。該系統(tǒng)使用的數(shù)據(jù)庫(kù)是SQL Ser
2、ver2008。SQL Server可以承受世界上最強(qiáng)的負(fù)載,對(duì)整個(gè)數(shù)據(jù)庫(kù)、數(shù)據(jù)文件和日志文件進(jìn)行加密,而不需要對(duì)應(yīng)用程序進(jìn)行修改,而且它通過(guò)第三方支持密鑰管理(HSM)產(chǎn)品和安全模塊提供了對(duì)外鍵管理的支持。關(guān)鍵詞:視圖/模型/控制器(MVC);博客系統(tǒng);數(shù)據(jù)庫(kù)目錄TOC o 1-3 h z u HYPERLINK l _RefHeading_Toc384905962 前言1 HYPERLINK l _RefHeading_Toc384905963 第1章緒論2 HYPERLINK l _RefHeading_Toc384905964 1.1 開(kāi)發(fā)工具介紹2 HYPERLINK l _RefH
3、eading_Toc384905965 1.2 論文組織結(jié)構(gòu)介紹3 HYPERLINK l _RefHeading_Toc384905966 第2章項(xiàng)目需求分析4 HYPERLINK l _RefHeading_Toc384905967 2.1 需求功能點(diǎn)介紹4 HYPERLINK l _RefHeading_Toc384905968 2.2 用例圖表示需求4 HYPERLINK l _RefHeading_Toc384905969 2.3 用例圖描述6 HYPERLINK l _RefHeading_Toc384905970 第3章詳細(xì)分析與設(shè)計(jì)11 HYPERLINK l _RefHead
4、ing_Toc384905971 3.1 面向?qū)ο蠓治?1 HYPERLINK l _RefHeading_Toc384905972 3.2 類圖設(shè)計(jì)11 HYPERLINK l _RefHeading_Toc384905973 3.2.1 類圖12 HYPERLINK l _RefHeading_Toc384905974 3.3 數(shù)據(jù)庫(kù)基本分析與建模12 HYPERLINK l _RefHeading_Toc384905975 3.3.1 數(shù)據(jù)庫(kù)的需求分析13 HYPERLINK l _RefHeading_Toc384905976 3.3.2 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)13 HYPERLINK l
5、_RefHeading_Toc384905977 第4章項(xiàng)目編碼實(shí)現(xiàn)18 HYPERLINK l _RefHeading_Toc384905978 4.1 系統(tǒng)的實(shí)現(xiàn)18 HYPERLINK l _RefHeading_Toc384905979 4.1.1 用戶表現(xiàn)層18 HYPERLINK l _RefHeading_Toc384905980 4.1.2 業(yè)務(wù)邏輯層20 HYPERLINK l _RefHeading_Toc384905981 4.1.3 數(shù)據(jù)持久層26 HYPERLINK l _RefHeading_Toc384905982 4.2關(guān)鍵技術(shù)介紹27 HYPERLINK l
6、_RefHeading_Toc384905983 4.2.1 MVC模式27 HYPERLINK l _RefHeading_Toc384905984 4.2.2 數(shù)據(jù)庫(kù)連接池的配置和使用28 HYPERLINK l _RefHeading_Toc384905985 4.2.3 中文的亂碼問(wèn)題29 HYPERLINK l _RefHeading_Toc384905986 第5章項(xiàng)目測(cè)試設(shè)計(jì)31 HYPERLINK l _RefHeading_Toc384905987 5.1 測(cè)試計(jì)劃31 HYPERLINK l _RefHeading_Toc384905988 5.2 具體設(shè)計(jì)測(cè)試的方案介紹3
7、1 HYPERLINK l _RefHeading_Toc384905989 5.3 列舉測(cè)試數(shù)據(jù)與分析32 HYPERLINK l _RefHeading_Toc384905990 結(jié)論33 HYPERLINK l _RefHeading_Toc384905991 參考文獻(xiàn)34 HYPERLINK l _RefHeading_Toc384905992 附錄35 HYPERLINK l _RefHeading_Toc384905993 辭36前 言博客,翻譯過(guò)來(lái)就是網(wǎng)絡(luò)日志、博客或博客,是一種通常由個(gè)人管理,會(huì)不定期發(fā)布新文章的博客。許多博客專注于提供評(píng)論或表達(dá)對(duì)新聞中特定話題的看法,而另一些
8、則被用作個(gè)人日記,記錄心情和生活。一個(gè)典型的博客結(jié)合文字、圖片、其他博客或其他博客,與話題相關(guān)的其他媒體進(jìn)行互動(dòng),讓讀者留下評(píng)論,這是很多博客所追求的。博主可以在與讀者的互動(dòng)中交到朋友。雖然從未謀面,但也能感受到朋友的支持和鼓勵(lì)。博客作為一種新的表達(dá)方式,不僅傳播情感,也傳播很多智慧、思想和觀點(diǎn)。從某種意義上說(shuō),它是一種新的文化現(xiàn)象,它的出現(xiàn)和繁榮標(biāo)志著互聯(lián)網(wǎng)的發(fā)展進(jìn)入了一個(gè)更高的階段,從而真正凸顯了互聯(lián)網(wǎng)的知識(shí)價(jià)值。博客已經(jīng)成為網(wǎng)絡(luò)文化不可分割的一部分?,F(xiàn)在每個(gè)網(wǎng)民都有自己的博客,可以瀏覽和閱讀博客,幾乎每個(gè)人都有一兩個(gè)喜歡的博客,無(wú)論是傳統(tǒng)新聞媒體的官方新聞博客,還是與他的愛(ài)好相關(guān)的話題博
9、客,還是純粹的娛樂(lè)博客。由于博客交流比電子和討論組更容易和簡(jiǎn)單,博客已經(jīng)成為家庭、朋友、部門(mén)和團(tuán)隊(duì)中越來(lái)越受歡迎的交流方式。博客可以實(shí)現(xiàn)多個(gè)用戶之間的互動(dòng),滿足用戶之間互相訪問(wèn)博客、評(píng)論和留言的需求。目前各大博客各有特色,功能完善。但是有些博客頁(yè)面廣告太多,讓人眼花繚亂。用戶在使用博客時(shí),經(jīng)常會(huì)無(wú)意中點(diǎn)擊進(jìn)入廣告,一些惡意制作的廣告會(huì)攜帶病毒,導(dǎo)致電腦中毒。為了滿足用戶的基本需求,創(chuàng)建一個(gè)安全健康的博客系統(tǒng),設(shè)計(jì)了一個(gè)個(gè)人微博系統(tǒng)。本系統(tǒng)采用JSP技術(shù)MVC模式實(shí)現(xiàn)。博客系統(tǒng)中照片的上傳和下載是通過(guò)jspSmartUpLoad組件實(shí)現(xiàn)的。上傳圖片的路徑存儲(chǔ)在數(shù)據(jù)庫(kù)中,通過(guò)查詢數(shù)據(jù)庫(kù)中存儲(chǔ)的路徑
10、,在頁(yè)面上顯示相應(yīng)的照片。因?yàn)椴┪牧斜碇锌赡苡写罅坎┪模阅J(rèn)顯示每個(gè)類別的最新十篇博文。點(diǎn)擊對(duì)應(yīng)的博文類別標(biāo)題,瀏覽該類別下分頁(yè)顯示的所有博文,方便用戶查找和瀏覽博文。用戶可以給博主留言,最后三條評(píng)論會(huì)顯示在首頁(yè)留言模塊。每篇博文都有瀏覽量和評(píng)論數(shù)。用戶點(diǎn)擊每篇博文的標(biāo)題,進(jìn)入博文展示頁(yè)面。此時(shí),博文的瀏覽量會(huì)更新,用戶對(duì)博文進(jìn)行評(píng)論后,評(píng)論數(shù)也會(huì)更新。第一章情緒理論1.1開(kāi)發(fā)工具介紹個(gè)人微博系統(tǒng)基于MVC+JDBC架構(gòu)開(kāi)發(fā)。開(kāi)發(fā)工具為MyEclipse 8.5,運(yùn)行環(huán)境為Windows 7+Tomcat 7.0 server,數(shù)據(jù)庫(kù)為SQL Server2008,UML建模工具為Ente
11、rprise Architect。開(kāi)發(fā)工具:MyEclipse Enterprise Workbench(簡(jiǎn)稱MyEclipse)是Eclipse IDE的擴(kuò)展。利用該平臺(tái),可以大大提高數(shù)據(jù)庫(kù)和J2EE的開(kāi)發(fā)和發(fā)布以及與應(yīng)用服務(wù)器集成的工作效率。MyEclipse是一個(gè)豐富的J2EE集成開(kāi)發(fā)環(huán)境,包括完整的編碼、調(diào)試、測(cè)試和發(fā)布功能,全面支持HTML、CSS、JSF、Struts、JavaScript、Hibernate和SQL。MyEclipse 8.5是一個(gè)基于Eclipse平臺(tái)的插件工具。該版本集成了Eclipse 3.5.2,改進(jìn)了團(tuán)隊(duì)協(xié)作開(kāi)發(fā)和開(kāi)發(fā)周期管理,更好地支持Spring和H
12、ibernate。2.服務(wù)器:Tomcat 7.0Tomcat是Apache Software Foundation下的Jakarta project開(kāi)發(fā)的Servlet容器。根據(jù)Sun Microsystems提供的技術(shù)規(guī)范,Tomcat支持servlets和Java Server Pages (JSP),并提供了一些作為Web服務(wù)器所獨(dú)有的功能,如Tomcat管理和控制平臺(tái)、安全局管理和Tomcat valve。Tomcat可以被視為一個(gè)獨(dú)立的Web服務(wù)器,因?yàn)樗舶粋€(gè)服務(wù)器。Apache Tomcat包括一個(gè)配置管理工具,可以通過(guò)編輯XML格式的配置文件進(jìn)行配置。本系統(tǒng)使用Tomca
13、t 7.0??梢灾С諷ervlet 3.0。數(shù)據(jù)庫(kù):SQL Server 2008SQL Server是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。最初由微軟、Sybase和Ashton-Tate開(kāi)發(fā),于1988年推出了第一款OS/2。 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/26783.htm t _blank 版本。Windows NT推出后,微軟和Sybase相繼開(kāi)發(fā)了SQL Server HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/272.htm t _blank 猛拉韁
14、繩走不同的路線,微軟將SQL Server HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/258047.htm t _blank 移植到Windows NT HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/25302.htm t _blank 系統(tǒng)專注于 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/522596.htm t _blank 開(kāi)發(fā)提升SQL Server的Windows NT版本。中的SQL
15、Server 2008 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/2422.htm t _blank Microsoft您可以組織和管理任何數(shù)據(jù)。結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)可以直接存儲(chǔ)在數(shù)據(jù)庫(kù)中。您可以查詢、搜索、同步、報(bào)告和分析數(shù)據(jù)。數(shù)據(jù)可以存儲(chǔ)在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器到臺(tái)式計(jì)算機(jī)和移動(dòng)設(shè)備,無(wú)論數(shù)據(jù)存儲(chǔ)在哪里,it部門(mén)都可以控制數(shù)據(jù)。1.2開(kāi)發(fā)技術(shù)介紹1.個(gè)人微博系統(tǒng)由JSP技術(shù)完成。JSP的全稱是Java Server Pages,是一種簡(jiǎn)化的Servlet設(shè)計(jì)。它以的形式在Html中嵌入Java程
16、序塊。JSP Servlet和JSP Servlet都是在服務(wù)器端執(zhí)行,返回一個(gè)HTML文本給客戶端,客戶端可以使用瀏覽器瀏覽頁(yè)面。Web服務(wù)器收到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行java程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數(shù)據(jù)庫(kù),重定向網(wǎng)頁(yè)等。,從而實(shí)現(xiàn)構(gòu)建動(dòng)態(tài)網(wǎng)頁(yè)所需的功能。JSP頁(yè)面很少做數(shù)據(jù)處理,一般只用來(lái)實(shí)現(xiàn)靜態(tài)頁(yè)面,只用來(lái)通過(guò)表單提交數(shù)據(jù),不做業(yè)務(wù)處理,把業(yè)務(wù)處理放到servlet里。Java Servlet是JSP的技術(shù)基礎(chǔ),常見(jiàn)Web應(yīng)用的開(kāi)發(fā)需要Java Servlet和JSP的配合。JSP使用Java技術(shù)簡(jiǎn)單易用
17、,完全面向?qū)ο?,平臺(tái)無(wú)關(guān),安全可靠。圖片的上傳和下載使用組件jspSmartUpLoad.jarJspSmartUpload是jspsmart開(kāi)發(fā)的一個(gè)免費(fèi)的全功能文件上傳下載組件,適合嵌入在執(zhí)行上傳下載操作的JSP文件中。該組件具有以下特征:(1)使用方便。在JSP文件中寫(xiě)三五行java代碼就可以上傳或下載文件,方便。(2)可以控制上傳的全過(guò)程。通過(guò)使用jspSmartUpload組件提供的對(duì)象及其操作方法,可以獲得上傳文件的所有信息(包括文件名、大小、類型、擴(kuò)展名、文件數(shù)據(jù)等。),方便查閱。(3)能夠限制上傳文件的大小和類型。這樣可以過(guò)濾掉不符合要求的文件。(4)靈活下載。只需編寫(xiě)兩行代碼
18、,就可以將Web服務(wù)器變成文件服務(wù)器。無(wú)論文件是在Web服務(wù)器的目錄中還是在任何其他目錄中,都可以使用jspSmartUpload下載。1.3論文的組織結(jié)構(gòu)介紹根據(jù)項(xiàng)目開(kāi)發(fā)流程,論文的組織結(jié)構(gòu)如下。第一章介紹了個(gè)人微博系統(tǒng)組織文章的開(kāi)發(fā)工具和語(yǔ)言。第二章對(duì)系統(tǒng)進(jìn)行了需求分析和面向?qū)ο蟮姆治雠c設(shè)計(jì)。第三章通過(guò)UML中的用例圖和類圖對(duì)系統(tǒng)項(xiàng)目進(jìn)行分析,并對(duì)數(shù)據(jù)庫(kù)進(jìn)行基本的分析和建模。第四章是項(xiàng)目的編碼實(shí)現(xiàn)。4.1節(jié)介紹了系統(tǒng)的實(shí)現(xiàn)以及如何處理亂碼的方法。第五章介紹了項(xiàng)目的測(cè)試計(jì)劃和方案,并列出了測(cè)試數(shù)據(jù)和分析結(jié)果。最后,對(duì)項(xiàng)目開(kāi)發(fā)階段進(jìn)行總結(jié)和進(jìn)一步展望。第二章項(xiàng)目需求分析2.1需求功能點(diǎn)介紹隨著
19、時(shí)代的進(jìn)步和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,博客已經(jīng)成為網(wǎng)絡(luò)文化不可分割的一部分。現(xiàn)在每個(gè)網(wǎng)民都有自己的博客,可以瀏覽和閱讀博客,幾乎每個(gè)人都有一兩個(gè)喜歡的博客,無(wú)論是傳統(tǒng)新聞媒體的官方新聞博客,還是與他的愛(ài)好相關(guān)的話題博客,還是純粹的娛樂(lè)博客。與電子和討論組相比,博客交流更加容易和簡(jiǎn)單。博客已經(jīng)成為家庭、朋友、部門(mén)、團(tuán)隊(duì)中越來(lái)越流行的溝通方式。該系統(tǒng)包括博客模塊、訪客模塊和學(xué)生模塊。1.博主模塊:博主登錄、發(fā)布博文、添加博文類別、修改和刪除博文、刪除博文類別、添加相冊(cè)類別、添加相冊(cè)、刪除相冊(cè)等功能。2.訪客模塊:瀏覽博文、發(fā)表評(píng)論、給博主留言、查看相冊(cè)等功能。2.2用例圖顯示了需求在UML中,用例是一組
20、動(dòng)作序列(包括它的變體)的描述,由系統(tǒng)執(zhí)行,為參與者產(chǎn)生一個(gè)可觀察的結(jié)果值。用例用于描述一組序列。序列代表了系統(tǒng)之外的事物(系統(tǒng)的參與者)和系統(tǒng)本身(及其關(guān)鍵抽象)之間的交互。在這個(gè)系統(tǒng)中有兩種類型的參與者。他們是:博主和游客。在下面的用例圖中,將分別描述兩個(gè)參與者可以使用的用例。1.博客用例圖圖2SEQ 圖 * ARABIC一個(gè)博客用例圖2.游客用例圖圖2SEQ 圖 * ARABIC2游客用例圖2.3用例圖描述描述了下面的系統(tǒng)用例圖。1.Blogger用例圖描述(主要用例)(1)以Blogger登錄使用如下表所示為例。表2SEQ 表 * ARABIC一個(gè)登錄系統(tǒng)用例描述用例名稱登錄博客系統(tǒng)用
21、例目標(biāo)當(dāng)blogger登錄到系統(tǒng)時(shí),用例開(kāi)始,它驗(yàn)證blogger的身份,當(dāng)一個(gè)過(guò)程完成時(shí)用例結(jié)束。等級(jí)子函數(shù)積極分子寫(xiě)日志(部落格)的人情況僅定義了初始路徑。前兆條件沒(méi)有成功的作品博主進(jìn)入博客主頁(yè)(index.jsp)主路徑博主進(jìn)入登錄界面后,輸入正確的用戶名和密碼,博主登錄系統(tǒng)??蛇x路徑博主進(jìn)入登錄界面后,點(diǎn)擊“直接進(jìn)入”異常路徑進(jìn)入登錄界面后,博主輸入無(wú)效賬號(hào)和/或密碼,系統(tǒng)顯示“用戶用戶名和密碼錯(cuò)誤”。博主可以選擇返回主路徑的起點(diǎn),重新輸入正確的賬號(hào)和密碼;或者點(diǎn)擊“直接進(jìn)入”(2)以博文管理為例,如下表所示。表2SEQ 表 * ARABIC2博客帖子管理用例描述用例名稱博文管理用例目
22、標(biāo)用例從博主發(fā)布、修改和刪除博文開(kāi)始,到博主成功發(fā)布、修改和刪除博文結(jié)束。等級(jí)子函數(shù)積極分子寫(xiě)日志(部落格)的人情況僅定義了初始路徑。前兆條件博主登錄個(gè)人微博系統(tǒng)成功的作品博主發(fā)布、修改、刪除博文成功后主路徑博主進(jìn)入發(fā)布和管理博文的界面,添加或更新博文,保存在數(shù)據(jù)庫(kù)中??蛇x路徑異常路徑?jīng)]有(3)照片管理如下表所示。表2SEQ 表 * ARABIC三相冊(cè)管理用例描述用例名稱相冊(cè)管理用例目標(biāo)用例從博主添加和刪除照片開(kāi)始,到博主操作成功結(jié)束。等級(jí)子函數(shù)積極分子寫(xiě)日志(部落格)的人情況僅定義了初始路徑。前兆條件博客登錄系統(tǒng)成功的作品Blogger成功添加和刪除了照片。主路徑博主進(jìn)入添加照片界面后,照片
23、被成功添加和刪除,并保存在數(shù)據(jù)庫(kù)中??蛇x路徑?jīng)]有異常路徑?jīng)]有(4)博客文章的分類管理如下表所示,例如。表2SEQ 表 * ARABIC四博客文章類別管理用例描述用例名稱博客文章類別管理用例目標(biāo)用例從博主添加或刪除博文開(kāi)始,到博主成功操作結(jié)束。等級(jí)子函數(shù)積極分子寫(xiě)日志(部落格)的人情況僅定義了初始路徑。前兆條件博客登錄系統(tǒng)成功的作品Blogger添加和刪除了博文類別,并成功保存到數(shù)據(jù)庫(kù)中。主路徑進(jìn)入添加和刪除博文的界面后,博主可以選擇添加或刪除博文,并保存到數(shù)據(jù)庫(kù)中??蛇x路徑?jīng)]有異常路徑?jīng)]有(5)以相冊(cè)類別管理為例,如下表所示。表2SEQ 表 * ARABIC五相冊(cè)管理的用例描述用例名稱相冊(cè)類別
24、管理用例目標(biāo)用例從博主添加或刪除相冊(cè)類別開(kāi)始,到博主成功操作結(jié)束。等級(jí)子函數(shù)積極分子寫(xiě)日志(部落格)的人情況僅定義了初始路徑。前兆條件博客登錄系統(tǒng)成功的作品Blogger添加和刪除相冊(cè)類別,并成功保存在數(shù)據(jù)庫(kù)中。主路徑進(jìn)入添加和刪除相冊(cè)類別界面后,博主可以選擇添加或刪除相冊(cè)類別,并存儲(chǔ)在數(shù)據(jù)庫(kù)中??蛇x路徑?jīng)]有異常路徑?jīng)]有2.游客用例圖描述(主要用例)(1)做出如下表所示的注釋,例如。表2SEQ 表 * ARABIC六對(duì)用例描述進(jìn)行注釋用例名稱評(píng)論用例目標(biāo)當(dāng)用戶評(píng)論一個(gè)博客發(fā)布的博客文章時(shí),用例開(kāi)始,它處理評(píng)論的問(wèn)題,當(dāng)用戶完成評(píng)論時(shí)用例結(jié)束。等級(jí)子函數(shù)積極分子用戶(游客或博客)情況僅定義了初始
25、路徑。前兆條件沒(méi)有成功的作品評(píng)論發(fā)布成功。主路徑用戶提出意見(jiàn),系統(tǒng)保存意見(jiàn)??蛇x路徑?jīng)]有異常路徑?jīng)]有(2)發(fā)布如下表所示的消息,例如。表2SEQ 表 * ARABIC七發(fā)布消息用例描述。用例名稱發(fā)布消息用例目標(biāo)用例從用戶發(fā)布消息開(kāi)始,處理消息問(wèn)題,并在消息成功提交時(shí)結(jié)束。等級(jí)子函數(shù)積極分子用戶(游客或博客)情況僅定義了初始路徑。前兆條件沒(méi)有成功的作品用戶已成功發(fā)布消息。主路徑用戶發(fā)布消息,系統(tǒng)保存消息??蛇x路徑?jīng)]有異常路徑?jīng)]有第3章詳細(xì)分析和設(shè)計(jì)3.1面向?qū)ο蟮姆治雒嫦驅(qū)ο蠓治鍪且韵到y(tǒng)能夠完成的功能為基礎(chǔ),以對(duì)象之間的關(guān)聯(lián)為核心。分析主要集中在對(duì)象的分類,相關(guān)屬性和操作的識(shí)別,類和實(shí)例的關(guān)系,
26、以及各種對(duì)象的行為特征。在面向?qū)ο蟮南到y(tǒng)中,客觀世界中的所有實(shí)體都用對(duì)象來(lái)表示,此外,對(duì)象還可以表示軟件開(kāi)發(fā)人員所需的功能。從實(shí)現(xiàn)形式上看,對(duì)象是一系列狀態(tài)和一系列可外部調(diào)用的操作或方法的包。狀態(tài)記錄操作的結(jié)果,方法定義一系列計(jì)算步驟。當(dāng)一個(gè)對(duì)象被請(qǐng)求執(zhí)行相關(guān)的方法時(shí),就說(shuō)一個(gè)操作已經(jīng)被應(yīng)用于該對(duì)象??梢栽趯?duì)象上執(zhí)行的操作描述了由對(duì)象執(zhí)行的功能,這些功能通過(guò)外部接口來(lái)表達(dá)。接口對(duì)象可以相互交互,交互是通過(guò)消息的傳遞來(lái)完成的。這里,消息是一個(gè)對(duì)象和另一個(gè)對(duì)象之間的通信單元,是要求對(duì)象執(zhí)行操作的規(guī)范。類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象。類的定義包括一組狀態(tài)描述和方法定義。類的定義可以看作是具
27、有相似狀態(tài)和共同行為的對(duì)象的模板。類模板以外部接口和部分算法和數(shù)據(jù)結(jié)構(gòu)的形式提供了對(duì)類的完整描述。這種方法的主要優(yōu)點(diǎn)是實(shí)現(xiàn)一個(gè)類的工作只需要做一次。在一個(gè)類中,每個(gè)對(duì)象都是該類的一個(gè)實(shí)例,對(duì)象可以通過(guò)實(shí)例化機(jī)制動(dòng)態(tài)生成。繼承是一種使用現(xiàn)有定義作為基礎(chǔ)來(lái)建立定義的技術(shù)。新類可以通過(guò)修改或擴(kuò)展現(xiàn)有類來(lái)定義,因此新類共享現(xiàn)有類的行為,但具有修改和添加的行為,這是繼承的本質(zhì)特征。這個(gè)定義的新類成為現(xiàn)有類的子類,而現(xiàn)有類成為新類的父類。從上面可以看出,面向?qū)ο蟛皇且环N編程語(yǔ)言,而是一種方式。它把程序看作一組相互協(xié)作又相互獨(dú)立的對(duì)象,每個(gè)對(duì)象就像一個(gè)微程序,有自己的狀態(tài)和功能。這種新方法帶來(lái)了許多突出的優(yōu)
28、點(diǎn),如模塊化、可重用性和可維護(hù)性。object的引入最大限度地減少了“真實(shí)世界”和“軟件程序”的語(yǔ)義差異,屏蔽了實(shí)現(xiàn)細(xì)節(jié),使得大型程序的理解和調(diào)試變得非常容易;類在軟件開(kāi)發(fā)中支持行為共享,提供代碼重用,使得面向?qū)ο蠹夹g(shù)在軟件開(kāi)發(fā)的全過(guò)程中高效且易于維護(hù)8。3.2類圖設(shè)計(jì)從用例圖到類圖是使用UML進(jìn)行系統(tǒng)分析的核心步驟,也是系統(tǒng)分析和設(shè)計(jì)的重要步驟。這一步幫助我們從僅僅知道系統(tǒng)完成后將做什么,到系統(tǒng)將如何完成這些功能。類圖類圖用于顯示系統(tǒng)中每個(gè)類的靜態(tài)結(jié)構(gòu)。它表示由類系統(tǒng)處理的事物。這些類可以通過(guò)多種方式相互連接,包括關(guān)聯(lián)(類相互連接)、依賴(一個(gè)類依賴/使用另一個(gè)類)、專門(mén)化(一個(gè)類是另一個(gè)類
29、的專門(mén)化)或大包(多個(gè)類組合成一個(gè)單元)。所有這些關(guān)系都與每個(gè)類的部分結(jié)構(gòu)一起顯示在類圖中,其中一個(gè)類的部分結(jié)構(gòu)由該類的屬性和操作表示。因?yàn)轭悎D描述的結(jié)構(gòu)在系統(tǒng)生命周期的任何地方都是有效的,所以一般認(rèn)為類圖是靜態(tài)的。一般一個(gè)系統(tǒng)有多個(gè)類圖,不是所有的類圖都放在一個(gè)類圖里,一個(gè)類可以參與多個(gè)類圖。下圖是這個(gè)系統(tǒng)的類圖。圖31類圖3.3數(shù)據(jù)庫(kù)的基本分析和建模一個(gè)專業(yè)管理系統(tǒng)的實(shí)現(xiàn),必然會(huì)涉及到后臺(tái)數(shù)據(jù)庫(kù)對(duì)系統(tǒng)數(shù)據(jù)信息的保存和維護(hù)??紤]到系統(tǒng)對(duì)用戶并行處理數(shù)據(jù)庫(kù)中數(shù)據(jù)的需求,一般選擇Oracle、DB2等大型數(shù)據(jù)庫(kù)管理系統(tǒng)??紤]到系統(tǒng)的可移植性和開(kāi)源性,采用了對(duì)用戶并發(fā)連接數(shù)的優(yōu)良性能,本系統(tǒng)中的相
30、關(guān)數(shù)據(jù)信息由SQL Server數(shù)據(jù)庫(kù)管理系統(tǒng)處理。3.3.1數(shù)據(jù)庫(kù)需求分析根據(jù)個(gè)人微博系統(tǒng)的總體要求,通過(guò)對(duì)整個(gè)系統(tǒng)功能、數(shù)據(jù)流程和操作流程的分析,可以得出數(shù)據(jù)庫(kù)應(yīng)該包含以下表格:1.文章表:文章編號(hào)、文章標(biāo)題、文章內(nèi)容、文章發(fā)表時(shí)間、文章類別、文章瀏覽次數(shù)、文章評(píng)論次數(shù)。2.文章類別表:文章類別編號(hào)和文章類別名稱。3.評(píng)論形式:評(píng)論號(hào)、文章號(hào)、用戶名、評(píng)論時(shí)間、評(píng)論容量。4.博主信息表:博主主編號(hào)、博主昵稱、博主真實(shí)、博主注冊(cè)時(shí)間、博主性別、博主生日、博主身高、博主體重、博主登錄次數(shù)、博主發(fā)布的博文和博客瀏覽次數(shù)。5.消息形式:消息編號(hào)、消息發(fā)送者、消息容量和消息時(shí)間。6.照片表:照片號(hào)、
31、相冊(cè)類別號(hào)、照片名、照片路徑。7.相冊(cè)類別表:相冊(cè)類別號(hào),相冊(cè)名稱,相冊(cè)封面圖片路徑。3.3.2數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)根據(jù)個(gè)人微博系統(tǒng)的需求分析,在確定各表主鍵字段的基礎(chǔ)上,根據(jù)表間相關(guān)字段的關(guān)系建立表間關(guān)系。這些關(guān)系的建立可以避免誤操作造成的數(shù)據(jù)庫(kù)崩潰,保證表間數(shù)據(jù)的統(tǒng)一性。數(shù)據(jù)庫(kù)對(duì)應(yīng)的示意圖如下(圖3-3)。圖3SEQ 圖 * ARABIC三數(shù)據(jù)庫(kù)對(duì)應(yīng)圖博客信息表:文章是一個(gè)數(shù)據(jù)表,用來(lái)保存博主發(fā)布的所有博客信息。下表(表3-1)列出了該表中包含的字段描述信息。表3SEQ 表 * ARABIC八博客信息表列標(biāo)題類型寬度列含義主鍵連續(xù)增加外部密鑰文章序號(hào)(同Internationalorganiz
32、ations)國(guó)際組織四編號(hào)是是不文章標(biāo)題可變長(zhǎng)字符串50文章標(biāo)題不不不文章內(nèi)容文本溫蓉蓉不不不文章發(fā)送時(shí)間可變長(zhǎng)字符串50出版時(shí)間不不不讀取計(jì)數(shù)(同Internationalorganizations)國(guó)際組織四打擊不不不注釋計(jì)數(shù)(同Internationalorganizations)國(guó)際組織四評(píng)論數(shù)量不不不文章類型_id(同Internationalorganizations)國(guó)際組織四商品類型編號(hào)不不是2.博客文章類別信息表:articletype表是一個(gè)數(shù)據(jù)表,用于保存博客文章的類別信息。下表(表3-2)列出了該表中包含的字段描述信息。表32博客帖子類別表列標(biāo)題類型寬度列含義主鍵連續(xù)
33、增加外部密鑰t_id(同Internationalorganizations)國(guó)際組織四商品類別號(hào)是是不名字可變長(zhǎng)字符串50類別名稱不不不3.意見(jiàn)表:評(píng)論表是用來(lái)保存評(píng)論信息的數(shù)據(jù)表。下表(表3-3)列出了該表中包含的字段描述信息。表33意見(jiàn)表列標(biāo)題類型寬度列含義主鍵連續(xù)增加外部密鑰備注d(同Internationalorganizations)國(guó)際組織四注釋編號(hào)是是不文章序號(hào)(同Internationalorganizations)國(guó)際組織四編號(hào)不不是評(píng)論員可變長(zhǎng)字符串20觀察者不不不評(píng)論的內(nèi)容文本評(píng)論不不不commentSendTime可變長(zhǎng)字符串50評(píng)論時(shí)間不不不4.Blogger信息表
34、:博主信息表(會(huì)員)是用來(lái)保存博主個(gè)人信息的數(shù)據(jù)表。下表(表3-4)列出了該表中包含的字段描述信息。表34博客信息表列標(biāo)題類型寬度列含義主鍵連續(xù)增加外部密鑰用戶界面設(shè)計(jì)(User Interface Design的縮寫(xiě))(同Internationalorganizations)國(guó)際組織四博客編輯編號(hào)是是不unickName可變長(zhǎng)字符串20博客昵稱不不不utrueName可變長(zhǎng)字符串20真名不不不密碼可變長(zhǎng)字符串20密碼不不不uregisterTime可變長(zhǎng)字符串20登錄時(shí)間不不不uLastLoginTime可變長(zhǎng)字符串50上次登錄時(shí)間不不不usex可變長(zhǎng)字符串2性別不不不生日可變長(zhǎng)字符串50生
35、日不不不結(jié)婚了可變長(zhǎng)字符串2結(jié)婚不不不超高(同Internationalorganizations)國(guó)際組織四高度不不不超輕量級(jí)(同Internationalorganizations)國(guó)際組織四重量不不不文章計(jì)數(shù)(同Internationalorganizations)國(guó)際組織四博客帖子的數(shù)量不不不登錄時(shí)間(同Internationalorganizations)國(guó)際組織四著陸時(shí)間不不不數(shù)數(shù)(同Internationalorganizations)國(guó)際組織四訪問(wèn)次數(shù)不不不5.消息信息表單:Messages是一個(gè)用來(lái)保存消息信息的數(shù)據(jù)表。下表(表3-5)列出了該表中包含的字段描述信息。表35消
36、息信息表列標(biāo)題類型寬度列含義主鍵連續(xù)增加外部密鑰w_id(同Internationalorganizations)國(guó)際組織四消息編號(hào)是是不姓名可變長(zhǎng)字符串50信息接受者不不不w_word可變長(zhǎng)字符串最大消息不不不w _時(shí)間可變長(zhǎng)字符串50消息時(shí)間不不不6.圖片:Photo是一個(gè)數(shù)據(jù)表,用來(lái)保存博主發(fā)布的所有照片信息。下表(表3-6)列出了該表中包含的字段描述信息。表36照片表列標(biāo)題類型寬度列含義主鍵連續(xù)增加外部密鑰編號(hào)(同Internationalorganizations)國(guó)際組織四照片號(hào)是是不tp_id(同Internationalorganizations)國(guó)際組織四類別號(hào)不不是圖片名稱
37、瓦爾徹50照片名稱不不不光路徑可變長(zhǎng)字符串50照片路徑不不不7.相冊(cè)類別信息表:相冊(cè)類別表是用來(lái)保存相冊(cè)類別信息的數(shù)據(jù)表。下表(表3-7)列出了該表中包含的字段描述信息。表37相冊(cè)類別表列標(biāo)題類型寬度列含義主鍵連續(xù)增加外部密鑰身份(同Internationalorganizations)國(guó)際組織四類別號(hào)是是不欄目名稱可變長(zhǎng)字符串50類別名稱不不不facepath瓦爾徹50覆蓋路徑不不不第四章項(xiàng)目編碼的實(shí)施4.1系統(tǒng)的實(shí)施本系統(tǒng)設(shè)計(jì)了兩種用戶,即博主和游客。根據(jù)不同的用戶,分別設(shè)計(jì)了相關(guān)功能所涉及的流程。在個(gè)人博客系統(tǒng)中,博主發(fā)布博文、添加照片、查看評(píng)論、留言等。通過(guò)頁(yè)面上的提示。要求博主在發(fā)布
38、博文時(shí)填寫(xiě)博文的標(biāo)題和內(nèi)容。訪問(wèn)者可以通過(guò)頁(yè)面關(guān)聯(lián)查看不同類別的博文和不同相冊(cè)的照片。訪問(wèn)者可以對(duì)博客帖子進(jìn)行評(píng)論,并發(fā)表自己的意見(jiàn)。點(diǎn)擊留言板,給博主留言。4.1.1用戶表現(xiàn)層下面是本系統(tǒng)各層實(shí)現(xiàn)的具體流程。1.前端用戶表示層(1)用戶登錄主頁(yè)(login.jsp)該系統(tǒng)中有兩個(gè)用戶。直接點(diǎn)擊默認(rèn)輸入其游客身份,輸入用戶名和密碼登錄成功,輸入其博主身份。他們都進(jìn)入了index.jsp。圖4SEQ 圖 * ARABIC四登錄頁(yè)面(2)博文展示頁(yè)面(MyArticleList.sp)點(diǎn)擊頁(yè)面上的“博客列表”,將顯示每個(gè)類別下的10篇博客文章。單擊類別以顯示該類別下的所有博客文章,單擊博客文章標(biāo)題
39、以顯示博客文章的詳細(xì)信息。圖4SEQ 圖 * ARABIC五博客文章顯示頁(yè)面(3)相冊(cè)展示頁(yè)面用戶點(diǎn)擊頁(yè)面上的“相冊(cè)列表”,就會(huì)顯示相冊(cè)分類和封面圖片。點(diǎn)擊類別名稱,該類別下的所有照片都可以按類別顯示。圖43相冊(cè)顯示頁(yè)面(4)留言板頁(yè)面用戶點(diǎn)擊頁(yè)面的“留言板”,顯示用戶發(fā)布的消息頁(yè)面,用戶可以發(fā)布消息。圖44留言板頁(yè)面4.1.2業(yè)務(wù)邏輯層在該系統(tǒng)的業(yè)務(wù)邏輯層,保存和處理各種類型的對(duì)象,如分類信息和用戶信息。對(duì)應(yīng)于業(yè)務(wù)邏輯層的類的包在應(yīng)用程序目錄WEBINF下的classes目錄中。下面簡(jiǎn)要介紹業(yè)務(wù)邏輯層中的主要類。1.封裝了數(shù)據(jù)庫(kù)相關(guān)操作的BaseDao.java的主要實(shí)現(xiàn)代碼。package
40、 . personal blog . Dao;導(dǎo)入Java . SQL . connection;導(dǎo)入Java . SQL . driver manager;導(dǎo)入Java . SQL . prepared statement;導(dǎo)入Java . SQL . resultset;導(dǎo)入Java . SQL . SQL exception;導(dǎo)入Java . SQL . statement;公共類BaseDao 私有靜態(tài)字符串drivater name = . Microsoft . SQL server . JDBC . SQL server driver ;私有靜態(tài)字符串dbURL = JDBC:S
41、QL server:/127 . 0 . 0 . 1:1433;sDatabaseName = blog _ db ;私有靜態(tài)字符串userName = sa私有靜態(tài)字符串psd = 123456/*獲得連接*退貨*/公共靜態(tài)連接getConnection() 連接連接=空;嘗試class . for name(drivater name);conn = driver manager . getconnection(dbURL,userName,PSD); catch(ClassNotFoundException e)/ TODO自動(dòng)生成的catch塊e . printstacktrace()
42、; catch (SQLException e) / TODO自動(dòng)生成的catch塊e . printstacktrace();返回連接器;/*數(shù)據(jù)庫(kù)查詢*參數(shù)sql*退貨*/公共靜態(tài)結(jié)果集sel(字符串sql) Connection con = null語(yǔ)句stmt = null結(jié)果集rs = null嘗試con = base Dao . getconnection();stmt = con . create statement(ResultSet。類型_滾動(dòng)_敏感,結(jié)果集。CONCUR _可更新);RS = stmt . execute query(SQL); catch (SQLExce
43、ption e) / TODO自動(dòng)生成的catch塊e . printstacktrace();返回RS;/*插入、刪除和修改數(shù)據(jù)庫(kù)。*/public static int exec(String SQL)int I = 0;Connection con = nullPreparedStatement pstmt = null嘗試con = base Dao . getconnection();PS TMT = con . prepare statement(SQL);I = PS TMT . execute update(); catch (SQLException e) / TODO自動(dòng)生
44、成的catch塊e . printstacktrace();最后嘗試pstmt . close();con . close(); catch(異常e) e . printstacktrace();返回I;/*關(guān)閉所有資源。*參數(shù)連接*參數(shù)測(cè)試*參數(shù)rs*/public void closeAll(連接連接,語(yǔ)句結(jié)構(gòu),結(jié)果集rs) /如果(rs!= null) 嘗試RS . close(); catch (SQLException e) e . printstacktrace();如果(stmt!= null) 嘗試stmt . close(); catch (SQLException e) e
45、 . printstacktrace();如果(conn!= null) 嘗試conn . close(); catch (SQLException e) e . printstacktrace();2.LoginServlet的主要實(shí)現(xiàn)代碼封裝了登錄頁(yè)面的相關(guān)操作,是:公共void登錄(ServletRequest請(qǐng)求,ServletResponse響應(yīng))引發(fā)ServletException,IOException System.out.print(loginservlet中的loginservlet方法);RequestDispatcher rd = null字符串消息= ;布爾標(biāo)志=真;
46、session session = request . getsession(false);string userName = request . getparameter( userName );string password = request . getparameter( user pass );if(username = = null | | username . equals( )flag = falseMessage += 請(qǐng)輸入用戶名 ;if(password = = null | | password . equals( )flag = falseMessage += 請(qǐng)輸入
47、密碼;如果(標(biāo)志)if (username = null) 用戶名= ;if (password = null) 密碼= ;Users u =新用戶();u.setUnickName(用戶名);/用用戶輸入的用戶名和密碼給Lernameu.setUpassword(密碼);UserDaoImpl us = new UserDaoImpl();users user = us . doc check(u);/返回當(dāng)前用戶userdao的登錄(loginbeaninbean賦值;如果(用戶!= null) /跳轉(zhuǎn)到登錄成功頁(yè)面;Message = 登錄成功 ;String sql = 更新博客數(shù)據(jù)庫(kù)
48、.成員集log in time = log in time+1 ;base Dao bs = new base Dao();System.out.print(執(zhí)行登錄+bs . exec(SQL);session.setAttribute(blog ,u . getunikname();response . send redirect( index . JSP );否則Message = 用戶輸入的用戶名和密碼錯(cuò)誤 ;request.setAttribute(messages ,消息);rd = request . getrequest dispatcher( log in . JSP );r
49、d.forward(請(qǐng)求、響應(yīng));/跳轉(zhuǎn)到index.jsp并提示用戶;否則request.setAttribute(messages ,消息);rd = request . getrequest dispatcher( log in . JSP );rd.forward(請(qǐng)求、響應(yīng));3.發(fā)布博文的主要實(shí)現(xiàn)代碼:public void article add(servlet request請(qǐng)求,ServletResponse響應(yīng))引發(fā)ServletException,IOException 字符串消息= ;字符串向前= ;Date Date = new Date();string date
50、1 = stringdateparseutil . getstring(date);boolean flag=validateArticle(請(qǐng)求,響應(yīng));system . out . print(flag);如果(標(biāo)志)Article文章= new Article();article . setarticlecontent(change(request . getparameter( articlecontent );/文章內(nèi)容article.setArticleSendTime(日期1);article . setarticlettitle(change(request . getpara
51、meter( article title );article . setarticletype _ id(integer . parse int(request . getparameter( column 1 );article . setcommentcount(0);article . setreadcount(0);ArticleDaoImpl ADI = new ArticleDaoImpl();int mark = ADI . insert(article);if(mark=1) Messages = 文章發(fā)布成功! ;forward = my article list . JSP
52、 ;否則Messages=文章發(fā)布失敗! ;forward = AddArticle.jsprequest.setAttribute(messages ,消息);否則forward = error.jsprequest dispatcher rd = request . getrequest dispatcher(forward);rd.forward(請(qǐng)求、響應(yīng));4.1.3數(shù)據(jù)持久層數(shù)據(jù)持久層是一個(gè)軟件服務(wù)層,它將應(yīng)用程序與程序使用和操作的數(shù)據(jù)源分開(kāi),并在對(duì)象/關(guān)系數(shù)據(jù)庫(kù)之間提供一個(gè)成功的企業(yè)級(jí)映射解決方案。數(shù)據(jù)源之上的數(shù)據(jù)庫(kù)持久層隱藏了用于訪問(wèn)這些數(shù)據(jù)源的數(shù)據(jù)訪問(wèn)API。數(shù)據(jù)庫(kù)持久層提供
53、的是一個(gè)完全抽象的服務(wù),它隱藏了使用和操作來(lái)自數(shù)據(jù)源的數(shù)據(jù)的物理細(xì)節(jié)。以下是目前數(shù)據(jù)持久層的主要技術(shù),作為數(shù)據(jù)持久層框架的選擇方案簡(jiǎn)單介紹一下。1.JDBC封裝目前,大多數(shù)Web應(yīng)用程序使用JDBC來(lái)操作關(guān)系數(shù)據(jù)庫(kù)。它可以操作大量的數(shù)據(jù),有保證數(shù)據(jù)一致性的機(jī)制,支持信息的并發(fā)訪問(wèn),使用非常成熟的SQL語(yǔ)言。因?yàn)镴DBC使用的關(guān)系案例不能用于存儲(chǔ)對(duì)象,所以我們應(yīng)該放棄使用面向?qū)ο蟮脑瓌t在代碼中存儲(chǔ)數(shù)據(jù)。而是需要在數(shù)據(jù)持久層編寫(xiě)大量的SQL代碼,封裝底層的JDBC API,為業(yè)務(wù)邏輯層提供簡(jiǎn)潔的接口。2.實(shí)體Bean封裝實(shí)體Bean (entity E) o實(shí)體Bean被引入到Java平臺(tái)的企業(yè)應(yīng)
54、用中。它是描述數(shù)據(jù)庫(kù)中持久數(shù)據(jù)信息的組件。e通過(guò)使用類似于對(duì)象到對(duì)象映射的方法,提供了持久數(shù)據(jù)的面向?qū)ο蟮谋硎?。電子關(guān)系數(shù)據(jù)庫(kù)沒(méi)有限制,它描述的持久信息可以來(lái)自企業(yè)信息系統(tǒng)(e is)或其他存儲(chǔ)設(shè)備。要求E遵循一個(gè)嚴(yán)格的標(biāo)準(zhǔn),實(shí)現(xiàn)E的用戶必須嚴(yán)格遵循這個(gè)標(biāo)準(zhǔn)。但是,E標(biāo)準(zhǔn)在面向?qū)ο蠓矫嬗幸恍┤秉c(diǎn),比如一些高級(jí)特性:繼承、多態(tài)和復(fù)合關(guān)系(E2.0已經(jīng)改進(jìn))。其次,它是一個(gè)需要消耗應(yīng)用服務(wù)器大量資源才能運(yùn)行的重量級(jí)組件。但是,由E container管理的服務(wù)為處理一些企業(yè)功能提供了很大的好處。例如安全性、交易處理和資源管理。4.2關(guān)鍵技術(shù)介紹4.2.1 MVC模式MVC將軟件系統(tǒng)分為三個(gè)基本部分
55、:模型、視圖和控制器,如圖4所示。SEQ 圖 * ARABIC六如圖所示。圖47 MVC模式結(jié)構(gòu)(1)控制器層(控制器)這一層主要用于定義應(yīng)用的行為,控制應(yīng)用的進(jìn)程,處理事件,更新用戶動(dòng)作到模型的映射,選擇響應(yīng)視圖。(2)視圖層(View)這一層首先可以實(shí)現(xiàn)數(shù)據(jù)有目的的展示。視圖中通常沒(méi)有程序邏輯。為了刷新視圖,視圖需要訪問(wèn)它所監(jiān)視的數(shù)據(jù)模型,所以它應(yīng)該事先用它所監(jiān)視的數(shù)據(jù)進(jìn)行注冊(cè),還可以將用戶的輸入發(fā)送給控制器,以允許控制區(qū)域選擇視圖。(3)模型或業(yè)務(wù)邏輯處理這一層用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及數(shù)據(jù)的處理方法?!澳P汀庇袡?quán)直接訪問(wèn)數(shù)據(jù),如數(shù)據(jù)庫(kù)。“模型”獨(dú)立于“視圖”和“控制器”
56、,即模型不關(guān)心它將如何顯示或操作。然而,模型中數(shù)據(jù)的變化通常通過(guò)刷新機(jī)制發(fā)布。4.2.2數(shù)據(jù)庫(kù)連接池的配置和使用Java數(shù)據(jù)庫(kù)連接(JDBC)由一組用Java編程語(yǔ)言編寫(xiě)的類和接口組成。它為JDBC工具/數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)API,使他們能夠用純Java API編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序。但是各個(gè)開(kāi)發(fā)者的界面并不完全一樣,所以開(kāi)發(fā)環(huán)境的變化會(huì)帶來(lái)一些配置的變化。1.Java應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)的基本原理在Java語(yǔ)言中,JDBC(Java數(shù)據(jù)庫(kù)連接)是應(yīng)用程序和數(shù)據(jù)庫(kù)之間的橋梁,即Java語(yǔ)言通過(guò)JDBC技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)。它為JDBC數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)人員和數(shù)據(jù)庫(kù)前端工具開(kāi)發(fā)人員提供了標(biāo)準(zhǔn)的應(yīng)用程
57、序編程接口,使開(kāi)發(fā)人員可以用純Java語(yǔ)言編寫(xiě)完整的數(shù)據(jù)庫(kù)應(yīng)用程序。JDBC提供了兩種API,即面向開(kāi)發(fā)者的API和面向底層JDBC驅(qū)動(dòng)的API。底層主要通過(guò)直接JDBC驅(qū)動(dòng)和JDBC-ODBC橋驅(qū)動(dòng)連接到數(shù)據(jù)庫(kù)。一般來(lái)說(shuō),Java應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)的過(guò)程是:(1)加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序;(2)通過(guò)JDBC建立數(shù)據(jù)庫(kù)連接;(3)訪問(wèn)數(shù)據(jù)庫(kù)并執(zhí)行SQL語(yǔ)句;(4)斷開(kāi)數(shù)據(jù)庫(kù)。在使用JDBC開(kāi)發(fā)與數(shù)據(jù)庫(kù)相關(guān)的應(yīng)用程序時(shí),一個(gè)主要的困難是數(shù)據(jù)庫(kù)連接的管理。很多時(shí)候,連接管理混亂導(dǎo)致的系統(tǒng)資源開(kāi)銷過(guò)大已經(jīng)成為制約大型企業(yè)應(yīng)用效率的瓶頸。對(duì)于大量用戶訪問(wèn)的Web應(yīng)用,使用數(shù)據(jù)庫(kù)連接技術(shù)的系統(tǒng)的效率和穩(wěn)定性要
58、比使用其他傳統(tǒng)方法的系統(tǒng)好得多。2.環(huán)境配置首先,我的tomcat的安裝路徑是:C: Program Files(x86) Apache Software Foundation Tomcat 7.0;JDK的安裝路徑是:C: Program Files(x86) Java JDK 1 . 7 . 0 _ 17。然后,要添加環(huán)境變量,右擊“計(jì)算機(jī)”-屬性-高級(jí)屬性-雙擊路徑-添加“jdbc.jar的完整路徑”(我的是D: Program Files Microsoft SQL Server JDBC驅(qū)動(dòng)3.0 SQL JDBC _ 3.0 SQL JDBC.jar)。配置MyEclipse打開(kāi)我
59、的eclipse-window-references-Java-installed jres-選擇你的JRE-點(diǎn)擊編輯在右邊-添加外部jar-選擇sqljdbc4.jar保存。配置項(xiàng)目右鍵單擊要使用的項(xiàng)目名,構(gòu)建路徑-配置構(gòu)建路徑-庫(kù)選項(xiàng)卡-添加外部jar-選擇sqljdbc4.jar4.2.3中文亂碼中文亂碼是java程序開(kāi)發(fā)中常見(jiàn)的問(wèn)題。要徹底解決這個(gè)問(wèn)題,必須對(duì)Java編碼機(jī)制及其過(guò)程有一個(gè)大致的了解。在系統(tǒng)實(shí)施過(guò)程中,徹底解決了中文亂碼問(wèn)題。以下是解決方案:1.Java的部分編碼機(jī)制Java語(yǔ)言部門(mén)使用Unicode表示字符,完全遵循UnicodeV2.0標(biāo)準(zhǔn)。注釋、字符、標(biāo)識(shí)符等除外
60、。,Java程序中的所有輸入元素只由ASC字符或生成ASC字符的Unicode轉(zhuǎn)義序列組成。因此,在讀入字符時(shí),字符將被轉(zhuǎn)換為Unicode字符。2.漢字編碼機(jī)制在Java中,漢字的默認(rèn)編碼方式是Unicode,而中文常用的文件和數(shù)據(jù)庫(kù)是基于GB2312或BIG5編碼的。因此,在處理中文亂碼時(shí),要正確選擇漢字的編碼方式,正確處理漢字的編碼。英文字符用一個(gè)字節(jié)表示,最常用的編碼方式是ASCII。但是一個(gè)字節(jié)最多只能區(qū)分256個(gè)字符,而漢字有上千個(gè),所以現(xiàn)在漢字都是用雙字節(jié)來(lái)表示。在實(shí)際項(xiàng)目中,經(jīng)常遇到的編碼方式有GB2312、BIG5、Unicode等。當(dāng)瀏覽器客戶端提交的信息中含有漢字時(shí),在數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年泉州市豐澤區(qū)云山實(shí)驗(yàn)小學(xué)語(yǔ)文頂崗教師招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 梧州市中醫(yī)醫(yī)院2026年人才招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 2025年貴州中醫(yī)藥大學(xué)時(shí)珍學(xué)院產(chǎn)業(yè)行業(yè)導(dǎo)師選聘?jìng)淇碱}庫(kù)有答案詳解
- 2025年貴安新區(qū)招聘8人備考題庫(kù)及參考答案詳解
- 2025年中國(guó)科學(xué)技術(shù)大學(xué)體育教師招聘?jìng)淇碱}庫(kù)及完整答案詳解一套
- 2025年上海市普陀區(qū)自然資源確權(quán)登記事務(wù)中心招聘派遣制工作人員備考題庫(kù)及參考答案詳解
- 2025年貴陽(yáng)市礦產(chǎn)能源投資集團(tuán)有限公司公開(kāi)招聘工作人員備考題庫(kù)(第三批)及1套參考答案詳解
- 2026年西寧市城東區(qū)面向社會(huì)公開(kāi)招聘編外人員備考題庫(kù)及答案詳解參考
- 消毒滅菌考試試題及答案
- 2025年雁塔區(qū)長(zhǎng)延堡社區(qū)衛(wèi)生服務(wù)中心招聘通知備考題庫(kù)含答案詳解
- 2025湖南語(yǔ)文高考試題及答案
- DTP藥房培訓(xùn)課件
- 2025至2030年中國(guó)茶葉電商行業(yè)市場(chǎng)深度分析及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2025至2030車身廣告行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 船舶危險(xiǎn)源 機(jī)艙風(fēng)險(xiǎn)源清單
- 物業(yè)工程維修培訓(xùn)內(nèi)容
- 介入室操作規(guī)范與崗位職責(zé)流程
- 媒體部門(mén)主任個(gè)人述職報(bào)告范文
- 工業(yè)區(qū)位因素主題高一地理人教版(2019)必修二
- 嚴(yán)重精神障礙患者家庭護(hù)理-培訓(xùn)課件
- 2025-2030中國(guó)碘化銠行業(yè)需求潛力及產(chǎn)銷規(guī)模預(yù)測(cè)報(bào)告
評(píng)論
0/150
提交評(píng)論