畢業論文基于SSH框架的定崗實習平臺的設計與實現_第1頁
畢業論文基于SSH框架的定崗實習平臺的設計與實現_第2頁
畢業論文基于SSH框架的定崗實習平臺的設計與實現_第3頁
畢業論文基于SSH框架的定崗實習平臺的設計與實現_第4頁
畢業論文基于SSH框架的定崗實習平臺的設計與實現_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘 要2關鍵詞: struts2、spring、hibernate、頂崗實習2引言3第一章41 關鍵技術41.1軟件環境41.2硬件環境51.3 spring簡介51.4 hibernate簡介71.5 struts2簡介8第二章92 基于ssh框架的頂崗信息處理平臺管理系統的實現92.1 spring的應用112.2 struts 的應用11總結16參考文獻17摘 要近些年來,隨著計算機的普及與發展,“internet”一詞已經讓我們不再感到陌生,隨著e時代的到來,新的理念和結構也在不斷的形成和完善,計算機網絡技術的發展對人類技術史的發展產生了不可磨滅的深遠影響。計算機網絡技術的發展推動了人

2、類的科學技術的發展,同時給人們的學習,工作和生活帶來了諸多的好處,特點主要體現在以下幾個方面: 快捷性、自由性、開放性、互動性、創新性。伴隨著計算機網絡技術的迅猛發展和廣泛應用,人類進入了全新的網絡經濟時代。信息化、數字化、全球化、網絡化應是21新世紀人類社會的重要特征,其中,以計算機網絡迅猛發展而形成的網絡化則是推動信息化、數字化和全球化的基礎和核心。計算機網絡技術的發展將以其融合一切現代先進信息技術的特殊優勢而在21世紀形成一場嶄新的信息技術革命,并進一步推動社會信息化和知識經濟的發展。而計算機網絡系統和相關技術也必將在21世紀社會信息化和知識經濟浪潮中更快更大的發展。本文采用了當今比較流

3、行的框架struts2+spring+ hibernate的系統結構,結合高職高專人才培養模式,依托第三方軟件平臺,成功開發融學習、資源共享、交流為一體的頂崗實習信息處理平臺學生管理系統。系統完成從功能測試和管理實踐的經驗積累,運行穩定,達到預期效果,為下一階段學生管理工作提供有益的思路,有很好的現實意義。關鍵詞: struts2、spring、hibernate、頂崗實習引言隨著大學學生畢業人數的增加及學校對頂崗實習生要求的提高,社會越來越重視將構建學生各類信息化管理軟件,集成到一個適應的軟件集成平臺中,這也是該處理平臺開發的目的。軟件行業的工業化趨勢導致了構件的產生,讓部分軟件能夠像硬件系

4、統那樣組合起來構建軟件系統,就實現了軟件的復用。若能結合系統的實際情況,充分利用已有的軟件構件,將會大大提高生產效率,減少大量的重復勞動。因此,為了方便構件的管理和復用,解決傳統的軟件開發模式中通用性差、柔性低、開發效率低等一系列問題,采用“高內聚,低耦合”的成熟框架stmts+s研ng+hibemate(簡稱ssh框架)來進行構件庫管理系統的開發,以達到軟件復用的目的。第一章1 關鍵技術struts、spring、hibernate是三個既相互獨立又彼此關聯的框架,它們可以無縫地整合起來構建靈活、易于擴展的多層web應用程序,struts用來實現表示層,spring實現業務層,hibemat

5、e實現持久層。圖1. struts、spring、hibernate關系圖1.1軟件環境操作系統要求:windows98、2000、xp瀏覽器版本要求:ie6以上。開發平臺:myeclipse 6.6 數據庫:mysqlweb服務:tomcat6.0主要技術:spring、hibernate、struts2.0、jfreechart1.2硬件環境處理器:1.5ghz主頻以上硬盤:40g以上內存:512mb以上。1.3 spring簡介spring是一個開源框架,它由rod johnson創建。它是為了解決企業應用開發的復雜性而創建的。spring使用基本的javabean來完成以前只可能由ej

