![java個人博客開發(fā)論文_第1頁](http://file4.renrendoc.com/view/124d01d8b4d2ac1a319f918430b71b35/124d01d8b4d2ac1a319f918430b71b351.gif)
![java個人博客開發(fā)論文_第2頁](http://file4.renrendoc.com/view/124d01d8b4d2ac1a319f918430b71b35/124d01d8b4d2ac1a319f918430b71b352.gif)
![java個人博客開發(fā)論文_第3頁](http://file4.renrendoc.com/view/124d01d8b4d2ac1a319f918430b71b35/124d01d8b4d2ac1a319f918430b71b353.gif)
![java個人博客開發(fā)論文_第4頁](http://file4.renrendoc.com/view/124d01d8b4d2ac1a319f918430b71b35/124d01d8b4d2ac1a319f918430b71b354.gif)
![java個人博客開發(fā)論文_第5頁](http://file4.renrendoc.com/view/124d01d8b4d2ac1a319f918430b71b35/124d01d8b4d2ac1a319f918430b71b355.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄摘要: 3關鍵字: 4Abstract: 4Keyword: 51前言 11.1問題的提出 11.2課題的背景及意義 11.2.1課題背景 11.2.2課題意義 22JSP及其相關技術 22.1JSP技術 22.1.1JSP的運作模式 32.1.2JSP的特點 52.2Servlet技術 82.2.1Servlet技術概述 82.2.2Servlet與JSP之間的關系 92.2.3Servlet應用范圍及缺陷 92.2.4Servlet的生命周期 102.3JDBC技術 112.3.1JDBC概述 112.3.2JDBC兩層模型和三層模型 122.3.3使用JDBC的優(yōu)缺點 122.4JSP開發(fā)方式 133需求分析 143.1需求分析概述 143.2個人博客系統(tǒng)概述 153.3系統(tǒng)目標 153.4系統(tǒng)功能要求 164系統(tǒng)概要設計 174.1功能模塊設計及模塊功能描述 174.1.1功能模塊設計 174.1.2模塊功能描述 174.2數(shù)據(jù)庫設計 184.2.1概念結構簡介 184.2.2概念模型設計 184.2.3數(shù)據(jù)庫表設計 194.2.4系統(tǒng)模塊設計 214.3關系模型 224.4數(shù)據(jù)字典 235系統(tǒng)詳細設計 265.1系統(tǒng)的開發(fā)環(huán)境 265.1.1JSP支持平臺Tomcat6.0 265.1.2JDK概述及配置 275.1.3開發(fā)工具Dreamweaver8 285.2系統(tǒng)中JSP技術的應用 295.2.1用JavaBean封裝數(shù)據(jù)庫操作 295.2.2字符編碼過濾器EncodingFilter 305.3系統(tǒng)主要功能模塊設計 305.3.1相冊模塊 305.3.2日志模塊 325.3.3視頻模塊 345.3.4留言板模塊 356研究成果與前景展望 356.1研究成果概述 356.2軟件測試 366.2.1軟件測試的目標及方法 366.2.2難點和問題 376.3總結與展望 376.3.1畢業(yè)設計總結 376.3.2展望 38致謝 39參考資料 39附錄系統(tǒng)使用說明 40基于B/S架構的Java個人博客開發(fā)計算機科學與技術專業(yè)學生杜康指導教師呂方興摘要:本論文的研究課題是《基于B/S架構的Jsp個人博客開發(fā)》。本系統(tǒng)主要為用戶提供博客系統(tǒng)。通過系統(tǒng)的需求分析、概要設計和詳細設計,使該系統(tǒng)具備了數(shù)據(jù)庫信息檢索及維護的功能,并且實現(xiàn)了博客系統(tǒng)的相關操作功能。在本系統(tǒng)的設計與實現(xiàn)中主要使用了JSP(JavaServerPages)+JavaBean+Servlet動態(tài)網頁設計技術,并以WindowsXP為運行環(huán)境,采用瀏覽器/服務器結構(B/S),后臺數(shù)據(jù)庫是MySQL,Tomcat服務器作為JSP的支持平臺。采用開發(fā)工具采用的是Dreamweaver8、JDK1.6和編程工具Myeclipse。本系統(tǒng)主要由四個功能模塊組成:1.主模塊功能:設置用戶界面、接受用戶選擇、調用相應的程序塊。2.相冊模塊功能:接受博主提交信息,根據(jù)信息做出相應添加、刪除、修改操作,并對相應操作對數(shù)據(jù)庫進行操作,修改數(shù)據(jù)庫內容,以供前臺調用3.日志模塊功能:根據(jù)博主提交信息,對數(shù)據(jù)庫進行添加修改刪除,及時更新數(shù)據(jù)庫。以供前臺調用。4.視頻模塊功能:實現(xiàn)上傳或刪除視頻,并對數(shù)據(jù)庫進行及時操作,以供前臺操作。5.關于博主模塊功能:實現(xiàn)博主個人信息的添加、刪除、修改的功能,并及時對數(shù)據(jù)庫進行操作,以供前臺調用。6.留言本模塊功能:為瀏覽者提供留言途徑,后臺刪除、查看留言,并對數(shù)據(jù)庫進行即使操作,以供前臺調用。本系統(tǒng)重點完成了對相冊模塊和日志模塊的實現(xiàn),詳細設計了博客后五個模塊的功能,達到了幫助用戶對個人博客系統(tǒng)使用的目的。關鍵字:JavaBean、JDBC、ODBCBasedonB/SstructureisJavapersonalblogdevelopmentStudentmajoringinComputerscienceandtechnologyDukangTutorLvFangXingAbstract:Thisthesisresearchtopicis"basedonB/SstructureJsppersonalblogdevelopment".Thissystemmainlyprovideuserswithblogsystem.Throughthedemandanalysisofthesystem,highleveldesignanddetaileddesign,sothatthesystemhasthedatabaseinformationretrievalandmaintenancefunction,andfulfilledtheblogsystemrelatedoperationfunction.InthissysteminthedesignandimplementationofmainUSEStheJSP(JavawebServerJavaBean++Servletdynamicwebdesigntechnology,andwithWindowsXPasoperationenvironment,usebrowser/Serverstructure(B/S),backenddatabaseisMySQLServerasJSP,Tomcatsupportplatform.UsingdevelopmenttooluseisDreamweaver8,JDK1.6andprogrammingtoolsMyeclipse.Thissystemmainlyconsistsoffourfunctionmodules:1.Themainmodulefunction:settheuserinterface,accepttheusertoselect,callthecorrespondingprogramblocks.2albumsmodulefunction:acceptbloggersubmitinformation,accordingtotheinformationmakesthecorrespondingadd,delete,modifyoperation,andtothecorrespondingoperationonthedatabaseoperation,themodifieddatabasecontent,inordertoofferthefrontdeskcalls3.Logmodulefunction:accordingtothebloggersubmitinformationthatthedatabaseaddmodificationanddeletion,updatethedatabase.Forfrontdeskcalls.4.Videomodulefunction:toachieveuploadordeletevideo,andthedatabase,inordertooffertimelyoperationdeskoperation.5.Shutgetautorizationmodulefunction:toachievebloggerpersonalinformationtoadd,delete,modifythefunction,andpromptlytothedatabaseoperation,forfrontdeskcalls.6.Guestbookmodulefunction:provideyourvisitorwithmessageway,background,anddelete,viewermessagestothedatabase,forevenoperationdeskcalls.Thissystemmainlycompletedthealbummoduleandlogofthemodule,thedetaileddesignblogclosedafterfivemodulesofthesystem,achievesthehelpuserstopersonalblogsystemsusepurpose.Keyword:JavaBean,JDBC,ODBC1前言1.1問題的提出隨著互聯(lián)網的不斷發(fā)展,人們的生活發(fā)生了巨大的變化,人們獲取信息資料的方式也發(fā)生了巨大的改變,越來越多的人喜歡到網上去收集信息,特別是近幾年,隨著數(shù)字化產品的不斷普及,人們越來越喜歡上Blog(博客),當下個人博客得到了長足的發(fā)展,類似于新浪,網易,都有自己的博客系統(tǒng)。個人博客現(xiàn)在已漸漸成為人們交流,獲取網絡信息的主要途徑。為此,我提出了個人博客系統(tǒng)開發(fā)的課題。1.2課題的背景及意義1.2.1課題背景博客,又譯為網絡日志、部落格或部落閣等,是一種通常由個人管理、不定期張貼新的文章的網站。博客上的文章通常根據(jù)張貼時間,以倒序方式由新到舊排列。許多博客專注在特定的課題上提供評論或新聞,其他則被作為比較個人的日記。個人博客是博客的一種。自建獨立網站的博客主,有自己的域名、空間和頁面風格。是個人持續(xù)性的日記或評論。它是最傳統(tǒng)常見的博客。個人博客作者一般注重博客的內容,即使他們的博客從來沒有被除了自己以外的人閱讀過。博客經常不只是一個溝通的方法,它們成為了一種反映生活的方法或藝術創(chuàng)作。編寫博客可以抒發(fā)感情,引起人們的共鳴。很少個人博客出名和成為主流,但一些個人博客很快就聚集了許多讀者。研究該系統(tǒng)的意義在于通過個人博客記錄個人生活點滴:如同日記一般,可將自己每日生活中發(fā)生的事情記錄下來,并且跟朋友或網友們分享。傳達個人自由思想:博客是個自由的空間,可依照個人自由意志去撰寫任意的內容,傳達個人的自由思想。抒發(fā)分享個人情緒:博客常用來抒發(fā)個人情緒,把生活中的不滿、郁悶或憤怒宣泄到博客上,或是網友們分享個人心情。分享交流知識技術:如果有專長、興趣的人,可以借由撰寫博客來分享自己的知識與技術,并和網絡上得網友交流討論。認識同好交流朋友:借由博客的社群性質可以吸引興趣或性格相合的網友來觀看,并且借此認識結交新朋友。宣傳文化推銷產品:可以通過自己的企業(yè)博客來對外宣傳本企業(yè)文化,或者通過博客來做營銷。1.2.2課題意義今天,隨著網絡技術的不斷發(fā)展進步,網上流行的博客系統(tǒng)以其龐大的訪問量和低廉的成本受到越來越多的人的青睞。同時,由于網上博客系統(tǒng)所占據(jù)的主導地位,一個簡單的個人博客,就可以使用戶隨心所欲的達到自己的交流目的,這也為網上信息傳遞提供了一個平臺。而且,由于個人博客才剛剛興起,并且現(xiàn)在還處于免費階段,以后將會有越來越多的人加入到個人博客的行列中來,同時隨著法律的不斷完善,網上個人博客也收到了法律的保護,用戶可以在自己的博客上發(fā)表自己的言論,同他人進行思想上的交流。隨著社會的進步,個人博客系統(tǒng)也將成為網絡主流。借此,大部分人可以從網絡上通過個人博客進行網絡營銷。由此可見,個人博客系統(tǒng)將擁有一片廣闊的市場。不僅僅是人們日常生活的交流,更多的是通過博客學習到更多的知識。2JSP及其相關技術2.1JSP技術JSP是由SUN微軟系統(tǒng)公司(SunMicrosystemsInc)倡導、許多公司參與一起建立的一種動態(tài)網頁技術標準,其在動態(tài)網頁的建設中有其強大而特別的功能。目前在國外的眾多網站特別是涉及電子商務的網站中,已經大量使用了JSP技術。JSP(JavaServerPages,服務器端動態(tài)網頁)既然名為“服務器端”動態(tài)網頁,可想而知,JSP必定是在“服務器”建立的動態(tài)網頁。更明確地說,JSP是能在WebServer(尤其是JSWDK)端整合Java語言至HTML網頁的環(huán)境中,利用HTML網頁內含的Java程序代碼取代原有的CGI、ISAPI或者IDC的程序,以便執(zhí)行原有CGI/WinCGI、ISAPI的功能。2.1.1JSP的運作模式JSP能在WebServe(尤其是JSWDK)端整合Java語言至HTML網頁的環(huán)境中,然后利用HTML網頁內含的Java程序代碼取代原有的CGI、ISAPI或者IDC的程序,以便執(zhí)行原有CGI/WinCGI、ISAPI的功能。相對應用于Client端(指的是瀏覽器端的HTML文件)內嵌的描述語言,Sun公司提供的JSWDK-1.0.1也支持類似的描述語言,它便是Java語言。先來看看JSP的運作模式。由于JSP放置在Web服務器上,它在解析使用者由表單穿送過來的字段數(shù)據(jù)后,接著通過適當?shù)倪壿嬌蓸藴蔋TML文件,然后傳送給客戶端,使用者看到的是一般符合HTML格式的文件內容。因為JSP是在JSWDK-1.0.1上執(zhí)行的,所以無論使用者使用的是哪一種平臺下的瀏覽器,皆能欣賞由JSP產生的網頁內容。在傳統(tǒng)的網頁HTML義件中加入Java程序片段(scriptlet)和JSP標簽(tag),就構成了JSP網頁(.jsp)。web服務器在遇到訪問JSP網頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結果以HTMI格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網頁以及發(fā)送E-mail等,這就是建立動態(tài)網站所需要的功能。所有程序操作都在服務器端執(zhí)行。網絡上傳送給客戶端的僅是得到的結果,JSP對客戶瀏覽器的要求很低,支持無Plugin,ActiveX,無JavaApplet、甚至無Frame的瀏覽器。JSP網頁包含以下的組件:JSP指示。JSP頁面使用JSP指示將指令傳遞到JSP引擎。其中包括:①JSP頁面指示傳遞與頁面相關的信息,例如緩沖區(qū)和線程信息或者出錯處理;②語言指示指定腳本語言以及所有的擴展,包含指示可以被用來在頁面中包含一個外部的文件,被包含的文件可能是另一個JSP文件;③標簽庫指示指出頁面可以調用的客戶標簽庫類型。JSP標簽。絕大多數(shù)JSP處理將通過與JSP相關的基于XML的標簽完成。JSP1.0中包含大量標準標簽,這些標簽作為核心標簽包括:JSP:useBcan這個標簽盧明對一個JavaBeans組件實例的使用。如果法組件的實例不存在,JavaBeans組件將實例化和注冊這個標簽;JSP:setProperty這個標簽在組件的實例中設置一個屬性的值;JSP:getProperty這個標簽獲取一個組件的實例的屬性佰,將其轉化為字符串,并民將它放人隱含對象“out”中;JSP:include和JSP:forward。1.1版本包含更多的標準標簽。標簽的好處在于它們易于在應用程序間使用和共享。基于標簽的語法的真正威力來自于客戶標簽庫的開發(fā);使得工具供應商或其他人員能夠為特定的要求創(chuàng)建和分派標簽。腳本組件。JSP頁面可以在頁面中包含小的腳本、稱之為小腳本(scriptlet)。小腳本是一個代碼片段,在請求的處理過程中被執(zhí)行。小腳本可以和頁面中的靜態(tài)組件組合來創(chuàng)建動態(tài)生成的頁面。腳本在“<%”和“%>”標志中被描述。在這對標志中的所有東西都會被腳本描述語言引擎執(zhí)行。JSP規(guī)范支持所有常用的腳本組件,包括表達式和聲明。JSP頁面的應用模型。JSP頁面由JSP引擎執(zhí)行,引擎安裝在Web服務器或者支持JSP的應用服務器上。JSP引擎接受客戶端對JSP頁面的請求,并且生成JSP頁面給客戶端的響應。JSP頁面通常被編譯成為JavaServlet。后者是一個標準的Java擴展,頁面開發(fā)人員能夠訪問全部的Javs應用環(huán)境,以利用Java技術的擴展性和可移植性。當JSP頁面第一次被調用時,如果它還不存在,就會被編譯成為一個JavaServlet類,并且存儲在服務器的內存中。這使得以后對該頁面的調用有非常快的響應。(避免了CGI—BIN為每個HTTP請求生成一個新的進程的問題,或是在服務器端使用引用所引起的運行時的語法分析問題)。JSP頁面可以包含在多種不同的應用體系結構或者模型中,它的頁面可以應用于由不同協(xié)議、組件和格式所組成的聯(lián)合體中。例如在一個簡單實現(xiàn)中,瀏覽器直接調用JSP頁面,JSP頁面自動生成被請求的內容(AD調用JDBC直接從數(shù)據(jù)庫中獲取信息),并且創(chuàng)建標準的HTML,作為結果發(fā)送回瀏覽器。這個模型基本上用JSP頁面(編譯成為JavaServlet)代替了CGI—B則概念。這個方法使用戶能夠簡單而快速地編程,并且很容易根據(jù)請求和資源狀態(tài)生成動態(tài)內容。這個結構在許多應用上工作良好,但不能擴展到以下情況,即大量的基于Web的并發(fā)客戶訪問稀少的企業(yè)資源。因為每個客戶必須建立或者共享一個到可用內容資源的連接。例如,如果JSP頁面訪問數(shù)據(jù)庫,可能生成許多到數(shù)據(jù)庫的連接,將極大地影響到數(shù)據(jù)庫的性能。2.1.2JSP的特點和傳統(tǒng)的CGI相比較,JSP有相當?shù)膬?yōu)勢。首先,在速度上,傳統(tǒng)的CGI程序需要使用系統(tǒng)的標準輸入輸出設備來實現(xiàn)動態(tài)網頁的生成,而JSP是直接和服務器相關聯(lián)的。而且對于CGI來說,每一個訪問者就需要新增加一個進程來處理,進程不斷建立和銷毀對于作為Web服務器的計算機將是不小的負擔。其次,JSP是專門為Web開發(fā)而設計的,其目的是為了建立基于Web的應用程序,包含了一整套的規(guī)范和工具。使用JSP技術可以很方便地將一大堆JSP頁面組合成為一個Web應用程序。和ISPAI和NSAPI相比較,JSP的開發(fā)速度要快得多,開發(fā)難度也要小得多,在編譯為JavaServlet以后,配合目前最新的JIT(JustInTime)的Java解釋器,其執(zhí)行速度也慢不了多少。而且,ISAPI和NSAPI這種和Web服務器過于緊密結合的技術使用時一旦出現(xiàn)錯誤,很容易是Web服務器崩潰,而JSP就沒有這個缺點。JSP真正的對手是ASP和PHP,還有最近才問世的ASP.net,在Web技術方面ASP,PHP和JSP的比較見下表。ASPJSPPHPWeb服務器IIS,PWSApache,IIS,PWS,iPlanetNetscapeServer,等Apache,IIS,PWS,NetscapeServer等運行平臺Windows各種UNIX(Solaris,Linux,AIX,IRIX等),Windows,MacOS等各種UNIX(Solaris,Linux,AIX,IRIX等),Windows組件技術COMJava,EJBCOM,JavaBeans自定義TAG語法無有無開放性無多家合作,包括SUN,IBM,BEAWeblogicNetscape,Oracle自由軟件腳本語言支持VBScript,JscriptJava,EMAC-Script,WEBL等PHP建立大型Web應用程序可以可以不宜程序執(zhí)行速度快極塊極塊學習難度低較低低Session管理有有有統(tǒng)一的數(shù)據(jù)庫連接有,ADO,ODBC有,JDBC無后綴名AspJspphp,php3,phps表2-1JSP,ASP,PHP比較Web服務器和運行平臺ASP目前僅僅被支持于MicrosoftInternetInformationServer(IIS)和PersonalWebServer(PWS),由于IIS和PWS僅僅有Windows下的版本,故ASP目前只能在Windows平臺下使用。盡管有第三方的插件號稱可以在UNIX下使用ASP,但對基于COM組件技術的ASP來說,在沒有COM支持的UNIX平臺下只能是一個“玩具”。JSP僅僅是一個規(guī)范,盡管通過的論述可以得出JSP一般要用Javal來實現(xiàn)的論斷,但作為跨平臺的語言,Java可以在許多平臺下使用。這樣,JSP也就顯而易見的跨平臺的了。目前的JSP的確可以在多種Web服務器和操作系統(tǒng)下使用。如ApacheWebServer和MicrosoftIIS等。ApacheWebServer是世界上占有率最高的Web服務器,可以在包括SUNSolaris,IBMAIM,SGIIRIX,Linux和Windows在內的許多操作系統(tǒng)下運行。ApacheWebServer下JSP的實現(xiàn)可以通過免費的ApacheJserv和GNUJSP,Jakarta-Tomcar實現(xiàn)。也可以使用商業(yè)的JRUN(LiveSoftware),Websphere(IBM),Weblogic(BEA)來實現(xiàn)。MicrosoftIIS本身支持JSP,但可以通過JRUN,Weblogic,Websphere來實現(xiàn)。還可以使用應用服務器添加JSP支持的NetscapeEnterpriseServer及由之發(fā)展而來的可以直接支持JSP的iPlanetWebServer等等。PHP本身就對各種操作系統(tǒng)和Web服務器作了支持,PHP目前可以作為Apache的一個附加模塊直接編譯進入Apache中去,由于Apache支持多種操作系統(tǒng),PHP相應地也就可以在各種操作系統(tǒng)上實現(xiàn)。PHP也可以CGI方式或ISAPI方式到IIS或PWS中去。組件技術ASP和JSP對組件技術的支持已經很完善了,而PHP支持COM和JavaBeans。卻是很晚,且不完善,所以很難在大型Web應用程序方面將很難與JSP和ASP競爭。但由于PHP技術本身的易學易用,加上眾多的函數(shù)支持和開放源代碼的特性,在中小型Web站點的開發(fā)上,PHP還是會占有一席之地的。其實,JSP本身對于ASP和PHP并沒有明顯的優(yōu)勢,JSP的強大是因為其后面有強大的Java技術做支持。包括JavaBeans和J2EE技術在內的Java技術是JSP強大生命力的所在。Microsoft最新推出的ASP.net技術和ASP技術相比有了許多激動人心的進步,但是從企業(yè)級應用的角度看,JSP技術仍然有相當?shù)膬?yōu)勢。有理由認為,在將來的Web開發(fā)中,中小型站點將出現(xiàn)JSP,ASP.net和PHP三分天下的局面,但是對于大型的電子商務站點,JSP及J2EE技術將成為首選。2.2Servlet技術2.2.1Servlet技術概述Servlet(Java服務器小程序)是用Java編寫的服務器端程序,是由服務器端調用和執(zhí)行的任何Java類。Servlet是使用JavaServlet應用程序設計接口(API)及相關類和方法的Java程序。除了JavaServletAPI,Servlet還可以使用用以擴展和添加到API的Java類軟件包。Servlet是Java2.0中新增的一個全新功能,是一種采用Java技術來實現(xiàn)CGI功能的一種技術。Servlet本身與協(xié)議無關,與平臺也無關。瀏覽器端也就是客戶端運行的Java程序叫做Applet,而服務器端運行的程序叫做Servlet。JavaServlet運行于Java-EnableWeb服務器中,可以被看作是運行在請求和面向請求服務器上的模塊。JavaServlet能夠像CGI腳本一樣動態(tài)的擴展Web服務器的功能,并采用請求—響應模式提供Web服務。Servlet和CGI一樣都是運行在Web服務器上,用來生成Web頁面的。最早支持Servlet技術的是Javasoft的JavaWebServer。此后,一些其它的基于Java的WebServer開始支持標準的ServletAPI。ServletAPI是用來編寫Servlet的一套編程接口,編寫Servlet不需要關心Servlet是如何被加載、Servlet運行的服務環(huán)境是什么、傳輸數(shù)據(jù)的協(xié)議有什么不同等。因而,Servlet能夠運行在不同的Web服務器中,Servlet避免了CGI的這些缺陷。Servlet看起來像是通常的Java程序。Servlet倒入特定的屬于JavaServletAPI的包。因為是對象字節(jié)碼,可動態(tài)的從網絡加載,可以說Servlet對Server就如同Applet對Client一樣,但是,由于Servlet運行于Server中,它們并不需要一個圖形用戶界面。Servlet的主要功能在于交互式的瀏覽和修改數(shù)據(jù),生成動態(tài)Web內容。這個過程為:用戶發(fā)送請求至服務器端。服務器將請求信息發(fā)送至Servlet。Servlet生成響應內容并將其傳給Server。響應內容動態(tài)生成,通常取決于客戶端的請求。服務器將響應返回給客戶端。2.2.2Servlet與JSP之間的關系當JSP成為開發(fā)動態(tài)網站的主要技術時,Servlet在開發(fā)中占據(jù)了非常重要的位置。網站開發(fā)具有兩種模式,其中的一種模式同時使用到了JSP和Servlet。這種模式結合了JSP和Servlet技術,充分利用了JSP和Servlet兩者的優(yōu)點。JSP技術主要用來表現(xiàn)頁面,而Servlet技術主要用來完成大量的邏輯處理。也就是說,JSP主要用來發(fā)送給前端的用戶,而Servlet主要來響應用戶的請求,完成請求的邏輯處理。Servlet充當著控制著的角色,用來負責響應用的事務處理。JSP本身沒有任何的業(yè)務處理邏輯,它只簡單的檢索Servlet創(chuàng)建的JavaBean或者對象,再將動態(tài)的內容插入到預定義的模塊中。Servlet創(chuàng)建JSP需要的JavaBean和對象,再根據(jù)用戶的行為,決定處理哪個JSP頁面并發(fā)送給用戶。由于Servlet更適合于后臺開發(fā)者的使用,而且Servlet本身需要更多的編程技術,因此Servlet本身在頁面上表現(xiàn)形式上非常的欠缺,遠遠不如JSP。在實際的開發(fā)過程中,往往先把JSP頁面開發(fā)出來,然后再將JSP代碼轉換成Servlet。這樣做的好處是充分利用了JSP的頁面表現(xiàn)能力,避免了Servlet在頁面表現(xiàn)方面的嚴重不足,大大縮短了開發(fā)周期,各盡所能。2.2.3Servlet應用范圍及缺陷1.Servlet能完成以下幾種功能:創(chuàng)建并返回一個包含基于客戶請求性質的動態(tài)內容的完整的HTML頁面。創(chuàng)建可嵌入到現(xiàn)有HTML頁面中的一部分HTML頁面(HTML片段)與其他服務器資源(包括數(shù)據(jù)庫和基于Java的應用程序)進行通信用多個客戶機處理連接,接收多個客戶機的輸入,并將結果廣播到多個客戶機上。當允許在以單連接方式傳送數(shù)據(jù)的情況下,在瀏覽器上打開服務器至Applet的新連接,并將該連接保持在打開狀態(tài)。在客戶機和服務器簡單、高效的執(zhí)行會話的情況下,Applet也可以啟動客戶瀏覽器和服務器之間的連接??梢酝ㄟ^定制協(xié)議或標準進行通信。對特殊的處理采用MIME類型過濾數(shù)據(jù)。將定制的處理提供給所有服務器的標準例行程序,Servlet可以修改如何認證用戶。2.Servlet的一些應用范圍:處理HTTP請求Servlet能夠處理HTTP請求,并且能夠傳遞HTTP響應到客戶端。用于處理HTML表單通過HTTP產生提交數(shù)據(jù),然后Servlet可以處理這些數(shù)據(jù)。允許人們之間的合作一個Servlet能并發(fā)處理多個請求,可以使用同步請求支持系統(tǒng)。轉送請求Servlet可以轉送請求給其他的服務器和Servlet。這就允許在鏡像同樣內容的幾個服務器之間平衡負載。按照任務類型或組織范圍,可以允許被用來在幾個服務器中劃分邏輯上的服務區(qū)。允許定以激活代理Servlet編寫者們可以定義彼此之間共同工作的激活代理,每個代理者是一個Servlet,而且代理者能夠在他們之間傳送數(shù)據(jù)。2.2.4Servlet的生命周期Servlet的生命周期始于將它裝入Web服務器的內存時,并在終止或重新裝入Servlet時結束。1.初始化在下列時刻裝入Servlet:如果已經配置自動裝入選項,則在啟動服務器是自動裝入在服務器啟動后,客戶機首次向Servlet發(fā)出請求時重新裝入Servlet時裝入Servlet后,服務器創(chuàng)建一個Servlet實例并且調用它的init()方法。在初始化階段,Servlet初始化參數(shù)被傳遞給Servlet配置對象。2.請求處理對于到達服務器的客戶機請求,服務器創(chuàng)建特定于請求的一個“請求”對象和一個“響應”對象。服務器調用Servlet的service()方法,該方法用于傳遞“請求”和“響應”對象。Service()方法從“請求”對象或的請求信息,同時處理該請求,并用“響應”對象的方法將響應傳回給客戶機。Service()方法也可以調用其他方法來處理請求,例如doGet()、doPost()或其他的方法。3.終止當服務器不再需要Servlet,或重新裝入Servlet的新實例時,服務器會調用它的destroy()方法,來終止當前Servlet實例的運行。2.3JDBC技術2.3.1JDBC概述JDBC是Java數(shù)據(jù)庫連接(JavaDataBaseConnectivity)的簡稱,是一種可用于執(zhí)行SQL語句的JavaAPI(ApplicationProgrammingInterface應用程序設計接口)。它由一些Java語言編寫的類和界面組成。JDBC為數(shù)據(jù)庫應用開發(fā)人員、數(shù)據(jù)庫前臺工具開發(fā)人員提供了一種標準的應用程序設計接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應用程序。Java具有健壯、安全、易用等特性,而且支持自動網上下載,本質上是一種很好的數(shù)據(jù)庫應用的編程語言。它所需要的是Java應用如何同各種各樣的數(shù)據(jù)庫連接,JDBC正是實現(xiàn)這種連接的關鍵。JDBCAPI為Java程序提供了一個統(tǒng)一無縫地操作各種數(shù)據(jù)庫的接口,程序員編程時,可以不關心他所要操作的數(shù)據(jù)庫是哪個廠家的產品,從而提高了軟件的通用性。JDBC現(xiàn)在可以連接的數(shù)據(jù)庫包括:Xbase、Oracle、Sybase、Access以及Paradox等。JDBC在Web和Internet應用程序中的作用和ODBC在Windows系列平臺應用程序中的作用類似。JDBC擴展了Java語言的功能。使用JDBC,向各種關系型數(shù)據(jù)庫發(fā)送SQL語句成為一件很容易的事。將Java和JDBC結合起來,將會使程序經過一次編譯即可在其他的任何平臺上運行。通過使用JDBC,開發(fā)人員可以很方便地將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫。也就是說,開發(fā)人員可以不必寫一個程序訪問Sybase,寫另一個程序訪問Oracle,再寫一個程序訪問Microsoft的SQLServer。用JDBC寫的程序能夠自動地將SQL語句傳送給相應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。不但如此,使用Java編寫的應用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上編寫不同的應用。Java和JDBC的結合可以讓開發(fā)人員在開發(fā)數(shù)據(jù)庫應用時真正實現(xiàn)“WriteOnce,RunEverywhere!”2.3.2JDBC兩層模型和三層模型JDBC支持兩層模型,也支持三層模型訪問數(shù)據(jù)庫。兩層模型中,一個javaApplet或者一個Java應用直接同數(shù)據(jù)庫連接。這就需要能直接被訪問的數(shù)據(jù)庫進行連接的JDBC驅動器。用戶的SQL語句被傳送給數(shù)據(jù)庫,而這些語句執(zhí)行的結果將被傳回給用戶。數(shù)據(jù)庫可以在同一機器上,也可以另一機器上通過網絡進行連接。這被稱為“Client/Server”結構,用戶的計算機作為Client,運行數(shù)據(jù)庫的計算機作為Server。這個網絡可是intranet,比如連接全體雇員的企業(yè)內部網,當然也可以是internet。在三層模型中,命令將被發(fā)送到服務的“中間層”,而“中間層”將SQL語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理SQL語句并將結果返回“中間層”,然后“中間層”將它們返回用戶。MIS管理員將發(fā)現(xiàn)三層模型很有吸引力,因為“中間層”可以進行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,另一個優(yōu)勢就是如果有一個“中間層”用戶就可以使用一個易用的高層的API,這個API可以由“中間層”進行轉換,轉換成底層的調用。而且,在許多情況下,三層模型可以提供更好的性能。到目前為止,“中間層”通常還是用C或C++實現(xiàn),以保證其高性能。但隨著優(yōu)化編譯器的引入,將java的字節(jié)碼轉換成高效的機器碼,用java來實現(xiàn)“中間層”將越來越實際。而JDBC是允許從一個java“中間層”訪問數(shù)據(jù)庫的關鍵。2.3.3使用JDBC的優(yōu)缺點1.JDBC的優(yōu)點JDBCAPI與ODBC十分相似,有利于用戶理解JDBC使得編程人員從復雜的驅動器調用命令和函數(shù)中解脫出來。可以致力于應用程序中的關鍵地方。JDBC支持不同的關系型數(shù)據(jù)庫,使得程序的可移植性大大加強。用戶可以使用JDBC-ODBC橋驅動器將JDBC函數(shù)轉換為ODBC。JDBCAPI是面向對象的,可以讓用戶把它的常用方法封裝為一個類,以備后用。2.JDBC的缺點使用JDBC,訪問數(shù)據(jù)記錄的速度會受到一定程度的影響。JDBC結構中包含了不同廠家的產品,這就給更改數(shù)據(jù)源帶來很大的麻煩。2.4JSP開發(fā)方式JSP技術規(guī)范種給出了兩種使用JSP開發(fā)Web應用的方式,這兩種方式可以歸納為模型一和模型二,這兩種模型的主要差別在于它們處理業(yè)務的流程不同。模型一,如下圖所示,稱之為JSP+JavaBeans模型。在這一模型中,JSP頁面獨自響應請求并將處理結果返回給客戶,所有的數(shù)據(jù)通過JavaBean來處理,JSP實現(xiàn)頁面的表現(xiàn)。圖2-2圖2-2JSP模型一從上圖可以看出,模型一也實現(xiàn)了頁面表現(xiàn)和業(yè)務邏輯相分離。然而使用這種方式就要在JSP頁面使用大量的Java代碼,當需要處理的業(yè)務邏輯很復雜時,這種情況會變得非常糟糕。大量嵌入式代碼使整個頁面程序變得異常復雜。對于前端界面設計的網頁開發(fā)人員來說,這簡直是一場噩夢。所以,模型一不能滿足大型應用的需要,但是對于小型應用,因為該模型簡單,不用涉及諸多要素,從而可以很好地滿足小型應用的需要,所以在簡單應用中,可以考慮模型一。模型二,如下圖所示,稱之為JSP+Servlet+JavaBeans模型。這一模型結合了JSP和Servlet技術,充分利用了JSP和Servlet兩種技術原有的優(yōu)勢。這個模型使用JSP技術來表現(xiàn)頁面,使用Servlet技術完成大量的事務處理,使用圖3:圖2-3JSP模型二Bean來存儲數(shù)據(jù)。Servlet用來處理請求的事務,充當一個控制者的角色,并負責向客戶發(fā)送請求。它創(chuàng)建JSP需要的Bean和對象,然后根據(jù)用戶請求的行為,決定將哪個JSP圖2-3JSP模型二從開發(fā)的觀點看,模型二具有更清晰的頁面表現(xiàn),清楚的開發(fā)角色的劃分,可以充分利用開發(fā)團隊中的網頁設計人員和Java開發(fā)人員。這些優(yōu)勢在大型項目中表現(xiàn)得尤為突出,網頁設計人員可以充分發(fā)揮自己的美術和設計才能來充分表現(xiàn)頁面,程序編寫人員可以充分發(fā)揮自己的業(yè)務邏輯處理思維,實現(xiàn)項目中的業(yè)務處理。另外,從設計結構來看,這種模型充分體現(xiàn)了模型視圖控制器(MVC)的設計架構。事實上,現(xiàn)存的很多開發(fā)框架都是基于這種模型的,充分實現(xiàn)了MVC,例如ApacheStruts框架和JavaServerFaces框架。3需求分析3.1需求分析概述需求分析是軟件定義時期的最后一個階段,他的任務是準確回答“系統(tǒng)做什么?”這個問題。在可行性分析階段已經粗略的了解了用戶的需求,甚至還提出了可執(zhí)行方案,但是,可行性研究的基本目的是用較小的成本在較短的時間內確定是否存在可行方案,因此忽略了許多細節(jié)。所以可行性分析不能代替需求分析,它實際上沒有準確說出“系統(tǒng)必須作什么”這個問題。需求分析的任務還不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。需求分析的結果是系統(tǒng)開發(fā)的基礎,關系到工程的成敗和軟件的質量。因此,必須用行之有效的方法對軟件進行嚴格的審查驗證。3.2個人博客系統(tǒng)概述個人博客系統(tǒng)是主要為注冊用戶提供一個發(fā)布個人信息和寫作的平臺。用戶可以在自己的博客里發(fā)布一些自己的文章和相關信息。個人博客系統(tǒng)可以幫助用戶管理個人的所有發(fā)布信息,而且用戶可以對自己的信息進行任意的修改。本博客系統(tǒng)主要是為了用戶提供一個網上空間,讓用戶可以在空閑的時間進入自己的領域隨意玩轉。3.3系統(tǒng)目標博客網站系統(tǒng)的總目標是:在計算機網絡,數(shù)據(jù)庫和先進的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,開發(fā)一個具有開放體系結構的、易擴充的、易維護的、具有良好人機交互界面的個人博客網站,為網絡用戶提供進行在線交流的網絡平臺。通過個人博客網站可以結交更多的朋友,表達更多的想法,它隨時可以發(fā)布文章。具體的要求如下:博主可以簡單的添加和刪除文章;獨立于具體的數(shù)據(jù)庫平臺。對于與數(shù)據(jù)庫交互的部分充分考慮兼容性;容易在原先基礎上進行二次開發(fā);中間基礎平臺的無型性。盡量采用開放的標準技術,達到跨平臺運行的效果;為了達到以上的開發(fā)目的,個人博客網站應遵循一定的設計和開發(fā)與原則:模塊接口定義清晰;基礎類庫和接口設計合理,盡量建立叮擴展的接口和抽象類;數(shù)據(jù)庫操作使用標準SQL語句,如果一定要使用有差別的SQL語句,則盡量集中在一起,以減少將來維護和移植的難度;采用開放的標準和工具等3.4系統(tǒng)功能要求博客系統(tǒng)通常提供三類服務:信息服務,它可分為:文章顯示,熱點文章推薦,博主風采查詢服務:可以根據(jù)文章內容,文章標題,留言內容,留言標題等進行模糊查詢留言服務:游客可以對系統(tǒng)進行留言或發(fā)表看法意見在此,我參考現(xiàn)有的幾大博客網站如QQ空間,新浪博客等,采用Browser/Server結構,將個人博客網站劃分為兩個子系統(tǒng):前臺,后臺。在前臺的功能實現(xiàn)上,可以分為以下幾個部分:相冊查看視頻查看博主信息查看日志查看留言板查看友情鏈接聯(lián)系我通過計算機網絡將前臺與后臺的數(shù)據(jù)庫相連,網站管理員將從前臺得到的信息進行處理,實現(xiàn)視頻、相冊等各部分的管理相冊、照片管理視頻管理日志管理博主個人信息管理友情鏈接管理留言板聯(lián)系方式管理4系統(tǒng)概要設計4.1功能模塊設計及模塊功能描述4.1.1功能模塊設計個人網站個人網站相冊模塊日志模塊視頻模塊友情連接模塊關于博主模塊留言本模塊前臺設計添加刪除修改相冊添加刪除修改照片添加刪除修改日志分類添加刪除修改日志添加刪除視頻添加刪除修改友情鏈接添加刪除修改博主信息添加刪除留言瀏覽頁面瀏覽者留言模塊4.1.2模塊功能描述相冊模塊動態(tài)實現(xiàn)照片的添加、刪除、修改;日志模塊動態(tài)實現(xiàn)日志的添加、刪除、修改;視頻模塊動態(tài)實現(xiàn)視頻的添加、刪除、修改友情鏈接模塊動態(tài)實現(xiàn)友情鏈接的添加、刪除、修改;關于博主模塊動態(tài)實現(xiàn)博主個人簡歷的添加、刪除、修改;留言板模塊動態(tài)實現(xiàn)留言板內容的添加、刪除、修改;4.2數(shù)據(jù)庫設計4.2.1概念結構簡介概念結構設計是將需求分析得到的用戶需求抽象為信息結構(即概念模型)的過程。它是整個數(shù)據(jù)庫設計的關鍵。即在需求分析的基礎上,設計出能夠滿足客戶業(yè)務要求的各種實體,也就是各種對象,以及它們之間的相互關系。為后面的邏輯結構設計打好基礎。描述概念模型的有力工具是E-R模型。軟件系統(tǒng)本質上是信息處理系統(tǒng),因此,在軟件系統(tǒng)的整個開發(fā)過程中都必須考慮兩方面的問題“數(shù)據(jù)”及對數(shù)據(jù)的“處理”。在需求分析階段既要分析用戶的數(shù)據(jù)要求(既需要有哪些數(shù)據(jù)數(shù)據(jù)、數(shù)據(jù)本身有什么性質、數(shù)據(jù)的結構等等),又要分析用戶的處理要求(既對數(shù)據(jù)進行哪些處理、每個處理的邏輯功能等等)。為了把用戶的數(shù)據(jù)要求清晰明確地表達出來,系統(tǒng)分析員通常建立一個概念性的數(shù)據(jù)模型(也稱信息模型)。概念性信息模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點來對數(shù)據(jù)和信息建模。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的現(xiàn)實環(huán)境,且與在軟件系統(tǒng)中的實現(xiàn)方法無關。最常用的表示概念數(shù)據(jù)模型的方法,是實體聯(lián)系方法。這種方法用E-R圖描述現(xiàn)實世界中的實體,而不涉及這些實體在系統(tǒng)中的實現(xiàn)方法。用這種方法表示的概念性數(shù)據(jù)模型又稱為ER模型。4.2.2概念模型設計(1)相關概念最常用的表示概念數(shù)據(jù)模型的方法是實體—聯(lián)系方法(entity—relationshipapproach)這種方法用ER圖描述現(xiàn)實世界中的實體,而不涉及這些實體在系統(tǒng)中的實現(xiàn)方法。用這種方法表示的概念性數(shù)據(jù)模型又稱ER模型。通常,軟件系統(tǒng)中許多數(shù)據(jù)是長期保存的,為了減少冗余,簡化修改數(shù)據(jù)的過程,應該對數(shù)據(jù)進行規(guī)范化。ER模型中包含“實體”、“聯(lián)系”和“屬性”等三個基本成分。A.實體實體是客觀世界中存在的且可相互區(qū)分的事物。實體可以是人,也可以是物,也可以是具體事物,也可以是抽象概念。B.聯(lián)系客觀世界中的事物彼此之間往往是有聯(lián)系的。聯(lián)系可以分為三類:一對一的關系、一對多的關系和多對多的關系。C.屬性屬性是實體或聯(lián)系所具有的性質,通常一個實體由若干屬性來刻畫。(2)范式通常用“范式“(NormalForm)定義消除數(shù)據(jù)的冗余程度。第一范式冗余程度最大,第五范式冗余程度最小。但是,范式級別越高,存儲同樣數(shù)據(jù)就需要分解成更多的表。A.第一范式每個屬性值都是原子值,即僅僅是一個簡單值而不含內部結構。B.第二范式屬于第一范式且每一個非主屬性完全函數(shù)依賴于碼。C.第三范式屬于第二范式且每一個非主屬性即不部分依賴于碼,也不傳遞依賴于碼4.2.3數(shù)據(jù)庫表設計pb_album(相冊)pb_blog(日志)pb_blog_ctg(日志分類)pb_info(個人資料)pb_link(友情鏈接)pb_message_book(留言本)pb_photo(照片)pb_video(視頻)4.2.4系統(tǒng)模塊設計模塊表:子系統(tǒng)編號英文名稱中文名稱業(yè)務職能安裝地點備注1Pb_blog日志添加、刪除、修改2Pb_video視頻添加、刪除、修改3Pb_album相冊添加、刪除、修改4Pb_info關于我添加、刪除、修改5Pb_photo照片添加、刪除、修改6Pb_blog_ctg日志分類添加、刪除、修改7Pb_link友情鏈接添加、刪除、修改8Pb_message_book留言本添加、刪除、修改模塊功能表編號:1標示符:Pb_blog名稱:日志功能:實現(xiàn)對日志的添加修改和刪除,供瀏覽者閱讀編號:2標示符:Pb_video名稱:視頻功能:實現(xiàn)對視頻的添加修改和刪除,供瀏覽者閱讀編號:3標示符:Pb_album名稱:相冊功能:實現(xiàn)對相冊的添加修改和刪除,實現(xiàn)照片的分類,供瀏覽者瀏覽編號:4標示符:Pb_info名稱:個人簡歷功能:實現(xiàn)對個人簡歷的添加修改和刪除,供瀏覽者閱讀編號:5標示符:Pb_photo名稱:照片功能:實現(xiàn)對照片的添加修改和刪除,供瀏覽者瀏覽編號:6標示符:Pb_blog_ctg名稱:日志分類功能:實現(xiàn)對日志分類的添加修改和刪除,實現(xiàn)對照片的分類,供瀏覽者閱讀編號:7標示符:Pb_link名稱:友情鏈接功能:實現(xiàn)對友情鏈接的添加修改和刪除,供瀏覽者鏈接編號:1標示符:Pb_message_book名稱:留言本功能:實現(xiàn)對留言本的添加修改和刪除,供瀏覽者留言4.3關系模型關系模式:日志:(文章號文章標題文章類型號文章關鍵字文章正文更新日期);日志分類表:(文章類型號文章類型名類型描述);相冊表:(相冊號相冊名相冊描述)照片表:(照片號照片描述照片縮略圖地址照片地址照片所屬相冊)視頻表:(視頻編號視頻名稱視頻地址視頻圖像地址視頻描述);友情鏈接表:(鏈接號鏈接網站名鏈接網站網址鏈接網站描述);個人信息表:(姓名密碼郵箱地址msnQQ電話主頁介紹);留言本表:(留言編號留言用戶名稱留言者郵箱地址留言日期)具體二維格式表:1、博客文章表:文章號(主鍵)文章標題文章類型號文章關鍵字文章正文更新日期Int(11)Varchar(30)Int(11)texttextdate2、文章類型表:文章類型號(主鍵)文章類型名類型描述Int(11)Varchar(10)text3、相冊表相冊號(主鍵)相冊名相冊描述Int(11)Varchar(20)Text4、照片表照片號(主鍵)照片描述照片縮略圖地址照片地址照片所屬相冊Int(11)TextVarchar(100)Varchar(100)Int(11)5、視頻表視頻號(主鍵)視頻名視頻地址視頻封面地址視頻描述Int(11)Varchar(20)Varchar(50)Varchar(50)Text6、留言本表留言本號(主鍵)用戶名留言者郵箱留言日期Int(11)Varchar(20)Varchar(50)Date7、友情鏈接表友情鏈接號(主鍵)鏈接網站名鏈接網站網址網站描述Int(11)Varchar(100)Varchar(200)Text8、版主信息表信息號姓名密碼郵箱QQMSN地址電話主頁介紹Int(11)Varchar(16)Varchar(16)Varchar(20)Int(11)Varchar(16)Varchar(16)Int(11)Varchar(20)text4.4數(shù)據(jù)字典數(shù)據(jù)字典是關于數(shù)據(jù)的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義集合。任何字典的最主要的用途都是供人查閱對不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析及設計過程中給人提供關于數(shù)據(jù)的描述信息。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而,沒有數(shù)據(jù)流圖,數(shù)據(jù)字典也就難于發(fā)揮作用。只有數(shù)據(jù)流圖和數(shù)據(jù)字典共同放在一起,才能共同構成系統(tǒng)的規(guī)范化說明。數(shù)據(jù)字典最主要的用途就是作為分析階段的工具。在數(shù)據(jù)字典中建立的一組嚴密一致的定義很有助于改進分析員與用戶之間的通信,因此,將消除許多可能的誤解。對數(shù)據(jù)的這一系列嚴密一致的定義也有助于改進在不同的開發(fā)人員或不同的開發(fā)小組之間的通信。數(shù)據(jù)字典中包含的每個數(shù)據(jù)元素的控制信息是很有價值的。因為列出了使用一個給定的數(shù)據(jù)元素的所有程序模塊,所以很容易估計改變一個數(shù)據(jù)將產生的影響,并且能對所有的受影響的程序模塊作相應的改變。數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步,而且是很有價值的一步。數(shù)據(jù)流是數(shù)據(jù)結構在系統(tǒng)內的傳輸路徑。其中,“數(shù)據(jù)流來源”是說明該數(shù)據(jù)流來自哪個過程?!皵?shù)據(jù)流去向”是說明該數(shù)據(jù)流將流到那個過程去。數(shù)據(jù)流編號數(shù)據(jù)流名組成數(shù)據(jù)流來源數(shù)據(jù)流去向D1.1博主注冊用戶名+密碼+姓名+性別+出生年月日+EMAIL用戶用戶注冊D1.2用戶登錄用戶名+密碼用戶用戶登錄D1.3信息修改用戶名+密碼+姓名+性別+出生年月日+EMAIL用戶登錄信息修改D1.4信息保存用戶名+密碼+姓名+性別+出生年月日+EMAIL信息修改用戶信息庫D1.5用戶注銷用戶信息用戶登錄用戶注銷D1.8信息刪除用戶信息用戶注銷用戶信息庫D2.1照片上傳圖片格式,圖片內容,圖片描述用戶上傳前臺顯示D2.2視頻上傳視頻格式,視頻內容,視頻描述,視頻封面用戶上傳前臺顯示D2.3日志上傳日志內容,日期,用戶上傳前臺顯示D2.4留言板內容上傳留言內容,留言時間,留言者姓名,日期用戶上傳前臺顯示D3.1鏈接鏈接地址用戶修改頁面顯示D3.2博主信息姓名,性別,email,QQ等博主上傳頁面顯示5系統(tǒng)詳細設計5.1系統(tǒng)的開發(fā)環(huán)境該系統(tǒng)是在WindowsXP操作系統(tǒng)下進行開發(fā)的,使用的開發(fā)工具是Dreamweaver8,開發(fā)環(huán)境是JDK1.6。JSP的支持平臺是Tomcat6.0,后臺數(shù)據(jù)庫是MySQL。在開發(fā)過程中還使用到了開發(fā)工具Myeclipse。5.1.1JSP支持平臺Tomcat6.0Tomcat是一個免費的開源的Serlvet容器,由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat最新版本是6.0x。它提供了各種平臺的版本供下載,可以從上下載其源代碼版或者二進制版。由于Java的跨平臺特性,基于Java的Tomcat也具有跨平臺性。與傳統(tǒng)的桌面應用程序不同,Tomcat中的應用程序是一個WAR(WebArchive)文件。WAR是Sun提出的一種Web應用程序格式,與JAR類似,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結構來組織:通常其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會有一個WEB-INF目錄,這個目錄很重要。通常在WEB-INF目錄下有一個web.xml文件和一個classes目錄,web.xml是這個應用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當然也可以放到系統(tǒng)的CLASSPATH中,但那樣移植和管理起來不方便。在Tomcat中,應用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應用的Jsp時,通常第一次會很慢,因為Tomcat要將Jsp轉化為Servlet文件,然后編譯。編譯以后,訪問將會很快。另外Tomcat也提供了一個應用:manager,訪問這個應用需要用戶名和密碼,用戶名和密碼存儲在一個xml文件中。通過這個應用,輔助于Ftp,你可以在遠程通過Web部署和撤銷應用。當然本地也可以。Tomcat不僅僅是一個Servlet容器,它也具有傳統(tǒng)的Web服務器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。另外,Tomcat提供Realm支持。Realm類似于Unix里面的group。在Unix中,一個group對應著系統(tǒng)的一定資源,某個group不能訪問不屬于它的資源。Tomcat用Realm來對不同的應用(類似系統(tǒng)資源)賦給不同的用戶(類似group)。沒有權限的用戶則不能訪問這個應用。Tomcat提供三種Realm,1:JDBCRealm,這個Realm將用戶信息存在數(shù)據(jù)庫里,通過JDBC獲得用戶信息來進行驗證。2:JNDIRealm,用戶信息存在基于LDAP的服務器里,通過JNDI獲取用戶信息。3:MemoryRealm,用戶信息存在一個xml文件里面,上面講的manager應用驗證用戶時即使用此種Realm。通過Realm我們可以方便地對訪問某個應用的客戶進行驗證。在Tomcat中,還可以利用Servlet提供的事件監(jiān)聽器功能,來對你的應用或者Session實行監(jiān)聽。Tomcat也提供其它的一些特征,如與SSL集成到一塊,實現(xiàn)安全傳輸。還有Tomcat也提供JNDI支持,這與那些J2EE應用服務器提供的是一致的。說到這里我們要介紹一下通常所說的應用服務器(如WebLogic)與Tomcat有何區(qū)別。應用服務器提供更多的J2EE特征,如EJB,JMS,JAAS等,同時也支持Jsp和Servlet。而Tomcat則功能沒有那么強大,它不提供EJB等支持。但如果與JBoss(一個開源的應用服務器)集成到一塊,則可以實現(xiàn)J2EE的全部功能。既然應用服務器具有Tomcat的功能,那么Tomcat有沒有存在的必要呢?很多中小應用不需要采用EJB等技術,Jsp和Servlet已經足夠,這時如果用應用服務器就有些浪費了。而Tomcat短小精悍,配置方便,能滿足我們的需求,這種情況下我們自然會選擇Tomcat。5.1.2JDK概述及配置JDK是Javadevelopkit的縮寫,它是早期Java的開發(fā)包名稱,一直延用至今!在1998年jdk發(fā)表1.2版的時候,Sun公司使用了新名稱Java2platform來稱呼Java,譯成中文就是“Java平臺”,修改后的jdk稱為J2sdk即Java2(platform)softwareDevelpingkit,并分為標準版(StandardEdition)又稱j2se,企業(yè)版(EnterpriseEdition)又稱j2ee,微型版(MicorEdition)又稱j2me.它們有不同的用途,不過最基本的開發(fā)包還是j2se。JDK是一切java應用程序的基礎,可以說,所有的java應用程序是構建在這個之上的。它是一組API,也可以說是一些javaClass。目前已經正式發(fā)布的最新版本是JDK1.5。在安裝完JDK后,還需要在環(huán)境變量中進行相應的配置才能使用JDK的功能。在Windows中主要進行以下配置:設置JAVA_HOME的環(huán)境變量,它表示Java安裝的目錄,其他的應用程序如果要使用Java運行環(huán)境,首先獲得JAVA_HOME變量的值,然后確定執(zhí)行的路徑。設置CLASSPATH的環(huán)境變量,CLASSPATH表示搜索Java類的路徑,這個路徑中可以包括一些Jar歸檔文件,也可以是一個目錄。在應用程序或者服務器執(zhí)行時,往往會動態(tài)地在CLASSPATH中添加一些自己需要的類的路徑。它的值為“安裝路徑\lib\tools.jar”5.1.3開發(fā)工具Dreamweaver8MacromediaDreamweaver8是Macromedia公司出品一款專業(yè)的HTML編輯器,用于對Web站點、Web頁和Web應用程序進行設計、編碼和開發(fā)。無論您愿意享受手工編寫HTML代碼時的駕馭感還是偏愛在可視化編輯環(huán)境中工作,Dreamweaver都會為您提供有用的工具,使您擁有更加完美的Web創(chuàng)作體驗。利用Dreamweaver中的可視化編輯功能,您可以快速地創(chuàng)建頁面而無需編寫任何代碼。您可以查看所有站點元素或資源并將它們從易于使用的面板直接拖到文檔中。您可以在MacromediaFireworks或其他圖形應用程序中創(chuàng)建和編輯圖像(如:Photoshop),然后將它們直接導入Dreamweaver,或者添加MacromediaFlash對象,從而優(yōu)化您的開發(fā)工作流程。Dreamweaver還提供了功能全面的編碼環(huán)境,其中包括代碼編輯工具(例如代碼顏色和標簽完成);有關HTML、層疊樣式表(CSS)、JavaScript、ColdFusion標記語言(CFML)、MicrosoftActiveServerPages(ASP)和JavaServerPages(JSP)的參考資料。Macromedia的可自由導入導出HTML技術可導入您手工編碼的HTML文檔而不會重新設置代碼的格式,您可以隨后用您首選的格式設置樣式來重新設置代碼的格式。Dreamweaver還使您可以使用服務器技術(例如CFML、ASP.NET、ASP、JSP和PHP)生成由動態(tài)數(shù)據(jù)庫支持的Web應用程序。Dreamweaver可以完全自定義。您可以創(chuàng)建您自己的對象和命令,修改快捷鍵,甚至編寫JavaScript代碼,用新的行為、屬性檢查器和站點報告來擴展Dreamweaver的功能。5.2系統(tǒng)中JSP技術的應用5.2.1用JavaBean封裝數(shù)據(jù)庫操作JavaBean是描述Java的軟件組件模型,有點類似于Microsoft的COM組件概念。JavaBean組件是Java類,這些類遵循一個接口格式,以便于使方法命名、底層行為以及繼承或實現(xiàn)的行為能夠把類看作標準的JavaBean組件方式進行構造。該系統(tǒng)的諸多模塊都涉及到了數(shù)據(jù)庫的操作,使用到了JDBC技術。為了便于對數(shù)據(jù)庫的操作,將對數(shù)據(jù)庫的操作寫成了一個Bean,通過調用Bean來實現(xiàn)數(shù)據(jù)庫的插入、刪除與修改等功能,極大的方便了程序的編寫。調用JavaBean的語句:<jsp:useBeanid="name"scope="page"class="com.music.*"/>下面就是Bean的代碼實現(xiàn)及說明:File:UserBean.java,SongBean.java,FanBean.java,ViewArea.java代碼說明:openDataBase()在進行數(shù)據(jù)庫的查詢和更新等操作之前,必須要經過幾個必需的步驟進行數(shù)據(jù)庫的連接,這在前面介紹JDBC的時候已經詳細的闡述了。成員函數(shù)openDataBase()將這些步驟封裝。因此,在調用其他的成員函數(shù)之前,必須調用openDataBase()進行初始化設置executeQuery(Stringsql)和executeUpdate(Stringsql)這兩個成員函數(shù)分別用來完成通過參數(shù)傳遞來的Sql語句的執(zhí)行,即查詢和更新操作。Statement和PreparedStatementStatement對象用于執(zhí)行不帶參數(shù)的簡單SQL語句,PrepareStatement對象用于執(zhí)行帶或不帶IN參數(shù)的預編譯SQL語句。close()對數(shù)據(jù)庫的操作完成后,及時釋放占用資源。5.2.2字符編碼過濾器EncodingFilterWeb應用中的過濾器截取從客戶端進來的請求,并做出處理的答復。它可以說是外部進入網站的第一關,它可以驗證客戶是否來自可信的網絡,可以對客戶提交的數(shù)據(jù)進行重新編碼,可以驗證客戶是否已經登錄等。要開發(fā)一個Filter,必須直接或者間接實現(xiàn)Filter接口。Filter接口定義了以下的方法:init(),用于獲得FilterConfig對象。destroy(),銷毀這個Filter。doFilter(),進行過濾處理。下面就是EncodingFilter的代碼實現(xiàn)及說明:File:EncodingFilter.java代碼說明:在EncodingFilter中,在init方法中通過config.getInitParameter(“encoding”)來獲得FilterConfig中的參數(shù),可以看出這種獲得參數(shù)的方法和Servlet獲得初始參數(shù)是一樣的。doFilter是過濾器中最重要的方法,在doFilter方法中,首先通過Http的請求和響應對象,然后對Http請求中的參數(shù)進行統(tǒng)一編碼,這里采用的編碼方式是GB2312。5.3系統(tǒng)主要功能模塊設計5.3.1相冊模塊相冊模塊功能描述:接受博主提交信息,根據(jù)信息做出相應添加、刪除、修改操作,并對相應操作對數(shù)據(jù)庫進行操作,修改數(shù)據(jù)庫內容,以供前臺調用。B_edit_album_ctg.jsp//顯示相冊名子列表,可以新建或刪除相冊分類B_upload_photo.jsp//上傳圖片,編輯圖片信息B_edit_photo.jsp//管理某個相冊中的圖片,修改圖片簡介,刪除圖片等相冊模塊流程圖:開始開始新建or上傳新建相冊上傳照片選擇相冊選擇相冊列表操作上傳照片相片列表刪除or修改結束是否結束是否結束否是執(zhí)行操作進入列表否否是是5.3.2日志模塊日志模塊功能描述:根據(jù)博主提交信息,對數(shù)據(jù)庫進行添加修改刪除,及時更新數(shù)據(jù)庫。以供前臺調用。B_write_blog.jsp//撰寫新日志或修改日志的編輯頁面.可以為日志選擇分類B_edit_blog_ctg.jsp//顯示日志分類的列表,并可以新建日志分類,或刪除已有的B_edit_blog.jsp//顯示日志標題列表,可以由此進入B_write_blog.jsp頁面或刪除Get_blog_list.jsp//獲取日志列表Get_blog_text.jsp//獲取日志內容日志模塊流程圖:開始開始關閉顯示文章數(shù)據(jù)處理請求顯示開始開始關閉顯示文章數(shù)據(jù)處理請求顯示 進入 進入博客列表博客列表博客列表博客列表 查看文章 刪除文章刪除文章刪除查看刪除文章刪除查看 否 添加新文章添加新文章 顯示文章 是 顯示文章 刪除/修改 刪除刪除/修改修改頁面修改頁面 是保存保存結束是結束 否結束博客文章前臺/后臺操作流程結束 5.3.3視頻模塊視頻模塊功能描述:實現(xiàn)上傳或刪除視頻,并對數(shù)據(jù)庫進行及時操作,以供前臺操作!B_upload_video.jsp//上傳視頻(上傳視頻,視頻封面圖片,視頻簡介等)B_edit_video.jsp//修改視頻信息視頻模塊流程圖:開始開始視頻列表視頻列表選擇操作選擇操作刪除添加刪除照片添加視頻 結束刪除照片添加視頻是否成功是否成功是否成功 否是否成功成功否添加描述 是添加描述添加封面添加封面是否成功 否是否成功 是結束結束5.3.4留言板模塊留言本模塊功能描述:為瀏覽者提供留言途徑,后臺刪除、查看留言,并對數(shù)據(jù)庫進行即使操作,以供前臺調用。留言本模塊流程圖:開始開始前臺or后臺前臺or后臺 后臺 前臺留言列表添加留言留言列表添加留言選擇操作選擇操作 添加 刪除 退出刪除留言添加留言刪除留言添加留言成功否成功否 是 否 否 成功否成功否是結束結束6研究成果與前景展望6.1研究成果概述博客被中國的“博客”先行者們稱為是繼E—mail、BBS和IM之后的第四種網絡交流方式,是網絡時代的自媒體作為一種全新的互聯(lián)網信息發(fā)布工具和人際溝通工具,博客的優(yōu)勢在于它不拘泥于“一對一”或“一對多”的信息展示,而是開辟出了一個由此及彼(由人際圈的相交而來的廣域交流)的“多對多”的輿論時代。與其他信息平臺相比,博客傳播更具個性化和立體化,且交互性更強。本文針對如何設計一個結構靈活的個人博客系統(tǒng)進行了研究,并做了以下幾個方面的工作:分析了現(xiàn)有的一些
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公室租賃與咨詢顧問服務合同
- 成本控制與降低運營成本指南
- 裝卸承包合同協(xié)議年
- 建筑裝飾裝修行業(yè)指南
- 2023年寶安區(qū)積分入學規(guī)則
- 精裝修公寓裝修合同
- 貨物運輸代理合同書
- 醫(yī)療器械與藥品研發(fā)技術作業(yè)指導書
- (高清版)DB2105∕T 001-2022 地理標志產品 連山關刺五加
- 2025年荊門道路客貨運輸從業(yè)資格證b2考試題庫
- 2012年安徽高考理綜試卷及答案-文檔
- 《游戲界面設計專題實踐》課件-知識點5:圖標繪制準備與繪制步驟
- 自動扶梯安裝過程記錄
- MOOC 材料科學基礎-西安交通大學 中國大學慕課答案
- 智慧供熱管理系統(tǒng)方案可行性研究報告
- 帕金森病的言語康復治療
- 中國城市居民的健康意識和生活方式調研分析報告
- 上海星巴克員工手冊
- 貓狗創(chuàng)業(yè)計劃書
- 復產復工試題含答案
- 部編版語文三年級下冊第六單元大單元整體作業(yè)設計
評論
0/150
提交評論