APP下载

基于BS架构的旅游平台的设计与实现

2018-02-24白胜赵亚楠拓昱晓张颖姣康奇郭小燕

电脑知识与技术 2018年34期

白胜 赵亚楠 拓昱晓 张颖姣 康奇 郭小燕

摘要:随着交通的便捷与网络的助力,旅游更趋向于低龄化、青少年化,但在旅游的过程中,众多网站存在大量的虚假信息,造成近年来旅游趋势有所下降,为尽量降低这种现象的发生概率,我们采用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.

【通联编辑:谢媛媛】