6、b完成的事情。然而,spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何java應用都可以從spring中受益。目的:解決企業應用開發的復雜性功能:使用基本的javabean代替ejb,并提供了更多的企業應用功能范圍:任何java應用簡單來說,spring是一個輕量級的控制反轉(ioc)和面向切面(aop)的容器框架。輕量從大小與開銷兩方面而言spring都是輕量的。完整的spring框架可以在一個大小只有1mb多的jar文件里發布。并且spring所需的處理開銷也是微不足道的。此外,spring是非侵入式的:典型地,spring應用中的對象不依賴于spring

7、的特定類。 控制反轉spring通過一種稱作控制反轉(ioc)的技術促進了松耦合。當應用了ioc,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。你可以認為ioc與jndi相反不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。面向切面spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該做的完成業務邏輯僅此而已。它們并不負責(甚至是意識)其它的系統級關注點,例如日志或事務支持。 容器spri

8、ng包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建基于一個可配置原型(prototype),你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例以及它們是如何相互關聯的。然而,spring不應該被混同于傳統的重量級的ejb容器,它們經常是龐大與笨重的,難以使用。 框架spring可以將簡單的組件配置、組合成為復雜的應用。在spring中,應用對象被聲明式地組合,典型地是在一個xml文件里。spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了你。 所有spring的這些特征使你能夠編寫更干凈、更

9、可管理、并且更易于測試的代碼。它們也為spring中的各種模塊提供了基礎支持。spring可以給一個工程帶來的一些好處:spring能有效地組織你的中間層對象,無論你是否選擇使用了ejb。如果你僅僅使用了struts或其他的包含了j2ee特有apis的framework,你會發現spring關注了遺留下的問題。 spring能消除在許多工程上對singleton的過多使用。根據我的經驗,這是一個主要的問題,它減少了系統的可測試性和面向對象特性。 spring能消除使用各種各樣格式的屬性定制文件的需要,在整個應用和工程中,可通過一種一致的方法來進行配置。曾經感到迷惑,一個特定類要查找迷幻般的屬性

10、關鍵字或系統屬性,為此不得不讀javadoc乃至源編碼嗎?有了spring,你可很簡單地看到類的javabean屬性。倒置控制的使用(在下面討論)幫助完成這種簡化。 spring能通過接口而不是類促進好的編程習慣,減少編程代價到幾乎為零。 spring被設計為讓使用它創建的應用盡可能少的依賴于他的apis。在spring應用中的大多數業務對象沒有依賴于spring。 使用spring構建的應用程序易于單元測試。 spring能使ejb的使用成為一個實現選擇,而不是應用架構的必然選擇。你能選擇用pojos或local ejbs來實現業務接口,卻不會影響調用代碼。 spring幫助你解決許多問題而

11、無需使用ejb。spring能提供一種ejb的替換物,它們適于許多web應用。例如,spring能使用aop提供聲明性事務而不通過使用ejb容器,如果你僅僅需要與單個的數據庫打交道,甚至不需要jta實現。 spring為數據存取提供了一致的框架,不論是使用jdbc或o/r mapping產品(如hibernate)。 spring確實使你能通過最簡單可行的解決辦法解決你的問題。這些特性是有很大價值的。 總結起來,spring有如下優點:低侵入式設計,代碼污染極低獨立于各種應用服務器,可以真正實現write once,run anywhere的承諾spring的di機制降低了業務對象替換的復雜性

12、spring并不完全依賴于spring,開發者可自由選用spring框架的部分或全部1.4 hibernate簡介hibernate是一個開放源代碼的對象關系映射框架,它對jdbc進行了非常輕量級的對象封裝,使得java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 hibernate可以應用在任何使用jdbc的場合,既可以在java的客戶端程序使用,也可以在servlet/jsp的web應用中使用,最具革命意義的是,hibernate可以在應用ejb的j2ee架構中取代cmp,完成數據持久化的重任。hibernate的核心接口一共有5個,分別為:session、sessionfactor

