版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
隨著網絡技術的不斷發(fā)展。人們對于網絡有了越來越多的要求.Ebay,阿里巴巴,淘寶的出現(xiàn),讓電子商務重現(xiàn)曙光,google,baidu的出現(xiàn),讓人們通過網絡進行信息檢索,獲取到有效信息的途徑更加豐富。電子讀物也是在網絡產業(yè)中一枝獨秀,如起點中文網,天下電子書等,許多人都走向了網絡作家這個方向,而電子書網站正式為廣大的愛好電子讀物的人們提供了交流與共享的平臺。E品書香網站基于電子讀物資源共享、用戶之間互動的功能,在開發(fā)設計中,采用B/S(Browser/Server),這種結構使得數(shù)據(jù)結果集合在瀏覽器中顯示,數(shù)據(jù)的處理在服務器進行,用戶只需要一個瀏覽器就可以遨游于使用本系統(tǒng)了了。數(shù)據(jù)庫方面,業(yè)界具有常用的關系數(shù)據(jù)庫管理系統(tǒng)Mysql,使系統(tǒng)安全性能更高。同時采用當前正在流行的J2EE技術開發(fā),采用jsp用戶界面更加的友好簡單易操作。當今論壇的界面設計非常的炫耀富麗,用戶體驗非常的良好,主要要到了jquery這個流行的JavaScript框架。在開發(fā)中選擇了struts2+spring+hibernate(SSH)三大框架,dao層+service層+action層+view顯示層的mvc分層的開發(fā)模式,實現(xiàn)了應用程序邏輯和頁面顯示分離,界面設計更簡單。關鍵詞:java;web;mysql;電子書,社交,SSH,MVC,JavaSricpt,JqueryWiththecontinuousdevelopmentofnetworktechnology.requirementsfornetworkhasbeenincreasing.Ebay,alibaba,taobaooccurrence,lettheelectroniccommercerecreatepopular,Google,theemergenceofbaidu,letpeoplethroughthenetworkforinformationretrieval,obtaintheeffectivewaysofmoreabundantinformationrich.Ofcourse,ebooksismostpopularinthenetwork,suchQiandian,TheBookSkyandsoon.Moreandmorepeoplegettobenetwriter.Sothenetofebookisprovideaplatforthesemenwholiketoreadebookortowriteebook.WhentheEBookHomebasesonsharingresourceanduserscancommunicatetoeachother.Inthedevelopmentofdesign,adoptsB/S(isclicked/Server)structure,thiskindofstructureallowsdataonlyresultsetsintheBrowserdisplay,dataprocessinginServer,usersneednotinstallclient,andbecausebytheServerunifiedmanagementdata,easytoensuretheconsistencyofthedata.Database,recommendindustryoftheleadingrelationaldatabasemanagementsystem,thesystemMysqlsafetyperformanceishigher.ByadoptingtheJSP,popularwebServer(Java)programming,aremorefriendlyuserinterfacecurrently.IndevelopingchoseJSP+JavaBean+Mysqlmodel,realizedtheapplicationlogicandpageshowstheseparation,interfacedesignmoresimple.JavaBeanreusablesoftwarecomponentmeet,andmeanwhilemakesmallapplicationprogrammerinputs,energyandreusablecomponents,insimpleapplicationstoconsider.Keyword:java,ebook,sns,struts2,spring,hibernate,B/S,JSP,JavaBean,ssh,mvc,JavaScript,jquery.
目錄1系統(tǒng)概述 11.1課題的目的和意義 11.2國內現(xiàn)狀分析 11.3開發(fā)環(huán)境簡介 12可行性研究與需求分析 22.1可行性研究 22.1.1技術可行性 22.1.2經濟可行性 22.1.3運行可行性 22.2需求分析 22.2.1系統(tǒng)需求 32.2.2性能需求 32.2.3應用需求分析 32.2.4其他需求分析 33實現(xiàn)技術簡介 43.1Html5+Css3.0+Javascript簡介 43.2Ajax和JSON 43.3JSP技術簡介 43.4Struts+Spring+Hiberate技術 53.4.1Struts2.x技術 53.4.2spring技術 63.4.3.hibernate技術 64系統(tǒng)的概要設計 74.1項目的功能概述 74.2數(shù)據(jù)庫概要設計 134.3文件結構 155項目的詳細設計 165.1項目架構圖 165.2項目AJAX的請求 175.3項目功能模塊的詳細實現(xiàn) 175.4數(shù)據(jù)表庫的詳細設計 235總結 27參考文獻 28致謝 291系統(tǒng)概述1.1課題的目的和意義隨著互聯(lián)網和寬帶上網的普及,娛樂性的網站也是在IT領域占有極大的比例,并日益滲透到人們的日常生活中。如書籍的在線閱讀,對于閑暇時候,看看書陶冶情操的時候,無需去拿著一本厚厚的笨重的書籍走來走去,一個移動設備及可以滿足我們的需要。電子書網站是運用現(xiàn)代通信技術、計算機和網絡技術進行的一種社會形態(tài),其目的是通過互聯(lián)網共享知識資源,從而實現(xiàn)社會財富的最大化利用。在E品書香的網站中,涉及書籍資源的提供,查詢,以及供用戶的閱讀,同時網站提供了會員模式,用戶可以注冊網站的會員,然后可以對網站的書籍做一些評價,并且可以和其他用戶在論壇里進行交流。本課題所研究的E品書香網站主要是為個人提供電子讀物的搜索,閱讀和用戶之間交流的一個平臺,從而給個人帶來方便。課題目標是設計并實現(xiàn)一個B/S體系結構的電子書資源提供網站。結合實踐,加強網頁開發(fā)技術和數(shù)據(jù)庫方面知識,學習相關開發(fā)工具和應用軟件,體驗網站建設的過程,熟練掌握網絡數(shù)據(jù)庫編程方法。1.2國內現(xiàn)狀分析現(xiàn)在我國的信息管理水平還比較落后,這樣的機制已經不能適應時代的發(fā)展,因為它浪費了許多人力和物力,在信息時代傳統(tǒng)的管理方法必然被計算機為基礎的信息管理所取代。軟件作為一項有力的工具,只能當此種工具,與我們的實踐相結合起來的時候,才具有重大的社會價值及使用價值。因此根據(jù)目前實際的情況開發(fā)這樣一套管理系統(tǒng)是十分必要的。隨著科學技術的不斷提高,計算機科學技術日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。作為計算機應用的一部分,使用計算機進行管理,具有著手工管理所無法比擬的優(yōu)點。例如:可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高工作的效率,也是信息正規(guī)化管理與世界接軌的重要條件。1.3開發(fā)環(huán)境簡介本項目開發(fā)工具及版本如下:Eclipse,jdk6.0,mysql5.6,Tomcat6.0,struts2,spring3.0,hibernate3.6final,在window7系統(tǒng)平臺進行項目的開發(fā),調試,與運行。本系統(tǒng)用時下流行的javaweb開發(fā)框架SSH(Spring+Struts+Hibernate)進行開發(fā),數(shù)據(jù)庫采用輕巧穩(wěn)定的MySql,界面使用jsp實現(xiàn)。本論文主要涉及軟件,數(shù)據(jù)庫與網絡技術等。涵蓋知識面廣,可有效地提高綜合運用所學知識分析解決問題的能力,增強對事物的理解與掌握能力,掌握科學的研究方法,正確的設計思想,獨立思考,勇于進取,探索創(chuàng)新,為今后進一步學習與工作奠定了良好的基礎。2可行性研究與需求分析2.1可行性研究2.1.1技術可行性技術可行性要考慮現(xiàn)有的技術條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本系統(tǒng)用的是SSH框架開發(fā),主打語言是JAVA,由于框架對一些復用的代碼做了很好的封裝,并且提供了友好的API,所以上手較快,開發(fā)效率也大大提高,采用流行的開發(fā)IDE:Eclipse,對開發(fā)調試都有很好的支持,當前的計算機硬件配置也完全能滿足開發(fā)的需求,因此在技術上是絕對可行的。軟件方面:由于目前單機模式相對發(fā)展成熟,故軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能高、價格低,完全能滿足系統(tǒng)的需求。2.1.2經濟可行性開發(fā)該系統(tǒng)所需的相關資料可以通過已存在的相關系統(tǒng)進行調查采集,所需的其他應用軟件、硬件系統(tǒng)也易于獲得.因此,開發(fā)成本較低。而引進使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質量的特點,可以節(jié)省不少人力、物力及財力。所以,從經濟的角度來看,該系統(tǒng)可行。2.1.3運行可行性運行可行性是對組織結構的影響,現(xiàn)有人員和機構和環(huán)境對系統(tǒng)的適應性及人員培訓補充計劃的可行性。當前信息化技術已經相當普及,各類操作人員水平都有相當?shù)母叨?,所以在運行上是可行性的。2.1.4法律可行性①所有技術資料都為合法。②開發(fā)過程中不存在知識產權問題。③未抄襲任何系統(tǒng),不存在侵犯版權問題。④開發(fā)過程中未涉及任何法律責任。2.2需求分析需求分析是軟件設計的一個重要的環(huán)節(jié)。本階段對系統(tǒng)管理系統(tǒng)的應用情況作全面調查,以確定系統(tǒng)目標。確定用戶的需求。用戶對系統(tǒng)的需求我們從以下幾方面進行分析。2.2.1系統(tǒng)需求用JSP開發(fā)系統(tǒng)管理系統(tǒng)基于B/S模式,系統(tǒng)軟件和數(shù)據(jù)集中存放于服務器中,軟件的安裝與升級在服務器上進行。所有的工作基于瀏覽器,安裝、使用、維護、升級十分簡單。2.2.2性能需求為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行。系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。由于本系統(tǒng)的添加功能對于整個系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,其準確性和及時性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準確性和及時性。2.2.3應用需求分析(表2-1)系統(tǒng)需求硬件分析服務器硬件處理器:Intel酷睿i3內存:512M或更大硬盤:20G或更大軟件MicrosoftWindowsXP或以上客戶機硬件無特殊要求軟件MicrosoftWindowsXP系統(tǒng)的性能要求通常指系統(tǒng)需要的存儲容量以及后援存儲,重新啟動和安全性,運行效率等方面的考慮。硬件系統(tǒng)環(huán)境:C600、1GMB(RAM)、500MB(HD)。系統(tǒng)運行時對數(shù)據(jù)的保密性要求不高對一般的數(shù)據(jù)不要求進行加密。此外,對其它軟件幾乎沒有依賴性,程序健壯性較好。2.2.4其他需求分析本系統(tǒng)有較好的可維護性、可靠性、可理解性、效率。易于用戶理解和操作??删S護性包括了可讀性、可修改性、可測試性、等含義。可靠性通常包括正確性和健壯性。開發(fā)過程中,在各種矛盾的目標之間作權衡,并在一定的限制的條件下(經費、時間、可用的軟、硬件資源等),使上述各方面最大限度的得到滿足。3實現(xiàn)技術簡介本系統(tǒng)開發(fā)使用了主流的javaweb開發(fā)技術,該系統(tǒng)核心開發(fā)部分Sturts+Spring+Hibernate,用戶視圖使用的是jsp做數(shù)據(jù)處理,使用ajax異步使用后臺的數(shù)據(jù)到傳輸?shù)揭晥D層,并用Html5.0+CSS3.0+javascript對視圖進行了修飾。數(shù)據(jù)的存儲使用的是mysql數(shù)據(jù)庫。3.1Html5+Css3.0+Javascript簡介2012年12月17日,萬維網聯(lián)盟(W3C)正式宣布凝結了大量網絡工作者心血的HTML5規(guī)范已經正式定稿。根據(jù)W3C的發(fā)言稿稱:“HTML5是開放的Web網絡平臺的奠基石。到現(xiàn)在html5技術已經成熟,并在許多網站得以使用。Html5相比html4有了更好的擴展,而且比之前的html語言要簡練好用,增加了許多新的標簽。同時也將一部分常用的javascript的交互操作進行了封裝。用html5.0生成的頁面,具有更好的效果。配合上CSS3.0的使用更是如虎添翼。在頁面開發(fā)占據(jù)了重要的地位。目前許多瀏覽器廠商都兼容html這種語言,html5還支持移動的app開發(fā)。所以通過這次使用html5開發(fā)頁面,著實加深了對html的掌握。頁面的交互使用了jQuery,jQuery是用javascript開發(fā)的一個框架。使用jQuery我們無須操心瀏覽器的兼容問題。jQuery在瀏覽器兼容方面有了很好的支持,而且jQuery語法簡單,優(yōu)雅簡潔。可以使我們更好的維護前端部分。3.2Ajax和JSONAjax并不是一門單一的技術,而是將多技術融合形成的一種數(shù)據(jù)處理方式,通過ajax可以實現(xiàn)視圖的局部更新。是的頁面數(shù)據(jù)顯示更加靈活。而對于javascript一下簡稱js來說,ajax從服務器請求到的數(shù)據(jù)時經過js做處理的。Js可以處理xml,JSON,但是JSON成了本項目的ajax操作的數(shù)據(jù)傳輸格式。JSON(JavaScriptObjectNotation)是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(StandardECMA-2623rdEdition-December1999)的一個子集。JSON采用完全獨立于語言的文本格式。js操作JSON也是非常簡單的,相對于XMl,JSON更易于js解碼。3.3JSP技術簡介JSP(JavaServerPage服務器網頁)是從1998年開始出現(xiàn)的新技術。由Sun公司倡導、許多公司參與一起建立的一種動態(tài)網頁技術標準,是基于JavaServlet以及整個Java體系的web開發(fā)技術。在傳統(tǒng)的網頁HTML文件(*.htm,*.html)中加入腳本片段和JSP標記(Tag),構成JSP網頁(*.jsp)。JSP技術為創(chuàng)建顯示動態(tài)生成內容的web頁面提供了簡便的方法。JSP作為Java家族的一員,承襲了Java的特點,即跨平臺的特性,也即一次編譯,到處運行。在國外,己經大量使用JSP作為網絡應用程序的開發(fā)工具,而在國內,盡管JSP還不是主流開發(fā)技術,但是由于JSP的強大優(yōu)勢,許多網站都已經準備轉向JSP,利用JSP來開發(fā)動態(tài)網站。本系統(tǒng)使用通過使用jsp對將后臺處理過的數(shù)據(jù)進行格式化后給用戶顯示,是視圖(view)核心部分。3.4Struts+Spring+Hiberate技術本項目的服務端是在Struts+Spring+Hiberate這三大框架的基礎上進行的開發(fā)的。對于javaweb的開發(fā),這三大框架式目前開發(fā)領域比較流行,也是比較的經典和比較成熟的技術。3.4.1Struts2.x技術Struts是建立在MVC這種公認的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一個好的控制器和一套定制的標簽庫上,也就是說它的著力點在C和V上,因此,它天生就有MVC所帶來的一系列優(yōu)點,如:結構層次分明,高可重用性,增加了程序的健壯性和可伸縮性,便于開發(fā)與設計分工,提供集中統(tǒng)一的權限控制、校驗、國際化、日志等等;其次,它是個開源項目得到了包括它的發(fā)明者CraigR.McClanahan在內的一些程序大師和高手持續(xù)而細心的呵護,并且經受了實戰(zhàn)的檢驗,使其功能越來越強大,體系也日臻完善;最后,是它對其他技術和框架顯示出很好的融合性。Struts可以規(guī)范程序員的行為Struts是對MVC2模型的實現(xiàn),下圖是spring的基本原理:圖3-1struts流程圖圖3-1struts流程圖3.4.2spring技術Spring框架對于在java開發(fā)領域是一個并不陌生的框架,是一款優(yōu)秀的組件管理框架,其框架有著如下特點:1、spring能簡化企業(yè)級開發(fā),spring可以用簡單的javabean來代替實現(xiàn)復雜的EJB。2、spring是一個輕量級的IOC和AOP框架,可以spring的IOC實現(xiàn)松耦合,而作為一個AOP框架他又能分離系統(tǒng)服務,實現(xiàn)內聚開發(fā)。3、spring是非侵入式,基于spring的系統(tǒng)可以不依賴于spring的類。良好的spring運用可以使程序代碼清晰,容易維護,容易測試。使用Spring可以避免factory和siglton的泛濫,Spring的IOC容器通過配置文件,幫我們將業(yè)務邏輯類對象和依賴于它的對象全部實例化,不用我們去手工new對象,不僅降低了耦合性,而且使得程序員可以更關注于業(yè)務邏輯的實現(xiàn)。數(shù)據(jù)操作層和業(yè)務邏輯層用spring管理,因為這些包含到事務注入以及以后的擴展,pojo如果僅僅是用來傳值,也不會在上邊做什么改動的,則不用放在spring容器里好了.同理,業(yè)務對象和持久層加以來讓Spring管理,這樣可以使用Spring的事務支持,簡單的pojo,只充當dto功能的,不存在狀態(tài)改變的,就不需要讓Spring來管理了DAO模式需要為每個DAO組件編寫DAO接口,同時至少提供一個實現(xiàn)類,根據(jù)不同需要,可能有多個實現(xiàn)類。用Spring容器代替DAO工廠。通常情況下,引入接口就不可避免需要引入工廠來負責DAO組件的生成。Spring實現(xiàn)了兩種基本模式:單態(tài)模式和工廠模式。而使用Spring可以完全避免使用工廠模式,因為Spring就是個功能非常強大的工廠。因此,完全可以讓Spring充當DAO工廠。由Spring充當DAO工廠時,無須程序員自己實現(xiàn)工廠模式,只需要將DAO組件配置在Spring容器中,由ApplicationContext負責管理DAO組件的創(chuàng)建即可。借助于Spring提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使用DAO實例。3.4.3.hibernate技術Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數(shù)據(jù)持久化的重任.這樣我們就可以專注在業(yè)務邏輯代碼中了。采用Hibernate作為持久層技術的最大的好處在于:可以完全以面向對象的方式進行系統(tǒng)分析、系統(tǒng)設計。這樣更加方便清晰地處理業(yè)務邏輯,更多的精力放在處理邏輯的上面。4系統(tǒng)的概要設計系統(tǒng)的概要設計是在系統(tǒng)分析的基礎上由抽象到具體的過程。主要包括系統(tǒng)設計、數(shù)據(jù)庫的需求分析以及網站的整體設計三大塊。系統(tǒng)設計主要目標是將系統(tǒng)分析階段所提出的反映了信息需求的系統(tǒng)邏輯方案轉換成可以實施的基于計算機運行環(huán)境的具體方案,進行系統(tǒng)的概要設計,為下一階段系統(tǒng)詳細設計提供必要的技術資料。4.1項目的功能概述該項目以一個網站的形態(tài)存在,該網站的功能模塊結構如下圖:圖4圖4-1-1系統(tǒng)架構流程圖圖圖4-1-2網站首頁圖首頁:首頁是用戶瀏覽網站首先看到的信息頁面:其算法是從書榜中隨機獲取到10本熱門小說展現(xiàn)給用戶。圖圖4-1-3書庫圖書庫:書庫可以說是本站的重要功能,該模塊為用戶提供了海量的書籍供用戶閱讀瀏覽,網站中任何地方的有關書籍的信息都可以從書庫里獲得。圖圖4-1-4論壇效果圖論壇:展現(xiàn)給用戶的是論壇的版塊,以瀑布流的模式展現(xiàn)給用戶:每個論壇版塊的底部都會顯示1-3條不等的最新帖子。圖圖4-1-5書頁排行榜效果圖書榜:書榜是為用戶提供建議讀物的一種方式,通過書榜,可以了解到哪些書籍是廣大用戶正在閱覽的,書榜分日點擊,周點擊,月點擊,日推薦,周推薦,月推薦等六個榜單:分別統(tǒng)計出每天,每周,每個月的用戶閱讀數(shù),推薦書最高的榜。搜索:輸入關鍵字,可以找到與關鍵字有關的作者,書名等書籍。圖圖4-1-6登錄效果圖登錄:用戶輸入用戶名,密碼,系統(tǒng)檢測后可進行相關的操作,登錄的流程采用的ajax操作。圖4-1-7圖4-1-7注冊效果圖圖4-1-6搜索效果圖注冊:用戶輸入注冊信息便可成為本站的會員。從而進行推薦,評論,發(fā)帖等操作。圖圖4-1-8小說詳情效果圖小說詳情:在這里可以收藏該小說(加入書架),推薦小說,評論該小說,并且系統(tǒng)會隨機推薦給用戶與之相關的書籍.圖圖4-1-6帖子列表效果圖帖子列表:用戶可以在這里發(fā)表帖子:圖4-1-7圖4-1-7用戶首頁效果圖用戶中心,在這里可以看到自己的昵稱,個性簽名,等級等,也能看到自己曾經讀過的書,收藏的書,以及推薦過的書。圖圖4-1-8用戶設置中心效果圖設置中心,用戶可以設置密碼,昵稱,用戶頭像等個人信息,4.2數(shù)據(jù)庫概要設計數(shù)據(jù)庫作為系統(tǒng)的基礎,在信息管理系統(tǒng)中占有非常重要的地位,首先要保證其設計的合理性,一個設計合理的數(shù)據(jù)庫,可以提高數(shù)據(jù)的存儲效率,是對數(shù)據(jù)有效管理的前提條件,保證數(shù)據(jù)的完整和一致,也是系統(tǒng)設計的關鍵。擁有設計合理的數(shù)據(jù)庫往往可以起到事半功倍的效果。數(shù)據(jù)庫如果設計不當,系統(tǒng)運行當中會產生大量的冗余數(shù)據(jù),從而造成數(shù)據(jù)庫的極度膨脹,影響系統(tǒng)的運行效率。本項目是面向大量用戶而開發(fā)的一個系統(tǒng),面對大數(shù)據(jù)時代,有必要去設計合適的數(shù)據(jù)庫來進行對數(shù)據(jù)的存儲管理。數(shù)據(jù)的。本系統(tǒng)主要設計了如下的數(shù)據(jù)表:board這里主要存放論壇的版塊信息;book信息,項目的所有與書籍相關的數(shù)據(jù)都存放在這個表里bookread:當用戶對一本書籍進行閱讀的時候,會在該表插入記錄bookshelf:當用戶收藏書籍的時候,會在該表存放那個記錄。Booksort:對書籍的分類情況在這個表里存放。Booktop:項目里榜單的信息都放在這里Comment:存放在用戶對于發(fā)的帖子,評論,回復Explog:記錄用戶加經驗的詳細情況.Recommend:記錄了用戶推薦書籍的記錄User:這是記錄用戶的名稱,密碼,等級等信息。Userinfo:記錄用戶的收藏數(shù),推薦數(shù),閱讀數(shù)等統(tǒng)計信息。數(shù)據(jù)模型如下:圖圖4-2-8數(shù)據(jù)模型圖4.3文件結構為了是項目在開發(fā)過程中能夠明確,清晰,所以搭建一個好的目錄也是必須的,這樣在日后的維護與更新也是非常容易的:下圖是本項目的目錄結構圖:圖圖4-3-1項目源碼目錄結構各個目錄簡介:SRC包下放的是后臺業(yè)務相關的代碼:action包存放的是自定義的Action類,dao包里是與操作數(shù)據(jù)相關的接口,旗下的impl包是對其接口的實現(xiàn)類entity是與數(shù)據(jù)表對應的java實體類json包存放的是將數(shù)據(jù)下發(fā)的結構進行封裝成json的方法類。Service里存放的是業(yè)務邏輯的接口。旗下的impl是對接口的實現(xiàn)。Servel包里存放的是自定義的一些servlet,fileter等Util包里是一些通用的自定義工具類,如MD5加密工具類,系統(tǒng)提示的字符串常量類等。Vo包中是對多參數(shù)請求的參數(shù)封裝。5項目的詳細設計5.1項目架構圖通過概要設計可以總結出項目的具體架構,為了對項目進行更好的開發(fā)和日后的管理,所以對項目的封層是很有必要的下圖便是本項目的分層結構圖:圖圖5-1-1項目架構圖下面對各個分層做詳細的介紹1.View層:主要有Jsp構成,其中包含少量的html,用來講數(shù)據(jù)結果格式化后顯示給用戶。2.Action層:是控制層的一部分,有Struts組件進行開發(fā),主要負責解析校驗請求參數(shù)和執(zhí)行請求方法嗎以及對請求的轉發(fā)。3.Service層,是控制層的核心部分,實現(xiàn)整個業(yè)務邏輯,通過調用Dao層的基本業(yè)務操作方法來完成整個業(yè)務流程的實現(xiàn)。4.Dao層,該層是業(yè)務基本方法的實現(xiàn),有hibernate組件實現(xiàn),從數(shù)據(jù)持久層獲取期望的數(shù)據(jù)。5.數(shù)據(jù)持久層,是系統(tǒng)與數(shù)據(jù)庫的中間件,實現(xiàn)了對象與關系的封裝。主要給Dao層提供結果映射。5.2項目AJAX的請求本項目的頁面顯示用了大量的異步請求,使用了ajax技術,每個頁面的各個部分都是通過不同的異步請求得到數(shù)據(jù)而對頁面進行顯示的:如下圖:圖圖5-2-1項目架構圖小說的信息是一個ajax請求,然后填充數(shù)據(jù),書香紛紜的版塊是一個ajax請求的數(shù)據(jù),你可能喜歡的版塊同樣也是一個ajax請求。5.3項目功能模塊的詳細實現(xiàn)項目中使用了眾多的業(yè)務,每個功能同時關聯(lián)著多個業(yè)務功能,,所以從項目擇取了幾個經典的模塊供以介紹:登錄模塊:客戶端在登錄窗口輸入登錄號碼和登錄密碼,點擊“登錄”按鈕??蛻舳税l(fā)送“l(fā)ogin”請求,表示需要登錄,連接服務器。服務器接收到客戶端發(fā)送過來的賬號和密碼信息后,業(yè)務邏輯層Service比較輸入的用戶名和密碼和數(shù)據(jù)庫中信息是否相符,如果相符則表示登錄成功,并封裝好跟蹤用戶的信息轉入本項目的網站。否則,則出現(xiàn)信息出錯提示框:圖圖5-3-1登錄流程圖圖5-3-3圖5-3-3登錄成功圖圖圖5-3-2登錄失敗效果圖相關代碼publicStringlogin(Stringusername,Stringpassword,HttpServletRequestrequest)throwsException{ //TODOAuto-generatedmethodstub Stringmd5Pass=MD5Util.getMd5(password); Useru=userDao.getUser(username); if(null==u){ returnJSONUtil.result(0,TipString.ERR_LOGIN); } if(!u.getPassword().equals(md5Pass)){ returnJSONUtil.result(0,TipString.ERR_PASS); } SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Listlist=explogDao.get(u.getUserid(),Constants.EXP_LOGIN,sdf.format(newDate())); if(list==null||list.size()<=0){ explogDao.add(u.getUserid(),Constants.EXP_LOGIN,sdf.format(newDate()),Constants.EXP_LOGIN); } u.setExp(u.getExp()+Constants.EXP_LOGIN); intnewlevel=LevelUtil.getLevel(u.getExp(),u.getLevel())[0]; u.setLevel(newlevel); userDao.update(u); request.getSession().setAttribute(Constants.USER_SESSION,u); returnJSONUtil.result(1,TipString.SUCC_LOGIN); }注冊模塊圖圖5-3-4注冊流程圖相關代碼:publicStringregist(Stringusername,Stringpassword,Stringnick,HttpServletRequestrequest)throwsException{ //TODOAuto-generatedmethodstub if(StringUtils.isEmpty(username)||StringUtils.isEmpty(password)){ returnJSONUtil.result(0,TipString.NO_USER); } Useru=userDao.getUser(username); if(null!=u){ returnJSONUtil.result(0,TipString.USER_EXIST); } u=newUser(); Stringmd5Pass=MD5Util.getMd5(password); u.setUsername(username); u.setPassword(md5Pass); u.setHeadimg(Constants.HEAD_IMG_M); u.setLevel(1); u.setSex(1); userDao.saveUser(u); UserInfoinfo=userDao.getUserInfo(u.getUserid()); u.setUserInfo(info); u.setNickname("書友"+u.getUserid()); if(!StringUtils.isEmpty(nick)){ u.setNickname(nick); } request.getSession().setAttribute(Constants.USER_SESSION,u); returnJSONUtil.result(1,TipString.SUCC_REG); }圖圖5-3-5評論流程圖圖5-3-6回復流程圖對回復進行回復:圖5-3-6圖5-3-6回復回復流程圖修改頭像模塊:修改這個功能使用了兩個請求來完成這個業(yè)務:圖圖5-3-7修改頭像流程圖設置頭像的效果:圖5-3-8圖5-3-8修改頭像流程圖生成小頭像的代碼:publicStringgetCut(intx1,inty1,intx2,inty2)throwsException{ StringfileName=this.getImage_fileFileName(); Stringperffix=fileName.substring(fileName.indexOf('.')+1,fileName.length()); Iterator<ImageReader>it=ImageIO.getImageReadersByFormatName(perffix); ImageReaderreader=it.next(); FileInputStreamfis=newFileInputStream(getImage_file()); ImageInputStreamiis=ImageIO.createImageInputStream(fis); reader.setInput(iis,true); intnw=reader.getWidth(0); inthw=reader.getHeight(0); ImageReadParamparam=reader.getDefaultReadParam();Rectanglerect=newRectangle(x1,y1,170,170);param.setSourceRegion(rect);BufferedImagebi=reader.read(0,param);//保存新圖片Stringnewname=UUID.randomUUID().toString()+"."+perffix;Stringpath=this.getRequest().getRealPath("/file/img");ImageIO.write(bi,perffix,newFile(path+"\\"+newname));JSONObjectjo=newJSONObject(); jo.put("result",1); jo.put("url",":8080/booksky/file/img/"+newname); returnjo.toString();}5.4數(shù)據(jù)表庫的詳細設計為了讓本項目的邏輯更完善,所以設計了如下的數(shù)據(jù)表:Board表:是記錄了論壇版塊的信息,其中id是主鍵,并沒有任何的實際意義,user_name字段記錄了參與論壇的人數(shù),comment_num字段記錄用戶發(fā)帖的數(shù)量。圖5-4-1圖5-4-1board表Book表:是包含了書籍的信息,書名,作者,該書的簡介,以及書的封面都在這個表記錄,comment_num和tuijian_num,shoucang_num還有read_num分別記錄了用戶讀書的評論數(shù),推薦數(shù),閱讀數(shù),收藏數(shù)。圖5-4-2book表Bookread表,當用戶第一次讀書的時候,會在這里記錄一下,用以顯示用戶的讀書記錄。圖5-4-3bookread表Bookshelf,在業(yè)務里稱之為書架,也叫收藏。當用戶將一本書收藏后,會記錄到這個表里。當查看一個用戶的書架時,會從這個表里讀取記錄。其中status代表是否刪除,這里摒棄了delete軟件,而是使用update語句做了軟刪除。圖5-4-4bookshelf表Booksort:這里是對站內的圖書資源做了一個分類,利用type字段可以為以后的書籍類別擴展子類別更好的實現(xiàn)。圖5-4-5booksort表Booktop:這個表示記錄的排行榜的書籍信息。通過業(yè)務的定時任務功能模塊對計算書籍的排行榜,并寫入到表中,為了加快數(shù)據(jù)查詢的速度,這里書籍的部分信息放到這個表中,避免了聯(lián)表查詢。圖5-4-6booktop表Comment表:這張表記錄了用戶發(fā)的帖子,回帖,以及對書的評論,回復都在這個表中。其中type區(qū)分的記錄的類型,1是對書的評論,2是與論壇業(yè)務相關的記錄圖5-4-7comment表Explog用戶加經驗的記錄表,通過該表可以作為是否對用繼續(xù)加經驗的依據(jù)。圖圖5-4-8explog表 Recommend表:當用戶推薦一本書的就會在該表記錄,同時查看用戶的推薦也是從該表獲取。圖圖5-4-8recommend表User表:這個表記錄了用戶的詳細信息,用戶名,密碼,昵稱,個性簽名,頭像等信息。圖圖5-4-9user表Userinfo表,這個表用來對用戶書架上的書,推薦的書,閱讀的書等數(shù)量,為了對這些記錄進行更好的分頁圖5-4-9userinfo表5總結通過這次畢業(yè)設計,我體會到了很多,首先要把大學這四年所學的東西全部學以致用,在有限的時間內,一個人完成一個獨立的項目,從開發(fā)環(huán)境的搭建,數(shù)據(jù)庫的設計,項目業(yè)務的設計,以及前段UI的設計,的確是一個極大的挑戰(zhàn)。但是在這個挑戰(zhàn)中我學習到了很多,不會的就到圖書管翻閱資料、或者去網上搜索,或者請教老師和同學,特別是老師和同學們,給予了我很大的幫助。在程序的設計中遇到了很多問題,印象深刻的就是搭建spring環(huán)境時配置的xml,總是測試失敗,后來順藤摸瓜,發(fā)現(xiàn)了缺少dtd引用文件,這個事情使我明白計算機是一門嚴謹?shù)膶W科,容不得絲毫馬虎,也容不得半點紕漏,如果你對計算機開玩笑,那么它便會消耗你的時間來作為償還的代價。畢業(yè)設計給我?guī)淼牟粌H僅是挑戰(zhàn),更是機遇,他教會我如何去發(fā)現(xiàn)問題,然后如何解決問題,教我不能放棄,要一直的努力才能得到最后的勝利。通過畢業(yè)設計我不僅僅知道了更多的軟件方面的知識,也學會了一些新的思考方式參考文獻[1]BruceEckel,《ThinkInJava》第4版.機械工業(yè)出版社,2007-06-01[2]MichaelKofler著.楊曉云,王建橋,楊濤等譯.MySQL5權威指南.北京:人民郵電出版社.2007-03.[3]李剛.整合Struts+Hibernate+Spring應用開發(fā)詳解[M].北京:清華大學出版社,2007[4]CayS.Horstmann,GaryCornell著周立新,陳波,葉乃文《Java核心技術·卷1:基礎知識》,機械工業(yè)出版社,2013[5]單東林,張曉菲,魏然,等著,《鋒利的jQuery》第2版,人民郵電出版社,2012[6]侯志松,《Hibernate完全手冊》北京:機械工業(yè)出版社,2008[7][英]BenFrain著王永強譯,響應式Web設計:HTML5和CSS3實戰(zhàn),人民郵電出版社,2013致謝在本次畢業(yè)設計中,我特別要感謝的是我的指導老師張璠老師!在論文題目的選定、資料查閱、收集和寫作的整個過程中,張璠老師都給予我細心指導和耐心幫助。并對我的畢業(yè)設計做出了非常有價值的指點。張璠老師認真負責的工作態(tài)度,扎實嚴謹?shù)闹螌W精神和精益求精的理論水平都使我受益匪淺。在張璠老師的幫助下,我的專業(yè)知識和專業(yè)能力達到了質的飛躍。這一切對于我在以后的工作和學習中都有著巨大的幫助。在此,我在這里再次忠心的感謝張璠老師在系統(tǒng)開發(fā)過程中給予我的大力幫助,使我有信心解決難題,一步步的完成畢業(yè)設計,使得系統(tǒng)能及時開發(fā)完成。同時,我還要感謝這四年來曾經教過我的那些老師,沒有他們的指定與幫助,還有鼓舞,我的計算機水平或許還是停留在低級的階段。每一位老師都在教學和實驗上幫我答疑解惑,并交給我許多實用的技能。使得我畢業(yè)設計能夠順利的進行。對此,感謝各位老師的幫助。基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內核設計及其應用研究基于單片機的遠程抄表系統(tǒng)的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構件開發(fā)的技術研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉變壓器-數(shù)字轉換器的研究基于單片機的光纖Bragg光柵解調系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術研究基于單片機的膛壁溫度報警系統(tǒng)設計基于AVR單片機的低壓無功補償控制器的設計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網絡的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術的應用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務器技術的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學實驗中的應用研究基于單片機系統(tǒng)的網絡通信研究與應用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應用研究HYPER
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色環(huán)保型社區(qū)門衛(wèi)管理服務協(xié)議4篇
- 風機安裝施工方案
- 強夯土方施工方案
- 速度課程設計講解
- 2025年度新能源項目公司成立合作協(xié)議書規(guī)范文本4篇
- 2025年銷售人員保密與反不正當競爭協(xié)議維護企業(yè)合法權益2篇
- 2025年度個人向公司借款用于房屋維修貸款合同范本3篇
- 2025年度智能房屋租賃管理服務承包合同書4篇
- 2025年教育機構廚師團隊聘用及餐飲服務質量標準合同2篇
- 二零二五版民房建筑施工安全生產責任合同4篇
- 河南省鄭州市2023-2024學年高二上學期期末考試 數(shù)學 含答案
- 2024年資格考試-WSET二級認證考試近5年真題集錦(頻考類試題)帶答案
- 試卷中國電子學會青少年軟件編程等級考試標準python三級練習
- 公益慈善機構數(shù)字化轉型行業(yè)三年發(fā)展洞察報告
- 飼料廠現(xiàn)場管理類隱患排查治理清單
- 2024年公需科目培訓考試題及答案
- 【名著閱讀】《紅巖》30題(附答案解析)
- Starter Unit 2 同步練習人教版2024七年級英語上冊
- 分數(shù)的加法、減法、乘法和除法運算規(guī)律
- 2024年江蘇鑫財國有資產運營有限公司招聘筆試沖刺題(帶答案解析)
- 2024年遼寧石化職業(yè)技術學院單招職業(yè)適應性測試題庫含答案
評論
0/150
提交評論