旅游網(wǎng)站后臺管理畢設論文論文_第1頁
旅游網(wǎng)站后臺管理畢設論文論文_第2頁
旅游網(wǎng)站后臺管理畢設論文論文_第3頁
旅游網(wǎng)站后臺管理畢設論文論文_第4頁
旅游網(wǎng)站后臺管理畢設論文論文_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

四川大學本科畢業(yè)論文基于JCR的內容管理系統(tǒng)設計四川大學本科畢業(yè)論文基于J2EE的旅游網(wǎng)站后臺管理系統(tǒng)基于J2EE的旅游網(wǎng)站后臺管理系統(tǒng)設計計算機科學與技術學生:XXXX指導老師:XXXXX[摘要]隨著計算機技術的發(fā)展,許多行業(yè)對計算機的應用日益廣泛,尤其以JAVA語言為基礎的開發(fā)項目,比如軟件開發(fā),系統(tǒng)開發(fā)等,當前JAVA語言使用量幾乎穩(wěn)居世界第一。與JAVA相關框架層出不窮,基于JAVA語言的優(yōu)勢,對其的研究應該更為廣泛。本文對基于J2EE的旅游網(wǎng)站后臺管理系統(tǒng)開發(fā)詳細進行介紹,其中按層次劃分,需求分析層包括用戶需求、功能需求、非功能需求、配置需求,在這四個方法進行了詳細的介紹;系統(tǒng)結構層,對本系統(tǒng)開發(fā)框架進行了詳細介紹,包括類模型設計和數(shù)據(jù)表設計以及類之間方法調用關系,過程有相應的圖據(jù)以參考。本文對技術性知識,主要是J2EE開源框架,據(jù)權威人士分析,J2EE技術當前發(fā)展普及全球并會繼續(xù)發(fā)展,其技術會對于將會投入到軟件開發(fā)方向上的人員來說,重要性毫無疑問,其將會帶來的機會可想而知,所以本文也就使用到的J2EE框架進行介紹。主要是對Struts2、Spring、Hibernate三大開源框架的基本功能特性和原理進行分析,同時也對Ajax交互技術進行有效分析,最后總結本次開發(fā)項目收獲。[關鍵字] 系統(tǒng) J2EE Ajax 框架TravelwebsitebackstagemanagementsystembasedonJ2EEisdesignedComputerscience&technologyStudent: ZHANG Xxx Adviser: CHEN Xxx-xxx[Abstract]Withthedevelopmentofcomputertechnology,Manyindustryincreasinglyextensiveapplicationofcomputer,especiallybasedonJAVAdevelopmentprojects,suchassoftwaredevelopment,systemdevelopment,suchastheJAVAlanguageusagealmostranksfirstintheworld.AssociatedwiththeJAVAframeworksemergeinendlessly,basedontheadvantagesofJAVAlanguage,theresearchshouldbemorewidely.Inthispaper,thetravelwebsitebackstagemanagementsystembasedonJ2EEdevelopmentisdescribedindetail,whichaccordingtolevelclassification,requirementanalysislayerincludinguserneeds,functionalrequirements,non-functionalrequirements,configurationrequirements,thefourmethodsisintroducedindetail;Systemstructurelayer,thisframeworksystemdevelopmentareintroducedindetail,includingmodeldesignanddatatabledesignandclassrelationshipsbetweenmethodcalls,whichprocesshavecorrespondingfigurereference.Inthispaper,thetechnicalknowledge,mainlyistheJ2EEopensourceframework,accordingtoauthorities,J2EEtechnologydevelopmentcurrentglobalpopularityandwillcontinuetodevelop,thetechnologyforthepersonnelwillbeinvolvedinsoftwaredevelopmentdirection,importanceandthereisnodoubtthatitwillbringtheopportunity,sothispaperalsointroducestheJ2EEframeworkisusedto.Mainlytothethreeopensourceframeworkstruts2,Spring,Hibernate,thebasicfeatureandprinciplewereanalyzed,andatthesametimealsotoAjaxinteractiontechniquesforeffectiveanalysis,finallysummarizesthedevelopmentproject.[KeyWords] System J2EE Ajax framwork目錄TOC\o"1-3"\f\h\z\u233111綜述 5131982旅游網(wǎng)站后臺管理系統(tǒng)設計 776302.1旅游網(wǎng)站管理系統(tǒng)介紹 7203522.2旅游網(wǎng)站后臺管理系統(tǒng)需求分析 8179232.2.1用戶需求 8268502.2.2功能需求 8126732.2.3非功能需求 10139822.2.4配置需求 10292582.3系統(tǒng)框架結構設計 11262182.3.1系統(tǒng)整體框架概述 11153782.3.2數(shù)據(jù)表設計 12283422.3.3系統(tǒng)的基本類模型設計 1479092.4系統(tǒng)的基本功能實現(xiàn) 18197642.4.1配置文件 18352.4.2添加功能 21323682.4.3查詢功能 2331132.4.4更新功能 2480162.4.5刪除功能 27282473操作界面展示 29285363.1功能界面 29190443.2詳細操作界面 30255714主要使用技術介紹 3323224.1Ajax技術 33131044.2SSH技術 33234915總結 3620855參考文獻 3713697聲明 3816290致謝 3911635附錄 401綜述隨著計算機技術的發(fā)展,許多行業(yè)對計算機的應用日益廣泛,尤其以JAVA為基礎的開發(fā)項目,比如軟件開發(fā),系統(tǒng)開發(fā)等,當前JAVA語言使用量幾乎穩(wěn)居世界第一。與JAVA相關框架層出不窮,基于JAVA語言的優(yōu)勢,對其的研究應該更為廣泛。作為一名大學計算機專業(yè)畢業(yè)的并且對JAVA尤其是J2EE方向的技術充滿濃厚興趣的的學生,更應該學習掌握先前的技術(Struts2,Spring,Hibernate),并進行實際項目開發(fā),獲得更多的開發(fā)經(jīng)驗,從而對編程尤其是JAVA方向的編程思想更深刻透徹,為自己以后在JAVA方向的開發(fā)研究奠定基礎。本次開發(fā)的旅游網(wǎng)站后臺管理系統(tǒng)基于J2EE,目的就是學習J2EE的Struts2、Hibernate、Spring三大開源框的使用,希望通過此次課題設計不斷提高自己對J2EE的掌握程度,積累更多的實踐經(jīng)驗。對于J2EE的發(fā)展現(xiàn)狀及前景,在舊金山舉行的2011年JavaOne大會上,甲骨文公司展示了其推動Java平臺企業(yè)版(JavaEE)發(fā)展的最新成果,JavaEE繼續(xù)大受歡迎,并有越來越多的開發(fā)人員采用,包括OracleGlassFishServer在內的JavaEE組件獲得了4000萬次下載,自2009年12月推出以來,6個主要IT廠商已經(jīng)推出了經(jīng)過認證、開源和商業(yè)實施的JavaEE6,使其成為迄今為止最迅速獲得采用的平臺產(chǎn)品,作為下一代JavaEE,JavaEE7進展順利,其中,有超過20個的不同參與企業(yè)和數(shù)百名工程師通過Java社區(qū)(JCP)對10個活躍的Java規(guī)范要求(JSRs)進行了開發(fā)處理,JavaEE7JSRs包括:JavaEE7平臺,JavaPersistenceAPI2.1,JAX-RS2.0,用于RESTful網(wǎng)絡服務的JavaAPI,Servlet3.1,表達語言3.0,Java信息服務2.0,JavaServerFaces2.2,EnterpriseJavaBeans3.2,面向JavaEE1.1的ContextsandDependencyInjection,BeanValidation1.1.等,JavaEE7專家組也在尋求把其他JSRs加入到JavaEE7的可能性,這些JSRs包括JCache1.0–JavaTemporaryCachingAPI,ConcurrencyUtilities1.0,Java狀態(tài)管理1.0和JavaIdentityAPI1.0。JavaEE7旨在進一步增強JavaEE平臺的云環(huán)境,因此,基于JavaEE-7的應用和產(chǎn)品將能夠在私有云和公有云中更方便地操作,并通過支持多用戶租用和彈性使用(如平行擴展)等功能來實現(xiàn)功能即服務,作為JavaEE的參考實施,GlassFish服務器不僅僅是全面的JavaEE6實施,(開源版是GlassFish服務器開源版,商業(yè)版是OracleGlassFish服務器),還為即將推出的JavaEE7提供了堅實的基礎,OracleGlassFish服務器完善了OracleWebLogic服務器11g,后者是一款專門為運行Oracle融合中間件11g的廣泛產(chǎn)品組合以及可內部部署和云部署的大規(guī)模企業(yè)應用而設計的服務器,甲骨文在2011年JavaOne大會的136個聯(lián)合研討會、BOF和動手實驗室,以及JavaOne展覽館中對JavaEE及相關技術進行了展示。J2EE技術當前發(fā)展普及全球并會繼續(xù)發(fā)展[1]。本文的主要工作是對基于J2EE的旅游網(wǎng)站后臺管理系統(tǒng)開發(fā)詳細進行介紹,其中按層次劃分,需求分析層包括用戶需求、功能需求、非功能需求、配置需求,在這四個方法進行了詳細的介紹;系統(tǒng)結構層,對本系統(tǒng)開發(fā)框架進行了詳細介紹,包括類模型設計和數(shù)據(jù)表設計以及類之間方法調用關系,過程有相應的圖據(jù)以參考。本文對技術性知識,主要是J2EE開源框架,據(jù)權威人士分析,J2EE技術當前發(fā)展普及全球并會繼續(xù)發(fā)展,其技術會對于將會投入到軟件開發(fā)方向上的人員來說,重要性毫無疑問,其將會帶來的機會可想而知,所以本文也就使用到的J2EE框架進行介紹。主要是對Struts2、Spring、Hibernate三大開源框架的基本功能特性和原理進行分析.系統(tǒng)性的學習軟件開發(fā)流程,并在此過程中對J2EE開源框架的使用以及軟件開發(fā)思想進行深一步理解。熟練項目開發(fā)全套工具及軟件的配套使用。2旅游網(wǎng)站后臺管理系統(tǒng)設計2.1旅游網(wǎng)站管理系統(tǒng)介紹一個強大的旅游網(wǎng)站應該具有的功能有:景區(qū)景點展示、景點導航、詩詞游記管理、風景圖片展示、精彩視頻管理、交通信息查詢、自助游。天氣預報、在線咨詢、在線幫助、在線調查、旅客評論、旅客投訴反饋、門票預定、酒店預定、餐飲預定、車位預定、導游預定、旅客論壇、旅客博客、特產(chǎn)購物管理、旅客流量統(tǒng)計、網(wǎng)站流量統(tǒng)計等。以上功能是旅游網(wǎng)站全方位描述,寫過項目的人都知道,一個系統(tǒng)的不同功能所用技術大致相同,本次設計著重學習,特此主要是在新聞管理也就是景區(qū)基本信息管理,以及線路管理兩大功能及相關的的基礎上,對其幾個問題實現(xiàn)的具體功能進行介紹分析。在景點基本信息功能一欄:以地區(qū)為總類別區(qū)分,對總類別可以添加、查看、更新、刪除,總類別只記錄類別名稱和形象圖片。在此基礎上,添加景點信息類別和景點詳細信息,景點類別只設名稱一列,詳細信息則包括名稱、熱度、形象圖片等。在景區(qū)圖片管理功能一欄:針對圖片類別設立類別CRUD功能,圖片添加在此基礎上進行,對于圖片模塊,自定義圖片無限分類形式,對于圖片的大小,格式,展示效果進行顯示控制。在景點視頻管理功能一欄:在總類別的基礎上,上傳自定義的格式視頻,其格式可以是avi,mpg,mp4,mv等常用格式,旅客可以將自己在旅游過程中拍攝的視頻在一定容量范圍內上傳,后臺也可以上傳些對于景點的宣傳視頻。在旅游線路功能一欄:管理員可以對線路類別及線路詳細信息進行CRUD操作,比如記錄線路出發(fā)城市、出發(fā)時間、持續(xù)時間、價錢、熱度等信息,方便旅客查詢,購票等。對于用戶信息管理、用戶訂單管理分別對用戶的基本信息,和訂單信息進行對應的操作,旅客評論上可以對旅客曾經(jīng)對景點視頻等做過的評論進行管理,旅客可以對旅游過的景點進行點評,交互意見等。另外附加功能一還有針對游客流量統(tǒng)預測計功能:在根據(jù)系統(tǒng)中存儲的歷史游客數(shù)據(jù),參考導游、門票、餐飲、酒店、停車位的預定量,結合天氣預報、游客流量走勢、景區(qū)接待量、民俗節(jié)日、國家法定節(jié)假日、宗教節(jié)日、景區(qū)節(jié)日等方面,通過一定的推測原理推測出未來某月、某周、某日、某地的游客流量記錄。附加功能二便是針對當前網(wǎng)站流量統(tǒng)計:統(tǒng)計分析分別以年、月、日、時段為單位對網(wǎng)站整體訪問量,統(tǒng)計分析全球來訪IP的區(qū)域,統(tǒng)計分析網(wǎng)站各主要頻道的訪問量,統(tǒng)計分析各主要搜索引擎對網(wǎng)站的搜索頻率,可以把結果用餅狀圖或柱狀圖展現(xiàn)出來。下面對本次的設計進行詳細傳述。2.2旅游網(wǎng)站后臺管理系統(tǒng)需求分析2.2.1用戶需求時代在進步,人們生活水平不斷提高,從而變得不僅對物質生活的要求高,而且越來越注重精神上的享受。旅游是人們尋求精神上的愉快感受的一種形式,讓人們對此興趣日益高升,所以旅游業(yè)的發(fā)展是社會發(fā)展人們生活水平提高的必然趨勢。當今世道,計算機互聯(lián)網(wǎng)的不斷發(fā)展為旅游提供了方便,躍然旅游信息量越來越大,涉及全國各地乃至世界,其業(yè)務操作中設計的各種路線信息,客戶情況,各旅游協(xié)作部門越來越復雜多變,人們對信息的撐握重要性越來越高,為滿足人們對旅游信息收集,方便人們快捷辦理門票、交通、餐用等手續(xù),旅游網(wǎng)站的發(fā)展也就在情理之中了。所以,從網(wǎng)站開發(fā)的角度考慮出發(fā),網(wǎng)站按功能模塊進行分割,然后將旅游各種信息通過網(wǎng)站建設發(fā)布到網(wǎng)絡上,對于旅客來說,這無疑提供了無上方便快捷,給有心出門旅行的人們以快捷,在家中就可以輕松做好旅行規(guī)劃。網(wǎng)站的內容以唯美的圖片、生動形象的FLASH展示、拍攝的精美視頻,優(yōu)美的音樂,詳細的信息,清晰的線路等吸引越來越多的旅客,并可以使旅客通過訪問網(wǎng)站的方式了解旅行目的地的相關情況以及線路策劃與安排等等。目前旅游網(wǎng)絡門戶類型主要有三種類型,門戶網(wǎng)站旅游頻道的綜合信息服務類、傳統(tǒng)類旅行社網(wǎng)站、第三方旅游中介服務網(wǎng)站。隨著中國人民生活水平的的不斷提高,旅游業(yè)的發(fā)展有望得到進一步的突破。因此,具有現(xiàn)代化的互聯(lián)網(wǎng)多媒體信息技術的旅游網(wǎng)站的建設具有不可估量的意義。2.2.2功能需求如下是該系統(tǒng)的一個基本的用例圖:圖2-1系統(tǒng)用例圖下面以本次開發(fā)的功能劃分,分為添加、讀取、更新、刪除四個主要功能。從功能層面上來劃分的話,四個功能操作的數(shù)據(jù)以及中間涉及的方法調用流程大體相似。本旅游網(wǎng)站的后臺管理基本功能如下:基本信息的添加:包括景點基本信息、圖片基本作息、視頻基本信息、線路基本信息添加。主要是用戶或者管理員通過JSP頁面進行數(shù)據(jù)錄入并提交頁面,由Struts2的filter攔截進入Struts2的action對應方法進行算是,然后調用Hibernate相關方法直接在數(shù)據(jù)庫里進行插入并將結果返回到相應的 JSP頁面。圖2-2用例圖基本信息的讀?。喊ň包c基本信息、圖片基本信息、視頻基本信息、線路基本信息、用戶相關信息等。主要是用戶或者管理員通過JSP頁面進行數(shù)據(jù)錄入并提交頁面,由Struts2的filter攔截進入Struts2的action對應方法進行算是,然后調用Hibernate相關方法直接在數(shù)據(jù)庫里進行插入并將結果返回到相應的 JSP頁面。圖2-3用例圖基本信息的更新:包括景點基本信息、圖片基本作息、視頻基本信息、線路基本信息更新。主要是用戶或者管理員通過JSP頁面進行數(shù)據(jù)錄入并提交頁面,由Struts2的filter攔截進入Struts2的action對應方法進行算是,然后調用Hibernate相關方法直接在數(shù)據(jù)庫里進行插入并將結果返回到相應的 JSP頁面。圖2-4用例圖基本信息的刪除:包括景點基本信息、圖片基本作息、視頻基本信息、線路基本信息刪除。主要是用戶或者管理員通過JSP頁面進行數(shù)據(jù)錄入并提交頁面,由Struts2的filter攔截進入Struts2的action對應方法進行算是,然后調用Hibernate相關方法直接在數(shù)據(jù)庫里進行插入并將結果返回到相應的 JSP頁面。圖2-5用例圖2.2.3非功能需求功能性:在功能上要滿足旅游網(wǎng)站的常規(guī)操作,對于客戶來說,客戶可以瀏覽查詢自己需要的數(shù)據(jù),可以下訂單,可以將當前查詢或者是收錄的信息存儲到自己的比如收藏夾,用記可以對自己的個人信息進行錄入更改,還有進行一些自己數(shù)據(jù)的刪除。對于管理員來說,管理員有對旅游信息的添加查詢更新刪除的權限,還有對客戶的部分信息進行管理,比如查看,甚者可以是刪除,管理員也可以對自己的基本信息進行管理。安全性:該系統(tǒng)功能上應具有較高的安全性,關鍵是要防止非法用戶進入系統(tǒng)修改、刪除后臺數(shù)據(jù),黑客切取用戶資料,用戶對景點信息的操作權限等。為防止這些情況的發(fā)生,可在用戶數(shù)據(jù)傳輸過程中用MD5算法對用戶數(shù)據(jù)加密存儲,在后臺操作數(shù)據(jù)進行身份驗證。c.可靠性:該系統(tǒng)應具備較好的穩(wěn)定性,能存儲較大的數(shù)據(jù)量,在多用戶并發(fā)訪問環(huán)境下可以保重系統(tǒng)正常運行,不會產(chǎn)生干擾操作,在數(shù)據(jù)數(shù)據(jù)庫的選取以及表的設計方面應注意效率,比如給需要經(jīng)常訪問的屬性列建立索引,適當增加服務器內存等。d.易用性:由于本系統(tǒng)將采用B/S三層架構,客戶使用的瀏覽器類型以及版本多種多樣,在對頁面展示方面要處理好不同瀏覽器的顯示效果,要讓用戶有較好的瀏覽體驗。e.易維護性:該系統(tǒng)以J2EE三大框架為支撐,在開發(fā)過程中盡量采用面向接口編程,避免將程序直接寫死的情況,遵循低耦合的設計原則,增加系統(tǒng)的可擴展性和可維護性。2.2.4配置需求本次旅游網(wǎng)站后臺管理系統(tǒng)采用B/S架構,服務器使用Tomcat,數(shù)據(jù)庫采用MySQL,開發(fā)工具MyEclipse,操作系統(tǒng)Windows7。2.3系統(tǒng)框架結構設計2.3.1系統(tǒng)整體框架概述該旅游網(wǎng)站后臺管理系統(tǒng)的整體框架如圖: 圖2-6系統(tǒng)框架圖該系統(tǒng)采用J2EE的Struts2,Spring,Hibernate框架對過程進行控制并對站內數(shù)據(jù)進行操作,前臺提交頁面數(shù)據(jù)到后臺,通過Struts2的filter進行攔截,將數(shù)據(jù)提交到Struts2的action操作里進行處理,action方法則通過Hibernate操作數(shù)據(jù)庫數(shù)據(jù),Spring貫穿在Strust2和Hibernate的整個過程,主動創(chuàng)建程序過程需要的對象。整個過程主要采用面向接口編程,Jsp頁面的數(shù)據(jù)交互技術運用Ajax。主要數(shù)據(jù)操作功能有create、read、update、delete也就是數(shù)據(jù)的增刪改查。該系統(tǒng)的基本時序如圖:圖2-7系統(tǒng)時序圖該時序圖說明:程序執(zhí)行流程,從客戶端提交JSP頁面請求開始,通過tomcat服務器,頁面請求數(shù)據(jù)被Struts2的Filter攔截,數(shù)據(jù)傳送至Struts2的action里,action調用model進行對應數(shù)據(jù)的獲取,具體數(shù)據(jù)操作,由action調用上層管理接口manageDAO,上層管理接口調用自己的特定實現(xiàn)manageDAOImp去進行操作,manageDAOImp再調用模型操作上級接口modelDAO,再由該接口調用自己的實現(xiàn)modelDAOimp去直接操作數(shù)據(jù)庫Database,最后操作結果由action返回至JSP結果頁面,而Spring的DI功能貫穿整個過程,主要是Struts2和Hibernate相互操作的過程的創(chuàng)建對象。2.3.2數(shù)據(jù)表設計該系統(tǒng)存儲信息類型較多,主要應用數(shù)據(jù)表及結構如下:admininfo_class:information:line_class:line_info:picture_class:picture_info:top_belong:video:2.3.3系統(tǒng)的基本類模型設計本項目以action,service,dao,daoimp,model方式分層,其類調用關系如下:圖2-8層次調用關系根據(jù)此分層開發(fā)思想,該項目的開發(fā)包圖如下:圖2-9系統(tǒng)包圖在以上的基礎上,設計的類與包的關系圖如下:action包:service包:dao包:daoimp包:model包:根據(jù)本項目的需求,對各類內部進行設計,由調用的關系圖2-8可知,每一層的方法相同以滿足調用,這里只寫出action包中主要類的方法:管理員類:信息類別類:信息詳細類:線路類別類:線路詳細類:圖片類別類:圖片詳細類:總屬類:視頻類:以Information類create方法調用為例,關系如下:圖2-10方法調用詳細2.4系統(tǒng)的基本功能實現(xiàn)2.4.1配置文件配置文件主要有兩個beans.xml和struts.xml。其中beans.xml配置,主要實現(xiàn)數(shù)據(jù)源鏈接,SessionFactory以及HibernareTemplate的bean生成,代碼如下:<beanid="dataSource"class="mons.dbcp.BasicDataSource" destroy-method="close"> <propertyname="driverClassName"value="com.mysql.jdbc.Driver"/> <propertyname="url"value="jdbc:mysql://localhost:3306/travel"/> <propertyname="username"value="root"/> <propertyname="password"value="root"/> </bean><beanid="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <propertyname="dataSource"ref="dataSource"/> <propertyname="packagesToScan"> <list> <value>.model</value> </list> </property> <propertyname="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <propkey="hibernate.show_sql">true</prop> <propkey="hibernate.format_sql">true</prop> <propkey="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean><beanid="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"> <propertyname="sessionFactory"ref="sessionFactory"></property> </bean>其中struts.xml配置,實現(xiàn)頁面跳轉映射,主要代碼如下:<actionname="basePage"> <result>/back/basepage.jsp</result></action> <actionname="adminLoginPage"class=".action.AdminAction"></action><actionname="topBelong"class=".action.TopBelongAction"> <result>/back/top_belong_create.jsp</result> <resultname="show">/back/top_belong_show.jsp</result> <resultname="update">/back/top_belong_update.jsp</result></action><actionname="infoClass"class=".action.InfoClassAction"> <result>/back/info_class_create.jsp</result> <resultname="show">/back/info_class_show.jsp</result> <resultname="update">/back/info_class_update.jsp</result></action><actionname="information"class=".action.InformationAction"> <result>/back/information_create.jsp</result> <resultname="show">/back/information_show.jsp</result> <resultname="update">/back/information_update.jsp</result></action><actionname="pictureClass"class=".action.PictureClassAction"> <result>/back/picture_class_create.jsp</result> <resultname="show">/back/picture_class_show.jsp</result> <resultname="update">/back/picture_class_update.jsp</result></action><actionname="pictureInfo"class=".action.PictureInfoAction"> <result>/back/picture_info_create.jsp</result> <resultname="show">/back/picture_info_show.jsp</result> <resultname="update">/back/picture_info_update.jsp</result></action><actionname="video"class=".action.VideoAction"> <result>/back/video_create.jsp</result> <resultname="show">/back/video_show.jsp</result> <resultname="update">/back/video_update.jsp</result></action><actionname="lineClass"class=".action.LineClassAction"> <result>/back/line_class_create.jsp</result> <resultname="show">/back/line_class_show.jsp</result> <resultname="update">/back/line_class_update.jsp</result></action><actionname="lineInfo"class=".action.LineInfoAction"> <result>/back/line_info_create.jsp</result> <resultname="show">/back/line_info_show.jsp</result> <resultname="update">/back/line_info_update.jsp</result></action> <actionname="undoPage"class=".action.UndoAction"><result>/back/undopage.jsp</result></action>2.4.2添加功能不同數(shù)據(jù)相同操作方法相似,流程大致相同,這里只例舉景點信息的功能方法。景點詳細信息的添加實現(xiàn):(InformationAction)publicStringcreate()throwsIOException{ HttpServletResponseresponse=ServletActionContext.getResponse(); PrintWriterpw=response.getWriter(); if(informationService.exists(this.getTitle())){ pw.write(title+"isalreadyexists"); returnnull; } TopBelongtb=newTopBelong(); tb.setId(this.getTopId()); InfoClassic=newInfoClass(); ic.setId(this.getClassId()); Informationi=newInformation(); i.setTitle(this.getTitle()); i.setAuthor(this.getAuthor()); i.setContent(this.getContent()); i.setResource(this.getResource()); i.setTopId(tb); i.setClassId(ic); i.setClicks(0); Dated=newDate(); Stringsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(d); i.setAddTime(sdf); if(image!=null){ StringuploadFileName="\\upLoadImages"; Stringrealpath=ServletActionContext.getServletContext().getRealPath( uploadFileName); uploadImage(realpath,pw); i.setImagePath(uploadFileName+"\\"+this.getImageFileName()); } informationService.create(i); pw.write("informationaddsuccess"); returnnull; }圖2-11信息創(chuàng)建方法調用圖該create()方法,封裝Information對象調用InformationService的create()方法:(InformationService)publicvoidcreate(Informationi){ informationDao.create(i); }該create()方法又調用InformationDao接口的create()方法InformationDao的抽象方法publicvoidcreate(Informationi);該方法又由子類InformationDaoImp的create()方法去實現(xiàn)publicvoidcreate(Informationi){ hibernateTemplate.save(i); }最后由HibernateTemplate的save()方法,操作數(shù)據(jù)庫并保存。2.4.3查詢功能景點信息的查詢主要實現(xiàn):(InforamtionAction)publicStringreadAll(){ this.setInforamtions(informationService.readAll()); return"show"; }在當前類里用一對象informations來存儲查詢結果信息,該方法調用InformationService的readAll()(InformationService)publicList<Information>readAll(){ returninformationDao.readAll(); }此處用一集合來存儲返回的對象,該方法調用InformationDao上級接口的readAll()方法,然后InformationDao用其子類的InformationDaoImp的實現(xiàn)(InformationDaoImp)publicList<Information>readAll(){ returnhibernateTemplate.find("fromInformation"); }此方法用HQL語言直接操作數(shù)據(jù)庫進行查詢。流程如圖2-12.圖2-12信息查詢調用2.4.4更新功能景點信息的更新主要實現(xiàn):(InformationAction)publicStringupdate()throwsIOException{ HttpServletResponseresponse=ServletActionContext.getResponse(); PrintWriterpw=response.getWriter(); booleanalreadyExists=false; if(informationService.exists(this.getTitle())){ alreadyExists=true; } TopBelongtb=newTopBelong(); tb.setId(this.getTopId()); InfoClassic=newInfoClass(); ic.setId(this.getClassId()); Informationi=newInformation(); i.setId(this.getId()); i.setTitle(this.getTitle()); i.setAuthor(this.getAuthor()); i.setContent(this.getContent()); i.setResource(this.getResource()); i.setTopId(tb); i.setClassId(ic); Dated=newDate(); Stringsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(d); i.setAddTime(sdf); if(image!=null){ StringuploadFileName="\\upLoadImages"; Stringrealpath=ServletActionContext.getServletContext().getRealPath( uploadFileName); uploadImage(realpath,pw); i.setImagePath(uploadFileName+"\\"+this.getImageFileName()); } Stringresult=informationService.update(i,alreadyExists); pw.write(result); returnnull; }此方法同create()方法一樣先封裝Information對象,再調用InformationService的update方法(InformationService)publicStringupdate(Informationi,booleanalreadyExists){ returninformationDao.update(i,alreadyExists); }然后接著調用InformationDao上級接口,用InformationDao的實現(xiàn)InformationDaoImp的update方法(InformationDaoImp)publicStringupdate(Informationi,booleanalreadyExists){ Informationinfo=(Information)hibernateTemplate.get(Information.class,i.getId()); if(alreadyExists&&i.getId()!=info.getId()){ return"the"+i.getTitle()+"alreadyexists"; } if(i.getTitle().length()>0) info.setTitle(i.getTitle()); if(i.getAuthor().length()>0) info.setAuthor(i.getAuthor()); if(i.getContent().length()>0) info.setContent(i.getContent()); if(i.getResource().length()>0) info.setResource(i.getResource()); info.setClassId(i.getClassId()); info.setTopId(i.getTopId()); info.setAddTime(i.getAddTime()); hibernateTemplate.saveOrUpdate(info); return"number"+i.getId()+":updatesuccess"; }該update方法中,選通過傳來的Information對象進行Load操作,將load出來的對象與當前對象比較,對數(shù)據(jù)變化了的進行更新操作,沒變化的則不用更新。流程如圖2-13:圖2-13信息更新調用圖2.4.5刪除功能景點信息的刪除主要實現(xiàn):(InformationAction)publicStringdelete()throwsIOException{ HttpServletResponseresponse=ServletActionContext.getResponse(); PrintWriterpw=response.getWriter(); if(!informationService.existsById(this.getId())){ pw.write("theobjectalreadydelete"); returnnull; } Informationi=newInformation(); i.setId(this.getId()); informationService.delete(i); pw.write("deletesuccess"); returnnull; }該方法封裝一個由前后提交的具有id的Information對象,調用InformationService的delete()(InformationService)publicvoiddelete(Informationi){ informationDao.delete(i); }該方法調用InformationDao上級接口,用其子類InformationDaoImp的delete()方法實現(xiàn)publicvoiddelete(Informationi){ hibernateTemplate.delete(i); }該方法里調用HibernateTemplate的delete()方法實現(xiàn)最后數(shù)據(jù)庫數(shù)據(jù)的刪除。流程如下2-14:圖2-14信息刪除調用圖3操作界面展示3.1功能界面功能欄目界面:分為圖中8個模塊其中景點基本信息欄目詳細如圖所示,管理員可以對總類別、信息類別、信息詳細進行CRUD操作其中景區(qū)圖片欄目詳細如圖所示,管理員可以對圖片類別及圖片詳細進行CRUD操作景點視頻管理欄目,相對簡單,僅對視頻進行相關操作其中旅游線路欄目如圖,則對線路類別和線路詳細進行CRUD操作以下是用戶相關的操作3.2詳細操作界面操作界面多,些處只舉幾個界面以觀成效。管理員登錄界面:后面的紅星代表必輸選項總類別添加界面:紅色部分是用Ajax提交過后,交互的顯示結果,表示添加成功查看總類別界面:其查看列表分頁顯示,后面的更新、刪除操作可以直接對當前對象進行如更新總類別界面:當提交更新的資料后,在后臺會先load與之相應的目標對象出來,再與之比較,對于變化了的屬性進行更新,沒變化的則不更新。刪除總類別界面:當點擊刪除時,會彈出提示窗口,是否真的要刪除,點擊確定則刪除,點擊取消則返回原來的界面。4主要使用技術介紹4.1Ajax技術AJAX即“AsynchronousJavaScriptandXML”(異步JavaScript和XML),主要包含了以下幾種技術:a.基于web標準(standards-basedpresentation)XHTML+CSS的表示;b.使用DOM(DocumentObjectModel)進行動態(tài)顯示及交互;c.使用XML和XSLT進行數(shù)據(jù)交換及相關操作;d.使用XMLHttpRequest進行異步數(shù)據(jù)查詢、檢索;傳統(tǒng)的web應用允許用戶填寫表單(form),當提交表單時就向web服務器發(fā)送一個請求,服務器接收并處理傳來的表單,然後返回一個新的網(wǎng)頁,這個做法浪費了許多帶寬,因為在前後兩個頁面中的大部分HTML代碼往往是相同的,由于每次應用的交互都需要向服務器發(fā)送請求,應用的響應時間就依賴于服務器的響應時間,這導致了用戶界面的響應比本地應用慢得多,與此不同,AJAX應用可以僅向服務器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其它一些基于XML的webservice接口,并在客戶端采用JavaScript處理來自服務器的響應,因為在服務器和瀏覽器之間交換的數(shù)據(jù)大量減少,結果我們就能看到響應更快的應用,同時很多的處理工作可以在發(fā)出請求的客戶端機器上完成,所以Web服務器的處理時間也減少了,使用Ajax的最大優(yōu)點,就是也動態(tài)刷新部分數(shù)據(jù),能在不更新整個頁面的前提下維護數(shù)據(jù),這樣寫出的Web應用程序更為迅捷地回應用戶動作,并避免了在網(wǎng)絡上發(fā)送那些沒有改變過的信息,交互感更強,Ajax技術的運用不需要瀏覽器插件的協(xié)助,只要用的的瀏覽器能執(zhí)行JavaScript就行,當然我想一般的瀏覽器都能,就像DHTML應用程序那樣,Ajax應用程序是在眾多不同的瀏覽器和平臺上經(jīng)過嚴格的測試的,現(xiàn)在Ajax技術的成熟越來越成熟,一些簡化Ajax使用方法的程序庫也相繼問世,同樣,也出現(xiàn)了另一種輔助程序設計的技術,為那些不支持JavaScript的用戶提供替代功能[2]。4.2SSH技術Struts2:Struts2是Struts1的下一代產(chǎn)品,是在struts1和WebWork的技術基礎上進行了合并的全新的Struts2框架,其實技術上來說,Struts2的技術幾乎完全繼續(xù)WebWork的技術,只是名字看似在Struts1的基礎上發(fā)展,實際兩版本完全不同,因為當時Struts1應用量很廣,比WebWork牛,但技術不比WebWork好,為長期發(fā)展,所以Struts1與WebWork合作出了Struts2。下面以WebWork為核心,采用攔截器的機制來處理用戶的請求。其原理圖如下:圖3-1Spring:Spring是一個開源框架,Spring是于2003年興起的一個輕量級的Java開發(fā)框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中闡述的部分理念和原型衍生而來,它是為了解決企業(yè)應用開發(fā)的復雜性而創(chuàng)建的,其功能是使用基本的JavaBean代替EJB,提供多種企業(yè)級應用,其主要有兩大核心功能:其是IoC,Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合,當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象,你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它;其二是AOP,Spring提供了面向切面編程的豐富支持,允許通過分離應用的業(yè)務邏輯與系統(tǒng)級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發(fā),應用對象只實現(xiàn)它們應該做的——完成業(yè)務邏輯——僅此而已,它們并不負責(甚至是意識)其它的系統(tǒng)級關注點,例如日志或事務支持[3]。Hibernate:Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫,Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數(shù)據(jù)持久化的重任[4]。其核心接口:圖3-2SSH整合:集成SSH框架的系統(tǒng)從職責上分為四層,表示層、

溫馨提示

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

評論

0/150

提交評論