13、y、transaction、query和configuration。這5個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。hibernate 中提供了兩級cache,第一級別的緩存是session級別的緩存,它是屬于事務范圍的緩存。這一級別的緩存由hibernate管理的,一般情況下無需進行干預;第二級別的緩存是sessionfactory級別的緩存,它是屬于進程范圍或群集范圍的緩存。這一級別的緩存可以進行配置和更改,并且可以動態加載和卸載。 hibernate還為查詢結果提供了一個查詢緩存,它依賴于第二級緩存。hibernate對象關系映射提供延

14、遲的與非延遲的對象初始化。非延遲加載在讀取一個對象的時候會將與這個對象所有相關的其他對象一起讀取出來。這有時會導致成百的(如果不是成千的話)select語句在讀取對象的時候執行。這個問題有時出現在使用雙向關系的時候,經常會導致整個數據庫都在初始化的階段被讀出來了。當然,你可以不厭其煩地檢查每一個對象與其他對象的關系,并把那些最昂貴的刪除,但是到最后,我們可能會因此失去了本想在orm工具中獲得的便利。一個明顯的解決方法是使用hibernate提供的延遲加載機制。這種初始化策略只在一個對象調用它的一對多或多對多關系時才將關系對象讀取出來。這個過程對開發者來說是透明的,而且只進行了很少的數據庫操作請

15、求,因此會得到比較明顯的性能提升。這項技術的一個缺陷是延遲加載技術要求一個hibernate會話要在對象使用的時候一直開著。這會成為通過使用dao模式將持久層抽象出來時的一個主要問題。為了將持久化機制完全地抽象出來,所有的數據庫邏輯,包括打開或關閉會話,都不能在應用層出現。最常見的是,一些實現了簡單接口的dao實現類將數據庫邏輯完全封裝起來了。一種快速但是笨拙的解決方法是放棄dao模式,將數據庫連接邏輯加到應用層中來。這可能對一些小的應用程序有效,但是在大的系統中,這是一個嚴重的設計缺陷,妨礙了系統的可擴展性。1.5 struts2簡介雖然struts2號稱是一個全新的框架,但這僅僅是相對st

16、ruts1而言。struts2 與struts1相比,確實有很多革命性的改進,但它并不是新發布的新框架,而是在另一個赫赫有名的框架:webwork基礎上發展起來的。從某種程度上來講,struts2沒有繼承struts1的血統,而是繼承webwork的血統。或者說,webwork衍生出了struts2,而不是struts1衍生了struts2。因為struts2是webwork的升級,而不是一個全新的框架,因此穩定性、性能等各方面都有很好的保證:而且吸收了struts1和webwork兩者的優勢,因此,是一個非常值得期待的框架。第二章2 基于ssh框架的頂崗信息處理平臺管理系統的實現領域模型其實

17、就是實體類,符合javabean編程的標準,只包含屬性及其setter和getter方法。實體類suppier對應的映射文件supplier.hbm.xml的配置如下: 配置好實體類的映射文件后,還必須在applicationcontext.xml文件中添加此映射文件的配置,并且還要在applicationcontext.xml中配置連接數據庫的信息,內容如下:org.hibernate.dialect.mysqldialecttruecom/pojo/supplier.hbm.xml 2.1 spring的應用添加學生信息的的方法封裝在supplier管理接口supplierdao中,方法的

18、具體是現在supplierdaoiml中,其中supplierdaoiml類繼承hibernatedaosupport類。利用spring的控制反轉機制來管理supplierdaoiml類,依賴注入sessionfactory來初始化hibernatedaosupport類中的sessionfactory,spring對supplierdaoiml類管理的配置文件applicationcontext.xml中,添加如下配置:還要在web.xml文件中添加對spring的listener配置,通過上述配置以后,在web服務啟動后,在spring容器中就自動創建supplierdaoimpl類的對

