白勝 趙亞楠 拓昱曉 張穎姣 康奇 郭小燕



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