版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> (20 屆)</b></p><p><b> E品書香網(wǎng)站建設(shè)</b></p><p><b> 摘 要</b></p><p> 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展。人們對于網(wǎng)
2、絡(luò)有了越來越多的要求.Ebay,阿里巴巴,淘寶的出現(xiàn),讓電子商務(wù)重現(xiàn)曙光,google,baidu的 出現(xiàn),讓人們通過網(wǎng)絡(luò)進行信息檢索,獲取到有效信息的途徑更加豐富。電子讀物也是在網(wǎng)絡(luò)產(chǎn)業(yè)中一枝獨秀,如起點中文網(wǎng),天下電子書等,許多人都走向了網(wǎng)絡(luò)作家這個方向,而電子書網(wǎng)站正式為廣大的愛好電子讀物的人們提供了交流與共享的平臺。 </p><p> E品書香網(wǎng)站基于電子讀物資源共享、用戶之間互動的功能,在開發(fā)設(shè)計
3、中,采用B/S(Browser/Server),這種結(jié)構(gòu)使得數(shù)據(jù)結(jié)果集合在瀏覽器中顯示,數(shù)據(jù)的處理在服務(wù)器進行,用戶只需要一個瀏覽器就可以遨游于使用本系統(tǒng)了了。數(shù)據(jù)庫方面,業(yè)界具有常用的關(guān)系數(shù)據(jù)庫管理系統(tǒng)Mysql,使系統(tǒng)安全性能更高。同時采用當前正在流行的J2EE技術(shù)開發(fā),采用jsp用戶界面更加的友好簡單易操作。當今論壇的界面設(shè)計非常的炫耀富麗,用戶體驗非常的良好,主要要到了jquery這個流行的JavaScript框架。</p
4、><p> 在開發(fā)中選擇了struts2+spring+hibernate(SSH)三大框架,dao層+service層+action層+view顯示層的mvc分層的開發(fā)模式,實現(xiàn)了應(yīng)用程序邏輯和頁面顯示分離,界面設(shè)計更簡單。</p><p> 關(guān)鍵詞:java;web;mysql ;電子書,社交,SSH,MVC,JavaSricpt, Jquery</p><p>
5、;<b> Abstract</b></p><p> With the continuous development of network technology. requirements for network has been increasing. Ebay, alibaba, taobao occurrence, let the electronic commerce recr
6、eate popular, Google, the emergence of baidu, let people through the network for information retrieval, obtain the effective ways of more abundant information rich. Of course,ebooks is most popular in the network ,such Q
7、iandian , The Book Sky and so on.More and more people get to be netwriter.So the net of ebook is provide a plat f</p><p> When the E Book Home bases on sharing resource and users can communicate to each oth
8、er. In the development of design, adopts B/S (is clicked/Server) structure, this kind of structure allows data only result sets in the Browser display, data processing in Server, users need not install client, and becaus
9、e by the Server unified management data, easy to ensure the consistency of the data. Database, recommend industry of the leading relational database management system, the system Mysql safety perf</p><p> I
10、n developing chose JSP + JavaBean + Mysql model, realized the application logic and page shows the separation, interface design more simple. JavaBean reusable software component meet, and meanwhile make small application
11、 programmer inputs, energy and reusable components, in simple applications to consider.</p><p> Keyword: java ,ebook, sns,struts2,spring,hibernate,B/S,JSP,JavaBean,ssh,mvc, JavaScript,jquery.</p>&l
12、t;p><b> 目錄</b></p><p><b> 1 系統(tǒng)概述1</b></p><p> 1.1 課題的目的和意義1</p><p> 1.2 國內(nèi)現(xiàn)狀分析1</p><p> 1.3 開發(fā)環(huán)境簡介1</p><p> 2 可行性
13、研究與需求分析2</p><p> 2.1 可行性研究2</p><p> 2.1.1 技術(shù)可行性2</p><p> 2.1.2 經(jīng)濟可行性2</p><p> 2.1.3 運行可行性2</p><p> 2.2 需求分析2</p><p> 2.2.1 系
14、統(tǒng)需求3</p><p> 2.2.2 性能需求3</p><p> 2.2.3 應(yīng)用需求分析3</p><p> 2.2.4其他需求分析3</p><p> 3 實現(xiàn)技術(shù)簡介4</p><p> 3.1 Html5+Css3.0+Javascript簡介4</p><p
15、> 3.2 Ajax和JSON4</p><p> 3.3 JSP技術(shù)簡介4</p><p> 3.4 Struts+Spring+Hiberate技術(shù)5</p><p> 3.4.1 Struts2.x技術(shù)5</p><p> 3.4.2 spring技術(shù)6</p><p> 3.4.3.
16、hibernate技術(shù)6</p><p> 4系統(tǒng)的概要設(shè)計7</p><p> 4.1 項目的功能概述7</p><p> 4.2數(shù)據(jù)庫概要設(shè)計13</p><p> 4.3文件結(jié)構(gòu)15</p><p> 5項目的詳細設(shè)計16</p><p> 5.1項目架構(gòu)圖16
17、</p><p> 5.2項目AJAX的請求17</p><p> 5.3項目功能模塊的詳細實現(xiàn)17</p><p> 5.4數(shù)據(jù)表庫的詳細設(shè)計23</p><p><b> 5 總結(jié)27</b></p><p><b> 參考文獻28</b></p
18、><p><b> 致謝29</b></p><p><b> 1 系統(tǒng)概述</b></p><p> 1.1 課題的目的和意義</p><p> 隨著互聯(lián)網(wǎng)和寬帶上網(wǎng)的普及,娛樂性的網(wǎng)站也是在IT領(lǐng)域占有極大的比例,并日益滲透到人們的日常生活中。如書籍的在線閱讀,對于閑暇時候,看看書陶冶
19、情操的時候,無需去拿著一本厚厚的笨重的書籍走來走去,一個移動設(shè)備及可以滿足我們的需要。電子書網(wǎng)站是運用現(xiàn)代通信技術(shù)、計算機和網(wǎng)絡(luò)技術(shù)進行的一種社會形態(tài),其目的是通過互聯(lián)網(wǎng)共享知識資源,從而實現(xiàn)社會財富的最大化利用。在E品書香的網(wǎng)站中,涉及書籍資源的提供,查詢,以及供用戶的閱讀,同時網(wǎng)站提供了會員模式,用戶可以注冊網(wǎng)站的會員,然后可以對網(wǎng)站的書籍做一些評價,并且可以和其他用戶在論壇里進行交流。</p><p>
20、本課題所研究的E品書香網(wǎng)站主要是為個人提供電子讀物的搜索,閱讀和用戶之間交流 的一個平臺,從而給個人帶來方便。</p><p> 課題目標是設(shè)計并實現(xiàn)一個B/S體系結(jié)構(gòu)的電子書資源提供網(wǎng)站。結(jié)合實踐,加強網(wǎng)頁開發(fā)技術(shù)和數(shù)據(jù)庫方面知識,學習相關(guān)開發(fā)工具和應(yīng)用軟件,體驗網(wǎng)站建設(shè)的過程,熟練掌握網(wǎng)絡(luò)數(shù)據(jù)庫編程方法。</p><p> 1.2 國內(nèi)現(xiàn)狀分析</p><p&
21、gt; 現(xiàn)在我國的信息管理水平還比較落后,這樣的機制已經(jīng)不能適應(yīng)時代的發(fā)展,因為它浪費了許多人力和物力,在信息時代傳統(tǒng)的管理方法必然被計算機為基礎(chǔ)的信息管理所取代。軟件作為一項有力的工具,只能當此種工具,與我們的實踐相結(jié)合起來的時候,才具有重大的社會價值及使用價值。因此根據(jù)目前實際的情況開發(fā)這樣一套管理系統(tǒng)是十分必要的。</p><p> 隨著科學技術(shù)的不斷提高,計算機科學技術(shù)日漸成熟,其強大的功能已為人們深
22、刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機應(yīng)用的一部分,使用計算機進行管理,具有著手工管理所無法比擬的優(yōu)點。例如:可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高工作的效率,也是信息正規(guī)化管理與世界接軌的重要條件。</p><p> 1.3 開發(fā)環(huán)境簡介</p><p> 本項目開發(fā)工具及版本如下:Eclipse,jdk6.0,mys
23、ql5.6,Tomcat6.0,struts2,spring3.0,hibernate3.6 final,在window7系統(tǒng)平臺進行項目的開發(fā),調(diào)試,與運行。</p><p> 本系統(tǒng)用時下流行的javaweb開發(fā)框架SSH(Spring+Struts+Hibernate)進行開發(fā),數(shù)據(jù)庫采用輕巧穩(wěn)定的MySql,界面使用jsp實現(xiàn)。本論文主要涉及軟件,數(shù)據(jù)庫與網(wǎng)絡(luò)技術(shù)等。涵蓋知識面廣,可有效地提高綜合運用所
24、學知識分析解決問題的能力,增強對事物的理解與掌握能力,掌握科學的研究方法,正確的設(shè)計思想,獨立思考,勇于進取,探索創(chuàng)新,為今后進一步學習與工作奠定了良好的基礎(chǔ)。</p><p> 2 可行性研究與需求分析</p><p> 2.1 可行性研究</p><p> 2.1.1 技術(shù)可行性</p><p> 技術(shù)可行性要考慮現(xiàn)有的技術(shù)
25、條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本系統(tǒng)用的是SSH框架開發(fā),主打語言是JAVA,由于框架對一些復(fù)用的代碼做了很好的封裝,并且提供了友好的API,所以上手較快,開發(fā)效率也大大提高,采用流行的開發(fā)IDE: Eclipse,對開發(fā)調(diào)試都有很好的支持,當前的計算機硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:由于目前單機模式相對發(fā)展成熟,故軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能高
26、、價格低,完全能滿足系統(tǒng)的需求。</p><p> 2.1.2 經(jīng)濟可行性 </p><p> 開發(fā)該系統(tǒng)所需的相關(guān)資料可以通過已存在的相關(guān)系統(tǒng)進行調(diào)查采集,所需的其他應(yīng)用軟件、硬件系統(tǒng)也易于獲得.因此,開發(fā)成本較低。而引進使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質(zhì)量的特點,可以節(jié)省不少人力、物力及財力。所以,從經(jīng)濟的角度來看,該系統(tǒng)可行。</p><
27、p> 2.1.3 運行可行性</p><p> 運行可行性是對組織結(jié)構(gòu)的影響,現(xiàn)有人員和機構(gòu)和環(huán)境對系統(tǒng)的適應(yīng)性及人員培訓補充計劃的可行性。當前信息化技術(shù)已經(jīng)相當普及,各類操作人員水平都有相當?shù)母叨龋栽谶\行上是可行性的。</p><p> 2.1.4 法律可行性</p><p> ?、?所有技術(shù)資料都為合法。</p><p&g
28、t; ?、?開發(fā)過程中不存在知識產(chǎn)權(quán)問題。</p><p> ?、?未抄襲任何系統(tǒng),不存在侵犯版權(quán)問題。</p><p> ④ 開發(fā)過程中未涉及任何法律責任。</p><p><b> 2.2 需求分析</b></p><p> 需求分析是軟件設(shè)計的一個重要的環(huán)節(jié)。本階段對系統(tǒng)管理系統(tǒng)的應(yīng)用情況作全面調(diào)查,以確定
29、系統(tǒng)目標。確定用戶的需求。用戶對系統(tǒng)的需求我們從以下幾方面進行分析。</p><p> 2.2.1 系統(tǒng)需求</p><p> 用JSP開發(fā)系統(tǒng)管理系統(tǒng)基于B/S模式,系統(tǒng)軟件和數(shù)據(jù)集中存放于服務(wù)器中,軟件的安裝與升級在服務(wù)器上進行。所有的工作基于瀏覽器,安裝、使用、維護、升級十分簡單。</p><p> 2.2.2 性能需求</p><
30、;p> 為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行。系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。由于本系統(tǒng)的添加功能對于整個系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,其準確性和及時性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準確性和及時性。</p><p> 2.2.3 應(yīng)用需求分析</p><p> (表2-1)系統(tǒng)需求硬件
31、分析</p><p> 系統(tǒng)的性能要求通常指系統(tǒng)需要的存儲容量以及后援存儲,重新啟動和安全性,運行效率等方面的考慮。 </p><p> 硬件系統(tǒng)環(huán)境:C600、1G MB(RAM)、500MB(HD)。系統(tǒng)運行時對數(shù)據(jù)的保密性要求不高對一般的數(shù)據(jù)不要求進行加密。此外,對其它軟件幾乎沒有依賴性,程序健壯性較好。</p><p> 2.2.4其他需求分析<
32、/p><p> 本系統(tǒng)有較好的可維護性、可靠性、可理解性、效率。易于用戶理解和操作。可維護性包括了可讀性、可修改性、可測試性、等含義??煽啃酝ǔ0ㄕ_性和健壯性。開發(fā)過程中,在各種矛盾的目標之間作權(quán)衡,并在一定的限制的條件下(經(jīng)費、時間、可用的軟、硬件資源等),使上述各方面最大限度的得到滿足。</p><p><b> 3 實現(xiàn)技術(shù)簡介</b></p>
33、<p> 本系統(tǒng)開發(fā)使用了主流的javaweb開發(fā)技術(shù),該系統(tǒng)核心開發(fā)部分Sturts+Spring+Hibernate,用戶視圖使用的是jsp做數(shù)據(jù)處理,使用ajax異步使用后臺的數(shù)據(jù)到傳輸?shù)揭晥D層,并用Html5.0+CSS3.0+javascript對視圖進行了修飾。數(shù)據(jù)的存儲使用的是mysql數(shù)據(jù)庫。</p><p> 3.1 Html5+Css3.0+Javascript簡介</
34、p><p> 2012年12月17日,萬維網(wǎng)聯(lián)盟(W3C)正式宣布凝結(jié)了大量網(wǎng)絡(luò)工作者心血的HTML5規(guī)范已經(jīng)正式定稿。根據(jù)W3C的發(fā)言稿稱:“HTML5是開放的Web網(wǎng)絡(luò)平臺的奠基石。到現(xiàn)在html5技術(shù)已經(jīng)成熟,并在許多網(wǎng)站得以使用。Html5相比html4有了更好的擴展,而且比之前的html語言要簡練好用,增加了許多新的標簽。同時也將一部分常用的javascript的交互操作進行了封裝。用html5.0生成的
35、頁面,具有更好的效果。配合上CSS3.0的使用更是如虎添翼。在頁面開發(fā)占據(jù)了重要的地位。目前許多瀏覽器廠商都兼容html這種語言,html5還支持移動的app開發(fā)。所以通過這次使用html5開發(fā)頁面,著實加深了對html的掌握。</p><p> 頁面的交互使用了jQuery,jQuery是用javascript開發(fā)的一個框架。使用jQuery我們無須操心瀏覽器的兼容問題。jQuery在瀏覽器兼容方面有了很好的
36、支持,而且jQuery語法簡單,優(yōu)雅簡潔??梢允刮覀兏玫木S護前端部分。</p><p> 3.2 Ajax和JSON</p><p> Ajax并不是一門單一的技術(shù),而是將多技術(shù)融合形成的一種數(shù)據(jù)處理方式,通過ajax可以實現(xiàn)視圖的局部更新。是的頁面數(shù)據(jù)顯示更加靈活。而對于javascript 一下簡稱js來說,ajax從服務(wù)器請求到的數(shù)據(jù)時經(jīng)過js做處理的。Js可以處理xml,JS
37、ON,但是JSON成了本項目的ajax操作的數(shù)據(jù)傳輸格式。</p><p> JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式。js操作JSON也是非常簡單的,相對于XMl,JSON更易于js解碼。
38、</p><p> 3.3 JSP技術(shù)簡介</p><p> JSP(Java Server Page服務(wù)器網(wǎng)頁)是從1998年開始出現(xiàn)的新技術(shù)。由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準,是基于JavaServlet以及整個Java體系的web開發(fā)技術(shù)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入腳本片段和JSP標記(Tag),構(gòu)成JSP網(wǎng)頁(*.js
39、p)。JSP技術(shù)為創(chuàng)建顯示動態(tài)生成內(nèi)容的web頁面提供了簡便的方法。JSP作為Java家族的一員,承襲了Java的特點,即跨平臺的特性,也即一次編譯,到處運行。</p><p> 在國外,己經(jīng)大量使用JSP作為網(wǎng)絡(luò)應(yīng)用程序的開發(fā)工具,而在國內(nèi),盡管JSP還不是主流開發(fā)技術(shù),但是由于JSP的強大優(yōu)勢,許多網(wǎng)站都已經(jīng)準備轉(zhuǎn)向JSP,利用JSP來開發(fā)動態(tài)網(wǎng)站。 </p><p> 本系統(tǒng)使用
40、通過使用jsp對將后臺處理過的數(shù)據(jù)進行格式化后給用戶顯示,是視圖(view)核心部分。</p><p> 3.4 Struts+Spring+Hiberate技術(shù)</p><p> 本項目的服務(wù)端是在Struts+Spring+Hiberate這三大框架的基礎(chǔ)上進行的開發(fā)的。對于javaweb的開發(fā),這三大框架式目前開發(fā)領(lǐng)域比較流行,也是比較的經(jīng)典和比較成熟的技術(shù)。</p>
41、<p> 3.4.1 Struts2.x技術(shù)</p><p> Struts是建立在MVC這種公認的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一個好的控制器和一套定制的標簽庫上,也就是說它的著力點在C和V上,因此,它天生就有MVC所帶來的一系列優(yōu)點,如:結(jié)構(gòu)層次分明,高可重用性,增加了程序的健壯性和可伸縮性,便于開發(fā)與設(shè)計分工,提供集中統(tǒng)一的權(quán)限控制、校驗、國際化、日志等等
42、;其次,它是個開源項目得到了包括它的發(fā)明者Craig R.McClanahan在內(nèi)的一些程序大師和高手持續(xù)而細心的呵護,并且經(jīng)受了實戰(zhàn)的檢驗,使其功能越來越強大,體系也日臻完善;最后,是它對其他技術(shù)和框架顯示出很好的融合性。Struts可以規(guī)范程序員的行為Struts是對MVC2模型的實現(xiàn),下圖是spring的基本原理:</p><p> 3.4.2 spring技術(shù)</p><p>
43、 Spring框架對于在java開發(fā)領(lǐng)域是一個并不陌生的框架,是一款優(yōu)秀的組件管理框架,其框架有著如下特點:</p><p> 1、spring能簡化企業(yè)級開發(fā), spring可以用簡單的java bean來代替實現(xiàn)復(fù)雜的EJB。 </p><p> 2、spring是一個輕量級的IOC和AOP框架,可以spring的IOC實現(xiàn)松耦合,而作為一個AOP框架他又能分離系統(tǒng)服務(wù),實現(xiàn)內(nèi)聚開
44、發(fā) 。</p><p> 3、spring是非侵入式,基于spring的系統(tǒng)可以不依賴于spring的類。</p><p> 良好的spring運用可以使程序代碼清晰,容易維護,容易測試。使用Spring可以避免factory和siglton的泛濫 ,Spring 的IOC容器通過配置文件,幫我們將業(yè)務(wù)邏輯類對象和依賴于它的對象全部實例化 ,不用我們?nèi)ナ止ew對象,不僅降低了耦合性,
45、而且使得程序員可以更關(guān)注于業(yè)務(wù)邏輯的實現(xiàn)。數(shù)據(jù)操作層和業(yè)務(wù)邏輯層用spring管理,因為這些包含到事務(wù)注入以及以后的擴展,pojo如果僅僅是用來傳值,也不會在上邊做什么改動的,則不用放在spring容器里好了. 同理 ,業(yè)務(wù)對象和持久層加以來讓Spring管理,這樣可以使用Spring的事務(wù)支持,簡單的pojo,只充當dto功能的,不存在狀態(tài)改變的,就不需要讓Spring來管理了DAO模式需要為每個DAO組件編寫DAO接口,同時至少提供
46、一個實現(xiàn)類,根據(jù)不同需要,可能有多個實現(xiàn)類。用Spring容器代替DAO工廠。通常情況下,引入接口就不可避免需要引入工廠來負責DAO組件的生成。Spring實現(xiàn)了兩種基本模式:單態(tài)模式和工廠模式。而使用Spring可以完全避免使用工廠模式,因為Spring就是個功能非常強大的工廠。因此,完全可以讓</p><p> 由Spring充當DAO工廠時,無須程序員自己實現(xiàn)工廠模式,只需要將DAO組件配置在Spring
47、容器中,由ApplicationContext負責管理DAO組件的創(chuàng)建即可。借助于Spring提供的依賴注入,其他組件甚至不用訪問工廠,一樣可以直接使用DAO實例。</p><p> 3.4.3.hibernate技術(shù)</p><p> Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)
48、據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任.這樣我們就可以專注在業(yè)務(wù)邏輯代碼中了。采用Hibernate作為持久層技術(shù)的最大的好處在于:可以完全以面向?qū)ο蟮姆绞竭M行系統(tǒng)分析、系統(tǒng)設(shè)計。這樣更加方便清晰地處理業(yè)務(wù)邏輯,更多的精力放在處理邏輯
49、的上面。</p><p><b> 4系統(tǒng)的概要設(shè)計</b></p><p> 系統(tǒng)的概要設(shè)計是在系統(tǒng)分析的基礎(chǔ)上由抽象到具體的過程。主要包括系統(tǒng)設(shè)計、數(shù)據(jù)庫的需求分析以及網(wǎng)站的整體設(shè)計三大塊。系統(tǒng)設(shè)計主要目標是將系統(tǒng)分析階段所提出的反映了信息需求的系統(tǒng)邏輯方案轉(zhuǎn)換成可以實施的基于計算機運行環(huán)境的具體方案,進行系統(tǒng)的概要設(shè)計,為下一階段系統(tǒng)詳細設(shè)計提供必要的技術(shù)資
50、料。</p><p> 4.1 項目的功能概述</p><p> 該項目以一個網(wǎng)站的形態(tài)存在,該網(wǎng)站的功能模塊結(jié)構(gòu)如下圖:</p><p> 首頁:首頁是用戶瀏覽網(wǎng)站首先看到的信息頁面:其算法是從書榜中隨機獲取到10本熱門小說展現(xiàn)給用戶。</p><p> 書庫:書庫可以說是本站的重要功能,該模塊為用戶提供了海量的書籍供用戶閱讀瀏覽
51、,網(wǎng)站中任何地方的有關(guān)書籍的信息都可以從書庫里獲得。</p><p> 論壇:展現(xiàn)給用戶的是論壇的版塊,以瀑布流的模式展現(xiàn)給用戶:每個論壇版塊的底部都會顯示1-3條不等的最新帖子。</p><p> 書榜:書榜是為用戶提供建議讀物的一種方式,通過書榜,可以了解到哪些書籍是廣大用戶正在閱覽的,書榜分日點擊,周點擊,月點擊,日推薦,周推薦,月推薦等六個榜單:分別統(tǒng)計出每天,每周,每個月的用
52、戶閱讀數(shù),推薦書最高的榜。</p><p> 搜索:輸入關(guān)鍵字,可以找到與關(guān)鍵字有關(guān)的作者,書名等書籍。</p><p> 登錄:用戶輸入用戶名,密碼,系統(tǒng)檢測后可進行相關(guān)的操作,登錄的流程采用的ajax操作。</p><p> 注冊:用戶輸入注冊信息便可成為本站的會員。從而進行推薦,評論,發(fā)帖等操作。</p><p> 小說詳情:在
53、這里可以收藏該小說(加入書架),推薦小說,評論該小說,并且系統(tǒng)會隨機推薦給用戶與之相關(guān)的書籍.</p><p> 帖子列表:用戶可以在這里發(fā)表帖子:</p><p> 用戶中心,在這里可以看到自己的昵稱,個性簽名,等級等,也能看到自己曾經(jīng)讀過的書,收藏的書,以及推薦過的書。</p><p> 設(shè)置中心,用戶可以設(shè)置密碼,昵稱,用戶頭像等個人信息,</p&
54、gt;<p> 4.2數(shù)據(jù)庫概要設(shè)計</p><p> 數(shù)據(jù)庫作為系統(tǒng)的基礎(chǔ),在信息管理系統(tǒng)中占有非常重要的地位,首先要保證其設(shè)計的合理性,一個設(shè)計合理的數(shù)據(jù)庫,可以提高數(shù)據(jù)的存儲效率,是對數(shù)據(jù)有效管理的前提條件,保證數(shù)據(jù)的完整和一致,也是系統(tǒng)設(shè)計的關(guān)鍵。擁有設(shè)計合理的數(shù)據(jù)庫往往可以起到事半功倍的效果。數(shù)據(jù)庫如果設(shè)計不當,系統(tǒng)運行當中會產(chǎn)生大量的冗余數(shù)據(jù),從而造成數(shù)據(jù)庫的極度膨脹,影響系統(tǒng)的運行
55、效率。</p><p> 本項目是面向大量用戶而開發(fā)的一個系統(tǒng),面對大數(shù)據(jù)時代,有必要去設(shè)計合適的數(shù)據(jù)庫來進行對數(shù)據(jù)的存儲管理。數(shù)據(jù)的。本系統(tǒng)主要設(shè)計了如下的數(shù)據(jù)表:</p><p> board 這里主要存放論壇的版塊信息;</p><p> book信息,項目的所有與書籍相關(guān)的數(shù)據(jù)都存放在這個表里</p><p> bookrea
56、d:當用戶對一本書籍進行閱讀的時候,會在該表插入記錄</p><p> bookshelf:當用戶收藏書籍的時候,會在該表存放那個記錄。</p><p> Booksort:對書籍的分類情況在這個表里存放。</p><p> Booktop:項目里榜單的信息都放在這里</p><p> Comment:存放在用戶對于發(fā)的帖子,評論,回
57、復(fù)</p><p> Explog:記錄用戶加經(jīng)驗的詳細情況.</p><p> Recommend:記錄了用戶推薦書籍的記錄</p><p> User:這是記錄用戶的名稱,密碼,等級等信息。</p><p> Userinfo:記錄用戶的收藏數(shù),推薦數(shù),閱讀數(shù)等統(tǒng)計信息。</p><p><b>
58、 數(shù)據(jù)模型如下:</b></p><p><b> 4.3文件結(jié)構(gòu)</b></p><p> 為了是項目在開發(fā)過程中能夠明確,清晰,所以搭建一個好的目錄也是必須的,這樣在日后的維護與更新也是非常容易的:</p><p> 下圖是本項目的目錄結(jié)構(gòu)圖:</p><p><b> 各個目錄簡介:
59、</b></p><p> SRC包下放的是后臺業(yè)務(wù)相關(guān)的代碼:</p><p> action包存放的是自定義的Action類,</p><p> dao包里是與操作數(shù)據(jù)相關(guān)的接口,旗下的impl包是對其接口的實現(xiàn)類</p><p> entity是與數(shù)據(jù)表對應(yīng)的java實體類</p><p>
60、 json包存放的是將數(shù)據(jù)下發(fā)的結(jié)構(gòu)進行封裝成json的方法類。</p><p> Service里存放的是業(yè)務(wù)邏輯的接口。旗下的impl是對接口的實現(xiàn)。</p><p> Servel包里存放的是自定義的一些servlet ,fileter等</p><p> Util包里是一些通用的自定義工具類,如MD5加密工具類,系統(tǒng)提示的字符串常量類等。</p&
61、gt;<p> Vo包中是對多參數(shù)請求的參數(shù)封裝。</p><p><b> 5項目的詳細設(shè)計</b></p><p><b> 5.1項目架構(gòu)圖</b></p><p> 通過概要設(shè)計可以總結(jié)出項目的具體架構(gòu),為了對項目進行更好的開發(fā)和日后的管理,所以對項目的封層是很有必要的下圖便是本項目的分層結(jié)構(gòu)
62、圖:</p><p> 下面對各個分層做詳細的介紹</p><p> 1.View層:主要有Jsp構(gòu)成,其中包含少量的html,用來講數(shù)據(jù)結(jié)果格式化后顯示給用戶。</p><p> 2.Action層:是控制層的一部分,有Struts組件進行開發(fā),主要負責解析校驗請求參數(shù)和執(zhí)行請求方法嗎以及對請求的轉(zhuǎn)發(fā)。</p><p> 3.Ser
63、vice層,是控制層的核心部分,實現(xiàn)整個業(yè)務(wù)邏輯,通過調(diào)用Dao層的基本業(yè)務(wù)操作方法來完成整個業(yè)務(wù)流程的實現(xiàn)。</p><p> 4.Dao層,該層是業(yè)務(wù)基本方法的實現(xiàn),有hibernate組件實現(xiàn),從數(shù)據(jù)持久層獲取期望的數(shù)據(jù)。</p><p> 5.數(shù)據(jù)持久層,是系統(tǒng)與數(shù)據(jù)庫的中間件,實現(xiàn)了對象與關(guān)系的封裝。主要給Dao層提供結(jié)果映射。</p><p> 5
64、.2項目AJAX的請求</p><p> 本項目的頁面顯示用了大量的異步請求,使用了ajax技術(shù),每個頁面的各個部分都是通過不同的異步請求得到數(shù)據(jù)而對頁面進行顯示的:如下圖:</p><p> 小說的信息是一個ajax請求,然后填充數(shù)據(jù),書香紛紜的版塊是一個ajax請求的數(shù)據(jù),你可能喜歡的版塊同樣也是一個ajax請求。</p><p> 5.3項目功能模塊的詳
65、細實現(xiàn)</p><p> 項目中使用了眾多的業(yè)務(wù),每個功能同時關(guān)聯(lián)著多個業(yè)務(wù)功能,,所以從項目擇取了幾個經(jīng)典的模塊供以介紹:</p><p> 登錄模塊:客戶端在登錄窗口輸入登錄號碼和登錄密碼,點擊“登錄”按鈕。客戶端發(fā)送“l(fā)ogin”請求,表示需要登錄,連接服務(wù)器。服務(wù)器接收到客戶端發(fā)送過來的賬號和密碼信息后,業(yè)務(wù)邏輯層Service比較輸入的用戶名和密碼和數(shù)據(jù)庫中信息是否相符,如果
66、相符則表示登錄成功,并封裝好跟蹤用戶的信息轉(zhuǎn)入本項目的網(wǎng)站。否則,則出現(xiàn)信息出錯提示框:</p><p><b> 相關(guān)代碼</b></p><p> public String login(String username, String password , HttpServletRequest request ) throws Exception {</
67、p><p> // TODO Auto-generated method stub</p><p> String md5Pass = MD5Util.getMd5(password) ;</p><p> User u = userDao.getUser(username) ;</p><p> if(null == u ){</
68、p><p> return JSONUtil.result(0, TipString.ERR_LOGIN);</p><p><b> }</b></p><p> if(!u.getPassword().equals(md5Pass)) {</p><p> return JSONUtil.result(0, Ti
69、pString.ERR_PASS) ; </p><p><b> } </b></p><p> SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");</p><p> List list = explogDao.get(u.getUserid(), C
70、onstants.EXP_LOGIN, sdf.format(new Date()));</p><p> if(list == null || list.size() <= 0 ){</p><p> explogDao.add(u.getUserid(),Constants.EXP_LOGIN, sdf.format(new Date()), Constants.EXP_LO
71、GIN) ;</p><p><b> }</b></p><p> u.setExp(u.getExp()+Constants.EXP_LOGIN);</p><p> int newlevel = LevelUtil.getLevel(u.getExp(), u.getLevel())[0];</p><p>
72、 u.setLevel(newlevel) ;</p><p> userDao.update(u);</p><p> request.getSession().setAttribute(Constants.USER_SESSION, u) ;</p><p> return JSONUtil.result(1, TipString.SUCC_LOGIN)
73、 ;</p><p><b> }</b></p><p><b> 注冊模塊</b></p><p><b> 相關(guān)代碼:</b></p><p> public String regist(String username, String password,Strin
74、g nick , HttpServletRequest request) throws Exception {</p><p> // TODO Auto-generated method stub</p><p> if(StringUtils.isEmpty(username)||StringUtils.isEmpty(password)){</p><p>
75、; return JSONUtil.result(0, TipString.NO_USER);</p><p><b> }</b></p><p> User u = userDao.getUser(username) ;</p><p> if ( null != u ) {</p><p> return
76、 JSONUtil.result( 0 ,TipString.USER_EXIST ) ;</p><p><b> } </b></p><p> u = new User() ;</p><p> String md5Pass = MD5Util.getMd5(password) ;</p><p> u.s
77、etUsername(username);</p><p> u.setPassword(md5Pass);</p><p> u.setHeadimg(Constants.HEAD_IMG_M) ;</p><p> u.setLevel(1) ;</p><p> u.setSex(1);</p><p>
78、 userDao.saveUser(u) ;</p><p> UserInfo info = userDao.getUserInfo(u.getUserid());</p><p> u.setUserInfo(info);</p><p> u.setNickname("書友"+u.getUserid()) ;</p>
79、<p> if(!StringUtils.isEmpty(nick)){</p><p> u.setNickname(nick);</p><p><b> }</b></p><p> request.getSession().setAttribute(Constants.USER_SESSION, u) ; </p
80、><p> return JSONUtil.result(1, TipString.SUCC_REG) ;</p><p><b> }</b></p><p> 圖5-3-6 回復(fù)流程圖</p><p><b> 對回復(fù)進行回復(fù):</b></p><p> 修改頭像模
81、塊:修改這個功能使用了兩個請求來完成這個業(yè)務(wù):</p><p><b> 設(shè)置頭像的效果:</b></p><p><b> 生成小頭像的代碼:</b></p><p> public String getCut(int x1 , int y1 , int x2, int y2) throws Exception {
82、</p><p> String fileName = this.getImage_fileFileName();</p><p> String perffix = fileName.substring(fileName.indexOf('.')+1, fileName.length());</p><p> Iterator<Imag
83、eReader> it = ImageIO.getImageReadersByFormatName(perffix);</p><p> ImageReader reader = it.next(); </p><p> FileInputStream fis = new FileInputStream(getImage_file());</p><p>
84、 ImageInputStream iis = ImageIO.createImageInputStream(fis); </p><p> reader.setInput(iis, true);</p><p> int nw = reader.getWidth(0);</p><p> int hw = reader.getHeight(0);<
85、/p><p> ImageReadParam param = reader.getDefaultReadParam(); </p><p> Rectangle rect = new Rectangle(x1, y1, 170, 170); </p><p> param.setSourceRegion(rect); </p><
86、p> BufferedImage bi = reader.read(0, param); </p><p> // 保存新圖片 </p><p> String newname = UUID.randomUUID().toString()+"."+perffix;</p><p> String path = this.getR
87、equest().getRealPath("/file/img");</p><p> ImageIO.write(bi, perffix, new File(path+"\\"+newname)); </p><p> JSONObject jo = new JSONObject();</p><p> jo.put(
88、"result", 1) ;</p><p> jo.put("url", "http://127.0.0.1:8080/booksky/file/img/"+newname);</p><p> return jo.toString();</p><p><b> }</b>&
89、lt;/p><p> 5.4數(shù)據(jù)表庫的詳細設(shè)計</p><p> 為了讓本項目的邏輯更完善,所以設(shè)計了如下的數(shù)據(jù)表:</p><p> Board表:是記錄了論壇版塊的信息,其中id是主鍵,并沒有任何的實際意義,user_name字段記錄了參與論壇的人數(shù),comment_num字段記錄</p><p><b> 用戶發(fā)帖的數(shù)量。
90、</b></p><p> Book表:是包含了書籍的信息,書名,作者,該書的簡介,以及書的封面都在這個表記錄,comment_num和tuijian_num,shoucang_num還有read_num分別記錄了用戶讀書的評論數(shù),推薦數(shù),閱讀數(shù),收藏數(shù)。</p><p> 圖5-4-2 book表</p><p> Bookread表,當用戶第一
91、次讀書的時候,會在這里記錄一下,用以顯示用戶的讀書記錄。</p><p> 圖5-4-3 bookread表</p><p> Bookshelf,在業(yè)務(wù)里稱之為書架,也叫收藏。當用戶將一本書收藏后,會記錄到這個表里。當查看一個用戶的書架時,會從這個表里讀取記錄。其中status代表是否刪除,這里摒棄了delete軟件,而是使用update語句做了軟刪除。</p><
92、;p> 圖5-4-4 bookshelf表</p><p> Booksort:這里是對站內(nèi)的圖書資源做了一個分類,利用type字段可以為以后的書籍類別擴展子類別更好的實現(xiàn)。</p><p> 圖5-4-5 booksort表</p><p> Booktop:這個表示記錄的排行榜的書籍信息。通過業(yè)務(wù)的定時任務(wù)功能模塊對計算書籍的排行榜,并寫入到表中,
93、為了加快數(shù)據(jù)查詢的速度,這里書籍的部分信息放到這個表中,避免了聯(lián)表查詢。</p><p> 圖5-4-6 booktop表</p><p> Comment表:這張表記錄了用戶發(fā)的帖子,回帖,以及對書的評論,回復(fù)都在這個表中。其中type區(qū)分的記錄的類型,1是對書的評論,2是與論壇業(yè)務(wù)相關(guān)的記錄</p><p> 圖5-4-7 comment表</p&g
94、t;<p> Explog 用戶加經(jīng)驗的記錄表,通過該表可以作為是否對用繼續(xù)加經(jīng)驗的依據(jù)。</p><p> Recommend表:當用戶推薦一本書的就會在該表記錄,同時查看用戶的推薦也是從該表獲取。</p><p> User表:這個表記錄了用戶的詳細信息,用戶名,密碼,昵稱,個性簽名,頭像等信息。</p><p> Userinfo表,這個
95、表用來對用戶書架上的書,推薦的書,閱讀的書等數(shù)量,為了對這些記錄進行更好的分頁</p><p> 圖5-4-9 userinfo表</p><p><b> 5 總結(jié)</b></p><p> 通過這次畢業(yè)設(shè)計,我體會到了很多,首先要把大學這四年所學的東西全部學以致用,在有限的時間內(nèi),一個人完成一個獨立的項目,從開發(fā)環(huán)境的搭建,數(shù)據(jù)庫的設(shè)
96、計,項目業(yè)務(wù)的設(shè)計,以及前段UI的設(shè)計,的確是一個極大的挑戰(zhàn)。但是在這個挑戰(zhàn)中我學習到了很多,不會的就到圖書管翻閱資料、或者去網(wǎng)上搜索,或者請教老師和同學,特別是老師和同學們,給予了我很大的幫助。在程序的設(shè)計中遇到了很多問題,印象深刻的就是搭建spring環(huán)境時配置的xml,總是測試失敗,后來順藤摸瓜,發(fā)現(xiàn)了缺少dtd引用文件,這個事情使我明白計算機是一門嚴謹?shù)膶W科,容不得絲毫馬虎,也容不得半點紕漏,如果你對計算機開玩笑,那么它便會消耗
97、你的時間來作為償還的代價。</p><p> 畢業(yè)設(shè)計給我?guī)淼牟粌H僅是挑戰(zhàn),更是機遇,他教會我如何去發(fā)現(xiàn)問題,然后如何解決問題,教我不能放棄,要一直的努力才能得到最后的勝利。通過畢業(yè)設(shè)計我不僅僅知道了更多的軟件方面的知識,也學會了一些新的思考方式</p><p><b> 參考文獻</b></p><p> [1]Bruce Eckel
98、,《Think In Java》第4版. 機械工業(yè)出版社, 2007-06-01 </p><p> [2]Michael Kofler著.楊曉云,王建橋,楊濤等譯. MySQL5權(quán)威指南.北京:人民郵電出版社.2007-03.</p><p> [3]李剛. 整合Struts+Hibernate+Spring應(yīng)用開發(fā)詳解[M]. 北京:清華大學出版社,2007</p>
99、<p> [4]Cay S. Horstmann,Gary Cornell 著 周立新,陳波,葉乃文《Java核心技術(shù)·卷1:基礎(chǔ)知識》,機械工業(yè)出版社,2013</p><p> [5]單東林,張曉菲,魏然,等 著,《鋒利的jQuery》第2版,人民郵電出版社,2012</p><p> [6]侯志松,《Hibernate完全手冊》 北京:機械工業(yè)出版社,20
100、08 </p><p> [7] [英] Ben Frain 著 王永強 譯,響應(yīng)式Web設(shè)計:HTML5和CSS3實戰(zhàn),人民郵電出版社,2013</p><p><b> 致謝</b></p><p> 在本次畢業(yè)設(shè)計中,我特別要感謝的是我的指導(dǎo)老師張璠老師!在論文題目的選定、資料查閱、收集和寫作的整個過程中,張璠老師都給予我細心指導(dǎo)和
101、耐心幫助。并對我的畢業(yè)設(shè)計做出了非常有價值的指點。張璠老師認真負責的工作態(tài)度,扎實嚴謹?shù)闹螌W精神和精益求精的理論水平都使我受益匪淺。在張璠老師的幫助下,我的專業(yè)知識和專業(yè)能力達到了質(zhì)的飛躍。這一切對于我在以后的工作和學習中都有著巨大的幫助。</p><p> 在此,我在這里再次忠心的感謝張璠老師在系統(tǒng)開發(fā)過程中給予我的大力幫助,使我有信心解決難題,一步步的完成畢業(yè)設(shè)計,使得系統(tǒng)能及時開發(fā)完成。</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- e品書香網(wǎng)站建設(shè)
- 軟件工程課程網(wǎng)站畢業(yè)論文
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文-《多媒體技術(shù)基礎(chǔ)》網(wǎng)絡(luò)開放課網(wǎng)站建設(shè)
- 軟件工程畢業(yè)論文-社交網(wǎng)站的設(shè)計與實現(xiàn)
- 軟件工程專業(yè)畢業(yè)論文
- 本科軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文基于web響應(yīng)式開發(fā)的it網(wǎng)站
- 本科軟件工程專業(yè)畢業(yè)論文
- 本科軟件工程專業(yè)畢業(yè)論文
- 圖書出版網(wǎng)站的前端設(shè)計與制作-軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文-android跑步應(yīng)用開發(fā)
- 軟件工程畢業(yè)論文--項目任務(wù)管理系統(tǒng)
- 軟件工程畢業(yè)論文-數(shù)據(jù)結(jié)構(gòu)教學網(wǎng)站的設(shè)計與實現(xiàn)
- 軟件工程畢業(yè)論文-c語言教學專題網(wǎng)站的設(shè)計與實現(xiàn)
- 軟件工程畢業(yè)論文-基于iebook的《軟件工程》多媒體課件的制作
- 大學生軟件工程畢業(yè)論文設(shè)計
- 本科畢業(yè)論文軟件工程設(shè)計
評論
0/150
提交評論