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