19、象,就可以通過該對象進行調用添加學生信息的方法。web.xml配置如下: org.springframework.web.context.contextloaderlistener2.2 struts 的應用(1)控制器的配置在呈現和控制器中使用struts,在web.xml文件中配置struts,以*.do的請求都經過actionservlet,通過actionservlet來實現struts的工作流程,配置如下:strutsorg.apache.struts2.dispatcher.filterdispatcherstruts/*(2) 其他組件的應用和配置1)jsp頁面 在jsp頁面su

20、pplier.jsp中,結合el表達式取之方式和通過supplier來收集表單的數據,如$supp.age。采用javascript腳本語言對表單的數據進行客戶端驗證,并以“supplier.do?command=add”提交請求給actionservlet處理。2)struts應用和配置通過struts的配置文件可以找到supplier類和supplieraction類,從而調用addsuppliser方法。在struts.xml文件,添加配置文件如下: /people/supplier.jsp/people/supplier.jsp/people/supplier.jsp/people/s

21、upplier.jsp/people/supplier.jsp /people/supplier.jsp待添加的隱藏文字內容2(3)開源組件的應用本系統還是用了一些開源組件,如圖表組件jfreechart。在action中應用,首先將他們相關的jar包加入到本系統的web-inflib下,然后編寫相應的類:public static string generatepiechart(string aa,string infostr, string titles,httpsession session, printwriter pw) string filename = null;font fon

22、t;try / 建立piedatasetdefaultpiedataset data = new defaultpiedataset();string ss = infostr.split(,);for (int n = 0; n ss.length; n+) string sspart = ssn.split(#);int tt = integer.parseint(sspart1);string mm = sspart0;data.setvalue(mm, tt);/ 生成chart物件pieplot plot = new pieplot(data);plot.setbackgroundp

23、aint(color.pink);/plot.setbackgroundpaint(color.white);plot.settooltipgenerator(new standardpietooltipgenerator();font = new font(黑體, font.center_baseline, 20);/ 這個地方是設置統計圖標題的字體和大小jfreechart chart = new jfreechart(,jfreechart.default_title_font, plot, true);texttitle tt = new texttitle(titles);tt.se

24、tfont(font);chart.setbackgroundpaint(java.awt.color.white);/ 統計圖片的底色chart.settitle(tt);/ 把生成的文件寫入到臨時的目錄中chartrenderinginfo info = new chartrenderinginfo(new standardentitycollection();filename = servletutilities.savechartaspng(chart, 500, 300, info,session);/ 選擇存儲成png格式的文件,當然你也可以使用savechartasjpeg的方法

25、生成jpg圖片/ 把image map 寫入到 printwriterchartutilities.writeimagemap(pw, filename, info, null, null);pw.flush(); catch (exception ex) system.out.println(error: + ex.getmessage();return filename;總結在這次畢業設計中,綜合軟件工程、數據庫原理、計算機網絡、面向對象程序設計、web程序設計這些大學期間的課程知識,將這些課程的理論知識都融于本系統的設計當中,使理論與實踐相結合。在之前的計算機綜合設計中我使用jsp+javabean技術來實現本系統,這次通過學習ssh這個流行的開發框架,更深入的對本系統進行重構和設計,是本系統的重用性、可維護性和靈活性都得到很大的提高。通過這次畢業設計,更加熟練的應用完整的軟件工程流程對塑料進銷系統進行了設計,即需求分析、系統設計、詳細設計、系統實現、測試這些階段、并應用面向對象方法學來完成本畢業設計;懂得如何配合使用uml工具對本系統進行面向對象和分析和設計,學會采用java web的流行架構struts-spring-hibernate來實現本系統;熟悉使用黑盒測試法來測試系統,檢查出系統的錯誤;深刻體會到如何更好的進行數據庫的設計,設計系統的實體聯系圖,即e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論