白勝 趙亞楠 拓昱曉 張穎姣 康奇 郭小燕
摘要:隨著交通的便捷與網(wǎng)絡(luò)的助力,旅游更趨向于低齡化、青少年化,但在旅游的過程中,眾多網(wǎng)站存在大量的虛假信息,造成近年來旅游趨勢有所下降,為盡量降低這種現(xiàn)象的發(fā)生概率,我們采用B/S結(jié)構(gòu),MVC設(shè)計模式,設(shè)計與實現(xiàn)了家鄉(xiāng)旅游系統(tǒng),爭取為家鄉(xiāng)旅游信息提供一個真實的數(shù)據(jù)平臺,讓自己的家鄉(xiāng)走進(jìn)大家的視野,也讓同學(xué)們走進(jìn)那個美麗的家鄉(xiāng)。
關(guān)鍵詞:MVC;Spring;Struts2;Hibernate;旅游網(wǎng)站;B/S
中圖分類號:TP393? ? ? ?文獻(xiàn)標(biāo)識碼:A? ? ? 文章編號:1009-3044(2018)34-0048-03
1 背景
隨著交通的發(fā)達(dá)和網(wǎng)絡(luò)技術(shù)的助力,旅游成為人們生活中不可或缺的一部分。[1]數(shù)據(jù)顯示,自2013年9月1日至今,年齡在20-29歲的人群已經(jīng)發(fā)展為旅游大軍的第二大群體(占比28%),但是從2014年開始,大學(xué)生旅游人數(shù)呈現(xiàn)下降趨勢,導(dǎo)致大學(xué)生旅游量下降的原因之一則是眾多旅游網(wǎng)站上的信息與當(dāng)?shù)氐膶嶋H信息并不符合,該項目開發(fā)的目的在于為同學(xué)們提供真實有效的旅游景點介紹,增強(qiáng)同學(xué)間的相互溝通與了解。該交流平臺包括風(fēng)景名勝,特色小吃,拼團(tuán)組隊,分享交流,意見反饋,日志記錄等模塊,同學(xué)們可在平臺上共享彼此了解到的信息,交流在旅途中的酸甜苦辣,對各個景點、風(fēng)俗文化發(fā)表自己的意見與看法,充分自己家鄉(xiāng)的旅游信息。
2 系統(tǒng)的需求分析
在全方位提高國民素質(zhì)的同時,大學(xué)生總?cè)藬?shù)不斷增長,旅游市場也在持續(xù)壯大,大學(xué)生成為愿意為旅游花錢的新生代。此前,在新浪進(jìn)行的“大學(xué)生旅游調(diào)查”中顯示,有72%的大學(xué)生曾經(jīng)旅游,這其中67.35%的學(xué)生平均一年就會旅游一次,5.75%的學(xué)生平均年的旅游次數(shù)甚至達(dá)到4次以上,近45%的學(xué)生每次的旅游費(fèi)用在1000元以上有12.91%的被調(diào)查者表示他們用在旅游上的花費(fèi)已超過1萬元。
當(dāng)代大學(xué)生作為一群特殊的群體充滿活力和朝氣,容易接受新興電子商務(wù)行業(yè),也是自助游及團(tuán)隊出游的重要主體。建立大學(xué)生電子商務(wù)旅游網(wǎng)站,是代替旅行社成為擔(dān)負(fù)收集信息、傳遞信息、綜合利用信息來組合旅游產(chǎn)品。
3 系統(tǒng)設(shè)計
3.1 系統(tǒng)功能設(shè)計
學(xué)生家鄉(xiāng)旅游交流平臺共分為六個模塊(如圖1所示),以下將對每個模塊做簡單介紹:
用戶管理模塊:由于用戶類型比較單一,管理較為方便,除對學(xué)生本人信息基本的增刪改查之外,對學(xué)生本人也做嚴(yán)格的信用管理,如有發(fā)布虛假信息、各種廣告、言辭惡劣的應(yīng)給予黑名單,情節(jié)惡劣的應(yīng)與通報,以保證平臺的信息真實以及穩(wěn)定運(yùn)行。
景區(qū)推薦模塊:此模塊里可以看到由同學(xué)們分享出來的景區(qū)信息,并且可以看到有多少人“贊”和“踩”,反饋一個直觀的數(shù)據(jù)給用戶。
美食推薦模塊:此模塊對于比較看重美食的同學(xué)們而言,無疑是能得到更多,更加偏向民間的美食。
分享交流模塊:此模塊專門用作同學(xué)們對于美景,美食,以及一些風(fēng)俗民情的分享,描述自身的感受。
拼團(tuán)組隊模塊:對于部分同學(xué)來講,有一個或一群合道的人同行,無疑在提高安全旅行安全、降低不必要消費(fèi)是一個更好的選擇,通過拼團(tuán),使得旅游不再孤單,同學(xué)之間的信任更容易建立起來。
投訴舉報模塊:在旅行途中,難免遇到一些招搖撞騙,坐地起價的商戶,為了避免其他同學(xué)再次上當(dāng)受騙,我們可以將這些商戶舉報出來,警示他人。
3.2 系統(tǒng)數(shù)據(jù)庫設(shè)計
該系統(tǒng)采用的數(shù)據(jù)庫是MySQL5.5 ,包含t_users、t_food、t_culture、t_scenic__spot、t_specialty、t_team、t_complain等表,部分表結(jié)構(gòu)展示如表1、2、3:
4 系統(tǒng)的實現(xiàn)
該系統(tǒng)采用Java語言,以MySQL5.5為后臺數(shù)據(jù)庫,使用MVC三層架構(gòu)模式,以Struts2作為控制器,Hibernate3作為數(shù)據(jù)持久化框架,采用了Spring2.5.6作聲明式的事務(wù)管理,并且采用AOP(面向切面編程)為系統(tǒng)全局切入了日志模塊。
該系統(tǒng)提供為學(xué)生提供服務(wù),系統(tǒng)的風(fēng)景名勝欄目,特色美食欄目,以及通告欄目,這些欄目可不登錄瀏覽,除此之外,還提供分享、評論、點贊、舉報等功能,這些需要驗證登錄。
4.1 系統(tǒng)界面的規(guī)劃
系統(tǒng)界面依照功能模塊劃分,其對應(yīng)模塊名稱略有不同,在實現(xiàn)信息數(shù)據(jù)呈現(xiàn)的同時,根據(jù)用戶反饋展示對景區(qū)以及其他特色產(chǎn)品的排名推薦?,F(xiàn)部分截圖如圖2、3:
為了擁有更好的可擴(kuò)展性,系統(tǒng)分為接口包和實現(xiàn)包,此處介紹景點部分從頁面到后臺數(shù)據(jù)庫傳輸數(shù)據(jù)的一個過程,其他功能模塊類似。
由于用到了Struts2的標(biāo)簽庫,所以先要做如下引用:
在數(shù)據(jù)顯示時采用Struts2的迭代器標(biāo)簽,(如圖5所示),對名為scenicspot的數(shù)據(jù)列表,使用屬性標(biāo)簽<s:property>將內(nèi)容顯示出來。
訪問Action需要在配置文件Struts.xml中注明訪問路徑(如圖6所示),當(dāng)訪問main時,程序會加載com.johnsonk.action.MainAction,并將結(jié)果數(shù)據(jù)反饋給index.jsp頁面,由頁面做數(shù)據(jù)的解析與展現(xiàn)。
在Struts2框架運(yùn)行的時候,會使用Action類里面的execute方法,這個方法會返回一個String類型,對應(yīng)配置文件里<result>標(biāo)簽內(nèi)的name屬性,返回時會將Action里的屬性內(nèi)容帶到頁面上。圖7中的@Resource表明service是注入進(jìn)來的,這個方法是通過Spring獲取scenicSpotService服務(wù)類。
在圖8中我們可以看到該服務(wù)類(scenicSpotService)是由Spring管理的,其中有一個注解如圖9:
這表示上面定義注解的實現(xiàn)類是被注入進(jìn)來的,不必去更新new一個實現(xiàn)類,這就是Spring的IOC(控制反轉(zhuǎn)),也稱之為DI(依賴注入)為使Spring能注入需要做如下注解:
在圖10中將該類用@Component做注解,使得Spring能找到這個實現(xiàn)類,并且將它注入需要使用該類的地方,從前臺到程序中的數(shù)據(jù)傳輸完成。對于入庫操作,Spring中可以配置Hibernate中的模板方法,在Spring的配置文件里對于模板方法的配置如圖11所示:
模板方法的使用還需要sessionFactory,其配置如圖12:
在配置中Spring參照了一個數(shù)據(jù)源(dataSource),該數(shù)據(jù)源包含了數(shù)據(jù)庫連接的信息,如驅(qū)動、方言、用戶名、密碼等。除此之外,還有一個包掃描的配置packageToScan,這個配置的使程序在新建一個實體類的時候只需要注明該類是一個實體類(Entity),Spring將對其進(jìn)行自動映射,從而使用三個框架(Struts2,Spring,Hibernate)完成數(shù)據(jù)的傳輸以及顯示。
5 結(jié)束語
該文較為簡單的闡述了旅游網(wǎng)站的搭建過程以及系統(tǒng)設(shè)計與實現(xiàn)。在該系統(tǒng)試運(yùn)行時,整體運(yùn)行效果良好。該項目以班級為單位實現(xiàn)家鄉(xiāng)旅游交流平臺的實現(xiàn),整合信息。增強(qiáng)班級內(nèi)部交流,豐富同學(xué)地域文化知識。可通過交流來實時更新添加數(shù)據(jù)庫信息,完善數(shù)據(jù)存儲??勺鳛榘嗉壝瑢ν膺M(jìn)行交流展示,也在極大程度上可以提升同學(xué)對不同地域風(fēng)景名勝,特色小吃的興趣。
參考文獻(xiàn):
[1] 數(shù)據(jù)來自百度指數(shù)[EB/OL]. https://index.baidu.com.
[2] Hobona G E, Abele S J. Philip James[D]. University of Newcastle upon Tyne, 2006.
[3] Tsui, Frank F. JSP EM DASH A RESEARCH SIGNAL PROCESSOR IN JOSEPHSON TECHNOLOGY[C]. IBM Journal of Research and Development, 1980, 24(2): 243-252.
[4] 張桂元, 賈燕楓. Struts開發(fā)入門與項目實踐[M]. 北京: 人民郵電出版社, 2005.
[5] 何玉潔. 數(shù)據(jù)庫基礎(chǔ)及應(yīng)用技術(shù)[M]. 北京: 清華大學(xué)出版社, 2002.
[6] Craig Walls. Spring實戰(zhàn)[M]. 張衛(wèi)濱, 譯. 4版. 北京: 人民郵電出版社.
[7] Geoffroy Warin. 精通Spring MVC 4[M]. 張衛(wèi)濱, 孫麗文, 譯. 北京:人民郵電出版社,2007.
[8] Christian Bauer, Gavin King. Hibernate實戰(zhàn)[M]. 蒲成, 譯. 2版.? 北京:清華大學(xué)出版社,2016.
【通聯(lián)編輯:謝媛媛】