为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

旅游信息系统的设计与实现

2017-10-15 50页 doc 399KB 19阅读

用户头像

is_624976

暂无简介

举报
旅游信息系统的设计与实现旅游信息系统的设计与实现 石家庄铁道大学毕业设计 旅游信息系统的设计与实现 Design and Implementation of Tourism Information System 2014 届 信息科学与技术 学院 专 业 网络工程 学 号 20102907 学生姓名 龚文达 指导教师 周文峰 完成日期 年 月 日 毕业设计成绩单 20102907 学生姓名 龚文达 学号 班级 信1003-2 专业 网络工程 毕业设计题目 旅游信息系统的设计与实现 指导教师姓名 周文峰 指导教师职称 讲师...
旅游信息系统的设计与实现
旅游信息系统的设计与实现 石家庄铁道大学毕业设计 旅游信息系统的设计与实现 Design and Implementation of Tourism Information System 2014 届 信息科学与技术 学院 专 业 网络工程 学 号 20102907 学生姓名 龚文达 指导教师 周文峰 完成日期 年 月 日 毕业设计成绩单 20102907 学生姓名 龚文达 学号 班级 信1003-2 专业 网络工程 毕业设计目 旅游信息系统的设计与实现 指导教师姓名 周文峰 指导教师职称 讲师 评 定 成 绩 得分 指导教师 周文峰 评阅人 得分 答辩小组组长 得分 成绩: 院长(主任) 签字: 年 月 日 毕业设计任务书 题 目 旅游信息系统的设计与实现 20102907 姓 名 龚文达 学号 班级 信1003-2 专业 网络工程 导师 导师 承担指导任务单位 信息科学与技术学院 周文峰 讲师 姓名 职称 一、主要内容 中国旅游网站经营中存在着电子商务大环境不成熟、旅游B2B网站发展缓慢、旅游B2C网站产品雷同且盈利模式单一、中国旅游网站直销比例低以及专业旅游信息系统较少的问题。而专业的旅游信息系统可以很好的解决这些问题, 在本系统开发的过程中,要求完成系统的前期调研、需求分析、概要设计等工作,在此基础上,完成网站注册登录,驾车导航,自游行信息,旅游新闻,旅行社信息,旅游景点信息,游客交流等功能的设计与实现。要求本系统登录端可以选择以普通会员身份或者旅行社身份登录,对不同的登录对象提供不同的服务。 二、基本要求 1. 查阅相关资料,认真研究的整体逻辑结构和必要各种功能,以寻求最好的实现方案,使该系统实现其功能。 2. 按进度进行,按时提交相关文档。 3. 设计开发的系统达到初步实用的水平。 三、主要技术指标 软件环境: windows 7/windows xp/windows 8 硬件环境: Intel(R)i-5 2.53GH ,2.0G的内存。 开发工具: jsp+sql数据库 性能要求:界面友好,功能完善,系统的正确性,系统的安全性和良好的扩展性。 四、应收集的资料及参考文献 [1]赵凌冰.美国旅游网站建设对中国的借鉴分析[J].硅谷,2013. [2]陈洁琼.旅游网站的核心竞争力探究——采用层次分析法的探索研究[J].中国管理信息化, 2013. [3]加力戈. 旅游网站发展趋势浅析[J].魅力中国,2013. [4]刘忠兵.JSP数据库项目案例导航[M].清华大学出版社,2007. [5]卢瀚,王春斌.Java Web开发实战1200例[M].清华大学出版社,2010. [6]王勇,谭普.基于游客需求的旅游网站评价[J].企业家天地:下旬刊,2012. [7]泰盟工作室.网站开发实例[M].重庆出版社,2010. 五、进度 毕业设计第1~6周毕业实习、系统调研、需求分析、提交需求分析说明书。 毕业设计第7~11周查阅资料、熟悉系统环境、概要设计、详细设计与实现。 毕业设计第12~14周程序设计与调试。 毕业设计第15~16周整理文档、完成毕业设计。 教研室主任签字 时间 年 月 日 毕业设计开题报告 题 目 旅游信息系统的设计与实现 20102907 学生姓名 龚文达 学号 班级 信1003-2 专业 网络工程 一、课题的研究背景 随着国家经济的发展,人民生活水平的不断提高,大家对于娱乐活动越来越看重,特别是旅游产业的发展日新月异。旅游产业已经形成规模,旅游产业支柱作用也更为强化,旅游产业在质和量上将持续发展,旅游资源多向度开发,并且旅游产业发展的机遇与挑战并有。 旅游产业国内旅游市场、入境旅游市场、出境旅游市场运行良好。市场上的旅游人次、总收入、人均旅游消费支出都呈上升趋势。旅游产业市场跻身世界前列。世界旅游组织对我国旅游产业的发展给出了非常高的预期,其预测为:到2015年时,在世界旅游目的地中,我国将位列第一;在世界旅游客源国中,我国将位列第四;而我国旅游产业的增长速度也明显快于世界上其他主要国家的旅游产业增长速度。 根据旅游业的实际情况和旅游业的常规运作方式,旅游信息系统包含前台,后台等系统,通过强大的网络环境支持,实现城市各旅游景点的全方位统一宣传,实时宣传详尽的城市旅游信息,提供准确的旅游分析,实现有效的效果控制。同时提供强大的接口功能,可灵活的配合当地的特殊环境要求,塑造城市旅游的个性化特色,最终使得城市达到宣传与利润的双重增益。 随着旅游业规模的不断扩大,宣传这些庞大的体系信息非常困难的,因为旅游的人员情况是随时改变的,因此必需对城市旅游信息进行动态的实时宣传,而这对于一个宣传人员来说是一件比较复杂的事情,存储,查询,咨询业务都是宣传系统必不可少的工作内容。 为了能让宣传人员从繁重的工作中解脱出来,使宣传人员在使用一个系统以后能极其容易地对所有旅游资源进行宣传,并且准确无误,轻松自如。因此开发一个旅游信息系统是当务之急,也是本论文选题的重要意义和研究宗旨。 二、国内外研究现状 穷游网:穷游网是中国一家运用互联网电子信息技术,提供跨国多目的地(以海外为主)的中文旅游资讯和在线增值服务提供商。它用海量信息吸引客户群体,依托庞大的客户群寻找更为优质的旅游服务资源,并鼓励用户再次分享,从而丰富信息库内涵。如此,整个信息流形成了一个闭环,网站得以发展壮大,据称,在海外70%的华人登陆过穷游网,或浏览或计划出行。致力于为国人提供“高质量、高性价比的海外游”。并通过酒店、机票等佣金获取收入。缺点:受众点较小,主要针对海外旅游。 携程网优势:基本无争议的国内在线旅游第一,起步早,铺得够大用户够多在旅游行业内品牌够响,优势很明显,别的家只是一直在追赶;有传统旅游行业经验,有庞大的客服队伍,这一点很可怕,携程覆盖的并非只是互联网旅游市场,还有巨大的人群上网不熟练打个电话就在携程把机票酒店搞定了。劣势:优势背面就是劣势,相对缺少互联网基因,一旦未来旅游人群彻底进入互联网时代,优势将越来越不明显;庞大的客服队伍也是要发工资的,这些钱是需要从用户身上赚出来的,因此,多数情况下,同样的产品,他会比其它那些家都贵。 去哪儿网优势:垂直搜索比价,更具互联网气质,也更贴近多数用户真实需求,百度巨额投资很多换成了流量,流量优势明显,机票业务市场份额据称已经超越携程;搜索的业务模式决定了,无论淘宝和携程有多大,去哪儿可能是用户可以找到最多最全旅游产品的地方劣势:搜索模式必然无法保证质量,尤其CPC模式在外站交易更加不可控,虽然淘宝也是平台,但至少支付宝确保了统一结算。去哪儿已经在向引入供应商的模式转型,但前段时间和酒店OTA的 矛盾,暴露出一旦改变业务模式,去哪儿和其它OTA将不再是纯粹的合作,而是半合作半竞争。 途牛网优势:它不做机票不做酒店不做其它乱七八糟,专心做旅游线路,于是它把旅游线路做的真的不错,价格便宜量又足。 蚂蜂窝优势:丰富的攻略目的地资源积累,社区类网站在未来的发展潜力,旅游网站里相对高端的用户体验。劣势:至少现在,它不赚钱。 三、研究内容 根据旅游业的实际情况和旅游业的常规运作方式,旅游信息系统包含前台,后台等模块,通过强大的网络环境支持,实现城市各旅游景点的全方位统一宣传,实时宣传详尽的城市旅游信息,提供准确的旅游分析,实现有效的效果控制。同时提供强大的接口功能,可灵活的配合当地的特殊环境要求,塑造城市旅游的个性化特色,最终使得城市达到宣传与利润的双重增益。 系统需要完成网站注册登录,驾车导航,自游行信息,旅游新闻,旅行社信息,旅游景点信息,游客交流等功能的设计与实现。要求本系统登录端可以选择以普通会员身份或者旅行社身份登录,对不同的登录对象提供不同的服务。本系统按角色功能分,分为普通会员模块,旅行社功能模块,管理员模块。 1.普通会员有2个模块功能: (1)个人信息维护:修改个人信息、注销个人信息。 (2)旅游信息查询:景点介绍、旅行社查询、旅游线路查询、导游信息查询、租车信息查询、自由行信息查询和驾车导航。如图1所示。 普通会员 旅游信息查询 个人信息维护 修注 景旅旅旅导租自驾 改销点游行游游车游车 个个介攻社线信信行导 人人航 绍 略 查路 息 息 信 信信询 息 息 息 图1普通会员功能模块 2.旅行社端有5个模块功能: (1)旅行社信息维护:添加旅行社信息、修改旅行社信息、删除旅行社信息。 (2)旅游线路维护:添加旅游线路、修改旅游线路、删除旅游线路。 (3)导游信息维护:添加导游信息、修改导游信息、删除导游信息。 (4)租车信息维护:添加租车信息、修改租车信息、删除租车信息。 (5)自由行信息维护:添加自由行信息、修改自由行信息、删除自由行信息。如图2所示。 旅行社端 旅旅自租导 行游游车游 社线行信信 信路信息息 息维息维维 维护 维护 护 护 护 图2旅行社端功能模块 3.管理员端有6个模块功能: (1)用户信息维护:添加用户信息、修改用户信息、删除用户信息。 (2)旅行社信息维护:添加旅行社信息、修改旅行社信息、删除旅行社信息。 (3)站内新闻维护:发布旅游新闻、修改旅游新闻、删除旅游新闻。 (4)旅游线路维护:添加旅游线路、修改旅游线路、删除旅游线路。 (5)自游行信息维护:添加自游行信息、修改自游行信息、删除自游行信息。 (6)相关链接:增加相关链接、修改相关链接、删除相关链接。 四、研究方案 本网站主要是为了给游客提供旅游指导,以及旅游计划的安排。研究的重点在于数据库的设计以及前台功能的实现。 对于本网站所需实现的功能,采用B/S(Browser/Server)结构模式,客户端只需要安装WWW服务器即可使用。该系统只有少量的信息填写需要在前端实现,主要是在数据库端数据之间逻辑关系的实现。 本网站所有的景点信息从网上收集,也可以实地考察,将每个功能模块做成各个jsp形式,通过在主网站上的跳转实现功能的选择,进入某一功能后,会员可以查看该景点的其他信息,游客和旅行社端可修改的内容可以通过数据库建立不同权限的对象实现。 开发环境及运行平台及简介 软件环境: windows 7/windows xp/windows 8 硬件环境: Intel(R)i-5 2.53GH ,2.0G的内存。 JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 五、预期达到的目的: 网友可以通过注册成为本网站会员,会员可以获得本网站所有信息,包括旅游景点筛选,游客交流,关于旅游景点的所有信息等功能,而游客只能查看旅游景点的介绍和游客的交流,不能留言交流获得旅游攻略。会员可以通过获得的信息,更好地安排时间,及时了解景点的交通、美食、酒店等情况,更完美的享受旅游的乐趣,而不是将时间浪费在无头脑的寻找上。 六、进度计划 毕业设计第1~6周毕业实习、系统调研、需求分析、提交需求分析说明书。 毕业设计第7~11周查阅资料、熟悉系统环境、概要设计、详细设计与实现。 毕业设计第12~14周程序设计与调试。 毕业设计第15~16周整理文档、完成毕业设计论文。 七、参考文献 [1]赵凌冰.美国旅游网站建设对中国的借鉴分析[J].硅谷,2013. [2]陈洁琼.旅游网站的核心竞争力探究——采用层次分析法的探索研究[J].中国管理信息化,2013. [3]加力戈. 旅游网站发展趋势浅析[J].魅力中国,2013. [4]刘忠兵.JSP数据库项目案例导航[M].清华大学出版社,2007. [5]卢瀚,王春斌.Java Web开发实战1200例[M].清华大学出版社,2010. [6]王勇,谭普.基于游客需求的旅游网站评价[J].企业家天地:下旬刊,2012. [7]泰盟工作室.网站开发实例[M].重庆出版社,2010. [8]雷之宇,郑圣蒲,孙皓.用案例学Java Web整合开发:Java+Eclipse+Struts 2+Ajax[M].电子工业出版社,2009. [9]连洪武.Eclipse Web开发从入门到精通(实例版)[M].清华大学2007. [10]吴亚峰,索依娜.30天学通Java Web项目案例开发[M].电子工业出版社,2009. [11]程宏.管理信息系统[M].浙江大学出版社,2006. [12]李相国 .JAVA实例精通[M]机械工业出版社,2009. [13]谭亮.全面精通SQL SERVER 2005[M].中国水利水电出版社,2007. [14]余金.SQL SERVER 2005编程指南[M].北京希望电子出版社,2010. [15]Luke Welling,Laura Thomson(JAVA and SQL Web Development[M](Addison-Wesley Educational Publishers Inc,2008. [16]Jeffrey R.Shapio.SQL SERVER 2005参考大全[M].清华大学出版社,2008. 指导教师签字 时间 年 月 日 摘 要 随着国家经济的发展,人民生活水平的不断提高,大家对于娱乐活动越来越看重,特别是旅游产业的发展日新月异。旅游产业已经形成较大规模,旅游产业作为第三产业的支柱作用也更为强化,旅游产业在质和量上将持续发展,旅游资源多向度开发,并且旅游产业发展的机遇与挑战并有。 根据旅游业的实际情况和旅游业的常规运作方式,旅游信息系统包含前台,后台等系统,通过强大的网络环境支持,实现城市各旅游景点的全方位统一宣传,实时宣传详尽的城市旅游信息,提供准确的旅游分析,实现有效的效果控制。同时提供强大的接口功能,可灵活的配合当地的特殊环境要求。 随着旅游业规模的不断扩大,宣传这些庞大的体系信息非常困难的,因为旅游的人员情况是随时改变的,因此必需对城市旅游信息进行动态的实时宣传,而这对于一个宣传人员来说是一件比较复杂的事情,存储,查询,咨询业务都是宣传系统必不可少的工作内容。 为了能让宣传人员从繁重的工作中解脱出来,使宣传人员在使用一个系统以后能极其容易地对所有旅游资源进行宣传,并且准确无误,轻松自如。因此开发一个旅游信息系统是当务之急,也是本论文选题的重要意义和研究宗旨。 关键词:旅游信息宣传 JSP SQL2005数据库 计算机网络应用 Abstract With the development of the national economy, the improvement of people's living standard, the entertainment has become more and more important, especially the development of the tourism industry change rapidly. The tourism industry has formed a larger scale, the tourism industry as the pillar third industry is more intensive, the tourism industry in quality and quantity, the sustainable development of tourism resources development, multi dimension, and the opportunities and challenges of the development of tourism industry and. According to the conventional mode of operation of the actual situation of the tourism industry and tourism industry, tourism information system includes the foreground, background etc., through the strong support of the network environment, to realize the full range of unified propaganda city attractions, city tourism real time access to detailed information, to provide an accurate analysis of the implementation of effective control. It also provides a powerful interface function, can be flexible with the special environment of the local requirements, personalized shaping a city tour, double gain makes the final city to promote and profit. With the tourism industry scale unceasing expansion, management of these huge system is very difficult, because the personnel of tourism is always changing, so must the real-time dynamic information of city tourism publicity, this for a management staff is a more complex matter, storage, query, consulting business work is essential for publicity system. In order to make propaganda personnel free out from the heavy work, so that staff can easily to promote all the tourism resources in the use of a system, and the accuracy, ease. Therefore the development of a tourism information system is a pressing matter of the moment, significance and research purposes is the topic of this paper. Key words: Publicity of tourism information JSP SQL2005 database application of computer network 目 录 第1章 绪论 ....................................................................................................................... 1 1.1 课题研究背景及意义 ........................................................................................... 1 1.2 课题发展现状及趋势 ........................................................................................... 2 1.3 论文主要内容和结构 ........................................................................................... 3 1.3.1 论文的主要内容 ......................................................................................... 3 1.3.2 论文的主要结构 ......................................................................................... 3 第2章 系统开发工具及相关技术 ................................................................................... 4 2.1 JSP概述 ................................................................................................................ 4 2.1.1 JSP简介 ...................................................................................................... 4 2.1.2 JSP的优点 .................................................................................................. 4 2.2 SQL2005概述 ....................................................................................................... 5 2.2.1 SQL2005简介 ............................................................................................. 5 2.2.2 SQL2005的优点 ......................................................................................... 5 2.3 Adobe Dreamweaver概述 .................................................................................... 5 2.3.1 Adobe Dreamweaver简介 .......................................................................... 5 2.3.2 Adobe Dreamweaver 优点 ......................................................................... 6 第3章 系统需求分析与概要设计 ................................................................................... 7 3.1 用户需求分析 ....................................................................................................... 7 3.1 数据库需求分析 ................................................................................................... 8 3.1.1 数据库设计过程 ......................................................................................... 8 3.1.2 数据库需求分析及E-R图 ......................................................................... 9 3.2 系统可行性研究分析 ......................................................................................... 11 3.3 系统概要设计 ..................................................................................................... 13 3.3.3 原型法 ....................................................................................................... 13 第4章 系统详细设计及实现 ......................................................................................... 16 4.1 数据库结构的创建 ............................................................................................. 16 4.2 功能的实现 ......................................................................................................... 20 4.2.1 系统前台功能的实现 ............................................................................... 20 4.2.2 系统后台功能的实现 ............................................................................... 28 I 第5章 结论与展望 ......................................................................................................... 31 5.1 结论 ..................................................................................................................... 31 5.2 展望 ..................................................................................................................... 31 参考文献 ............................................................................................................................. 32 致谢 ..................................................................................................................................... 33 附录A ................................................................................................................................. 34 英文原文 ...................................................................................................................... 34 中文译文 ...................................................................................................................... 42 II 石家庄铁道大学毕业设计 第1章 绪论 1.1 课题研究背景及意义 随着国家经济的发展,人民生活水平的不断提高,大家对于娱乐活动越来越看重,特别是旅游产业的发展日新月异。旅游产业已经形成规模,旅游产业支柱作用也更为强化,旅游产业在质和量上将持续发展,旅游资源多向度开发,并且旅游产业发展的机遇与挑战并有。 旅游产业国内旅游市场、入境旅游市场、出境旅游市场运行良好。市场上的旅游人次、总收入、人均旅游消费支出都呈上升趋势。旅游产业市场居世界前列。世界旅游组织对我国旅游产业发展给出了非常高的预期,其预测为:到2015年时,在世界旅游目的地中,我国将位列第一;在世界旅游客源国中,我国将位列第四;而 [1] 我国旅游产业的增长速度也明显快于世界上其他主要国家的旅游产业增长速度。 落后的旅游管理手段及方式,严重制约着我国未来旅游业的发展,当前,经济全球化与网络化已成为一种不可逆转的潮流,信息技术革命与信息化建设正在使资本经济变为信息经济、知识经济,并将迅速改变传统的经贸交易方式,旅游经济在相应地受到了冲击的同时却也赢得了发展的机遇。旅游经济以其自身的特点和发展要求,完全可以适应并有必要走上信息化的道路,旅游信息系统是我国旅游业发展的必然趋势。 实行网络化的旅游信息宣传,让宣传人员从繁重琐碎的工作解脱出来,完成更重要的工作。旅游宣传网站就是为了解决和减轻繁琐的传统宣传工作,使城市旅游信息宣传可以上升到一个完善的网络化,系统化宣传。 根据旅游业的实际情况和旅游业的常规运作方式,旅游信息系统包含前台,后台等系统,通过强大的网络环境支持,实现城市各旅游景点的全方位统一宣传,实时宣传详尽的城市旅游信息,提供准确的旅游分析,实现有效的效果控制。随着旅游业规模的不断扩大,宣传这些庞大的体系信息非常困难的,因为旅游的人员情况是随时改变的,因此必须对城市旅游信息进行动态的实时宣传,而这对于一个宣传人员来说是一件比较复杂的事情,存储,查询,咨询业务都是宣传系统必不可少的 [7]工作内容。 为了能让宣传人员从繁重的工作中解脱出来,使宣传人员在使用一个系统以后能极其容易地对所有旅游资源进行宣传,并且准确无误,轻松自如。因此开发一个旅游信息系统是当务之急,也是本论文选题的重要意义和研究宗旨。 1 石家庄铁道大学毕业设计 1.2 课题发展现状及趋势 目前成功的旅游信息系统不多,其中在本领域最为出色的有穷游网、携程网、去哪儿网、途牛网及马蜂窝网。通过总结他们的优缺点,能更好地完成本系统所需要和完善的地方。 穷游网:穷游网是中国一家运用互联网电子信息技术,提供跨国多目的地(以海外为主)的中文旅游资讯和在线增值服务提供商。它用海量信息吸引客户群体,依托庞大的客户群寻找更为优质的旅游服务资源,并鼓励用户再次分享,从而丰富信息库内涵。如此,整个信息流形成了一个闭环,网站得以发展壮大,据称,在海外70%的华人登陆过穷游网,或浏览或计划出行。致力于为国人提供“高质量、高性价比的海外游”。并通过酒店、机票等佣金获取收入。缺点:受众点较小,主要针对海外旅[3]游。 携程网优势:基本无争议的国内在线旅游第一,起步早,铺得够大用户够多在旅游行业内品牌够响,优势很明显,别的家只是一直在追赶;有传统旅游行业经验,有庞大的客服队伍,这一点很可怕,携程覆盖的并非只是互联网旅游市场,还有巨大的人群上网不熟练打个电话就在携程把机票酒店搞定了。劣势:优势背面就是劣势,相对缺少互联网基因,一旦未来旅游人群彻底进入互联网时代,优势将越来越不明显;庞大的客服队伍也是要发工资的,这些钱是需要从用户身上赚出来的,因此,多数情况下,同样的产品,他会比其它那些家都贵。 去哪儿网优势:垂直搜索比价,更具互联网气质,也更贴近多数用户真实需求,百度巨额投资很多换成了流量,流量优势明显,机票业务市场份额据称已经超越携程;搜索的业务模式决定了,无论淘宝和携程有多大,去哪儿可能是用户可以找到最多最全旅游产品的地方劣势:搜索模式必然无法保证质量,尤其CPC模式在外站交易更加不可控,虽然淘宝也是平台,但至少支付宝确保了统一结算。去哪儿已经在向引入供应商的模式转型,但前段时间和酒店OTA的矛盾,暴露出一旦改变业务 [4]模式,去哪儿和其它OTA将不再是纯粹的合作,而是半合作半竞争。 途牛网优势:它不做机票不做酒店不做其它乱七八糟,专心做旅游线路,于是 [5]它把旅游线路做的真的不错,价格便宜量又足。 旅游信息系统发展的趋势: )网络空间,人们通过一些网站提供的虚拟旅游服务,以自己在网络上的化身(1 去全世界的一些著 名景点“观光”,这些网络景点几乎就是现实景点的复制,三维图片非常清晰,还有导游指引,让人有身临其境的感觉。这种旅行服务实际上有点类似于电脑游戏和 聊天室的结合,简单地说虚拟旅行应该有两大要素,首先是运用三 2 石家庄铁道大学毕业设计 [8]维技术来创造一个空间,这个空间是对现实空间的一种复制。 (2)探索虚拟世界,探索虚拟世界为的是有一个旅行经验,这就要让自己亲身参与其中,当然在网络中这个自己只能 是一个化身。有了这两点,才能称得上是虚拟旅行。虚拟旅行能够给人带来不一样体验的一个关键原因是旅行环境与现实世界越 [8]来越像,而不仅仅是提供非常逼真的三维图象让网络游客浏览。 1.3 论文主要内容和结构 1.3.1 论文的主要内容 旅游信息系统是全方位地进行城市地区旅游资源综合宣传的一个有用的系统。旅游信息系统是为了方便游客和旅行社,最大限度的降低他们达到目的所花费的时间,提高效率。这就要求完成系统的注册登录,驾车导航,自游行信息,旅游新闻,旅行社信息,旅游景点信息,游客交流等功能的设计与实现。要求本系统登录端可以选择以普通会员身份或者旅行社身份登录,对不同的登录对象提供不同的服务。 [9]整个系统有三种登陆方式分别是普通会员,旅行社和管理员。其中普通会员有2个模块功能:个人信息维护、旅游信息查询;旅行社端有6个模块功能:旅行社信息维护、旅游线路维护、导游信息维护、租车信息维护、自游行信息维护;管理员有6个模块功能:用户信息维护、旅行社信息维护、站内新闻维护、旅游线路维护、自游行信息维护、相关链接。 1.3.2 论文的主要结构 论文的主要结构分为五章: 第1章首先指出现代旅游信息系统的现状和存在的问题,分析了旅游信息系统设计的意义和目的。介绍了论文的主要研究内容和整个论文的结构。 第2章简要介绍了系统设计中所用的工具:JSP技术、SQL Server数据库简介Adobe Dreamweaver等。 第3章介绍了本系统的概要设计,介绍了数据业务流程和系统数据库表结构的逻辑创建。 第4章总体介绍了整个系统功能模块的详细设计以及数据库的设计,重点介绍了本论文涉及到的各个模块的设计方法和实现过程。其中包括每个功能模块的相关说明和界面,以及在系统设计用到的开发技巧。 第5章是结论与展望。 3 石家庄铁道大学毕业设计 第2章 系统开发工具及相关技术 2.1 JSP概述 2.1.1 JSP简介 JSP是目前比较流行的一种制作动态网页的技术,使用VBScript、JavaScript等简单易学的脚本语言,并结合HTML代码,即可快速地完成系统的应用程序。 JSP无须编译、容易编写,可在服务器端直接执行;使用普通的文本编辑器,如Windows的记事本,既可以进行编辑设计;与浏览器无关,客户端所使用的浏览器只要可执行HTML码,即可浏览JSP所设计的网页内容就行,JSP所使用的脚本语言(VBScript、JavaScript)均在Web服务器端执行,客户端的浏览器不需要能够执行这些脚本语言;JSP能与任何Active Scripting语言兼容,除了可使用VBScript或JavaScript语言来设计外,还可以通过plug-in的方式,使用由第三方提供的其他脚本语言,譬如REXX、Perl、Tcl等,脚本引擎是处理脚本程序的COM (Component Object Model);可使用服务器端的脚本来产生客户端的脚本;ActiveX Server Components(ActiveX服务器组件)具有无限可扩充性。可以使用Visual Basic、Java、VisualC++、COBOL等程序设计语言来编写你所需要的ActiveX Server [9-10]Components。 2.1.2 JSP的优点 (1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需 4 石家庄铁道大学毕业设计 要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP [11-12]可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。 2.2 SQL2005概述 2.2.1 SQL2005简介 SQL 2005作为微软在Windows 系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐,相信大多数将自己的业务建立在Windows平台上的用户都会对它有相当的亲切感。区别于FoxPro、Sql 2000小型数据库,SQL 2000是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。而像存储过程、触发器等特性,也是大型数据 [13]库才拥有的。 2.2.2 SQL2005的优点 众所周知,SQL Server能够满足今天的商业环境要求不同类型的数据库解决方案。它一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。性能、可伸缩性及可靠性是基本要求,而进入市场 [14-15]时间也非常关键。 除这些SQL Server的优点外,SQL Server还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQL Server为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQL Server是一个具备完全Web支持的数据库产品,提供了对 [16]可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力。 2.3 Adobe Dreamweaver概述 2.3.1 Adobe Dreamweaver简介 Adobe Dreamweaver,简称“DW”,是美国MACROMEDIA公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越 5 石家庄铁道大学毕业设计 浏览器限制的充满动感的网页。 Adobe Dreamweaver使用所见即所得的接口,亦有HTML(标准通用标记语言下的一个应用)编辑的功能。它有Mac和Windows系统的版本。随Macromedia被Adobe收购后,Adobe也开始计划开发Linux版本的Dreamweaver了。 2.3.2 Adobe Dreamweaver 优点 (1)制作效率 Dreamweaver可以用最快速的方式将Fireworks,FreeHand,或Photoshop等档案移至网页上。使用检色吸管工具选择荧幕上的颜色可设定最接近的网页安全色。对于选单,快捷键与格式控制,都只要一个简单步骤便可完成。Dreamweaver能与您喜爱的设计工具,如Playback Flash,Shockwave和外挂模组等搭配,不需离开Dreamweaver便可完成,整体运用流程自然顺畅。除此之外,只要单击便可使Dreamweaver自动开启Firework或 Photoshop来进行编辑与设定图档的最佳化。 (2)网站管理 使用网站地图可以快速制作网站雏形、设计、更新和重组网页。改变网页位置或档案名称,Dreamweaver 会自动更新所有链接。使用支援文字、HTML码、HTML属性标签和一般语法的搜寻及置换功能使得复杂的网站更新变得迅速又简单。 (3)控制能力 Dreamweaver是唯一提供Roundtrip HTML、视觉化编辑与原始码编辑同步的设计工具。它包含HomeSite和BBEdit等主流文字编辑器。帧(frames)和表格的制作速度快的令您无法想像。进阶表格编辑功能使您简单的选择单格、行、栏或作未连续之选取。甚至可以排序或格式化表格群组,Dreamweaver支援精准定位,利用可轻易转换成表格的图层以拖拉置放的方式进行版面配置。所见即所得 Dreamweaver成功整合动态式出版视觉编辑及电子商务功能,提供超强的支援能力给Third-party厂商,包含ASP,Apache,BroadVision,Cold Fusion,iCAT,Tango与自行发展的应用软体。当您正使用Dreamweaver在设计动态网页时,所见即所得的功能,让您不需要透过浏览器就能预览网页。建立网页外观的样版,指定可编辑或不可编辑的部份,内容提供者可直接编辑以样式为主的内容却不会不小心改变既定之样式。您也可以使用样版正确地输入或输出XML内容。全方位的呈现利用Dreamweaver设计的网页,可以全方位的呈现在任何平台的热门浏览器上。对于cascading style sheets 的动态HTML支援和鼠标换图效果,声音和动画的DHTML效果资料库可在Netscape和Microsoft浏览器上执行。使用不同浏览器检示功能,Dreamweaver可以告知您在不同浏览器上执行的成效如何。 6 石家庄铁道大学毕业设计 第3章 系统需求分析与概要设计 3.1 用户需求分析 中国旅游网站经营中存在着电子商务大环境不成熟、旅游B2B网站发展缓慢、旅游B2C网站产品雷同且盈利模式单一、中国旅游网站直销比例低以及专业旅游网站较少的问题。而专业的旅游信息系统可以很好的解决这些问题,课题所研究的旅游信息系统可以使使用者通过本网站获得的信息,更好地安排时间,及时了解景点的交通、美食、酒店等情况,更完美的享受旅游的乐趣,而不是将时间浪费在无头脑的寻找上。 在本系统开发的过程中,要求完成系统的前期调研、需求分析、概要设计等工作,在此基础上,完成网站注册登录,驾车导航,自游行信息,旅游新闻,旅行社信息,旅游景点信息,游客交流等功能的设计与实现。要求本系统登录端可以选择以普通会员身份或者旅行社身份登录,对不同的登录对象提供不同的服务。同时管理员需要一个后台来对系统进行升级和对信息的添加、删除、修改操作。 通过调查研究,用户对本系统的功能需求如下(主要从普通会员功能需求、旅行社功能需求和管理员功能需求三个角度分析)。 功能需求: 普通会员 (1)个人信息维护:修改个人信息、注销个人信息 (2)旅游信息查询: ?景点介绍; ?旅行社查询; ?旅游线路查询; ?导游信息查询; ?租车信息查询; ?自由行信息查询; ?驾车导航。 旅行社端功能需求: (1)旅行社信息维护:添加旅行社信息、修改旅行社信息、删除旅行社信息; (2)旅游线路维护:添加旅游线路、修改旅游线路、删除旅游线路; (3)导游信息维护:添加导游信息、修改导游信息、删除导游信息; 7 石家庄铁道大学毕业设计 (4)租车信息维护:添加租车信息、修改租车信息、删除租车信息; (5)自由行信息维护:添加自由行信息、修改自由行信息、删除自由行信息。 管理员端功能需求: (1)用户信息维护:添加用户信息、修改用户信息、删除用户信息; (2)旅行社信息维护:添加旅行社信息、修改旅行社信息、删除旅行社信息; (3)站内新闻维护:发布旅游新闻、修改旅游新闻、删除旅游新闻; (4)旅游线路维护:添加旅游线路、修改旅游线路、删除旅游线路; (5)自游行信息维护:添加自游行信息、修改自游行信息、删除自游行信息; (6)相关链接:增加相关链接、修改相关链接、删除相关链接。 3.1 数据库需求分析 3.1.1 数据库设计过程 数据库设计的全过程,可以相应地分成三个阶段:第一个阶段为数据库需求分析阶段,第二个阶段为建立概念性数据模型,第三个阶段为逻辑设计阶段。 当然要设计一个有效的数据库,必须用系统工程的观点来考虑问题。在系统分析阶段,设计者和用户双方要密切合作,共同收集和分析数据管理中信息的内容和用户对处理的要求。 根据系统分析,旅游信息系统的要求如下: (1)需求分析: ?能够处理旅游信息的日常数据,对新闻标题内容的输入、修改、查找以及删除; ?能够实现用户与网站的交流; ?能够进行用户间的互动交流。 (2)系统性能要求: ?系统安全、可靠; ?功能齐全; ?操作方便、界面友好; ?易于维护和扩充。 (3)系统的功能分析: ?密码设置:每个管理员均有自己的密码,可以防止非本系统管理员进入本系统; ?信息维护:为了对每一则自驾百宝箱进行管理。系统维护包括对各种表记录的修改、删除、添加,查找等操作; ?系统查询:可以按关键字进行模糊查询。 8 石家庄铁道大学毕业设计 3.1.2 数据库需求分析及E-R图 需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。Visual SQL SERVER 2005 数据库设计的第一步是明确数据库的目的和如何使用。也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息表,以及每个主题需要保存哪些信息(表中字段)。是进行系统功能划分和系统设计最重要的一个环节,根据系统数据流程图,可以得到8个数据库表:管理员信息表、景点信表,注册用户信息表等。以下为系统所需的数据项和数据结构的使用情况: 息 (1)管理员信息:调用管理员信息表,生成系统编号、用户名、密码、权限等。管理员是对系统进行数据添加和对系统进行日常维护的重要角色,所以普通管理员的添加必须由超级管理员进行,而不能随便申请,否则会对本系统造成不可估量的威胁。普通管理员的权限由超级管理员设定,主要权限为添加、删除、修改站内新闻,回复游客的在线留言,添加、删除、修改旅游攻略等。如图3-1所示。 密码 添加时间 系统编号 管理员信息 权限 角色 用户名 图3-1 管理员信息E-R图 (2)注册用户信息:调用注册用户信息表,生成系统编号、用户名、密码、姓名、电话、邮箱、QQ、头像等等。为了准确了解用户的信息,系统编号是系统自动生成,用户名和密码不可为空,如果用户没有填写会自动提示不可为空。其他内容用户可以为了保护自己隐私自己选择是否填写。用户信息在用户登录以后可以在后台进行修改。如图3-2所示。 用户名 密码 系统编号 头像 姓名 注册用户信息 角色 邮箱 电话 图3-2注册用户信息E-R图 9 石家庄铁道大学毕业设计 (3)景点信息:调用景点信息表,生成系统编号、名称、星级、地址、电话、简介、照片、票价等。景点信息不对所有使用本系统的用户公开,如果想具体了解景点的信息,游客必须注册本系统的会员,只有正式成为本系统的会员以后才能获取景点的具体信息。景点信息是本系统吸引用户使用本系统的主要内容之一,只有管理员将各个景点的信息和内容整理地更加详细,才能吸引越来越多的游客使用本系统。如图3-3所示。 名称 星级 系统编号 票价 照片 景点信息 电话 简介 地址 图3-3 景点信息E-R图 (4)新闻信息:调用新闻信息表,生成系统编号、标题、类别、内容、添加人等。新闻信息主要由管理员添加,其中所有的内容必须全部添加且信息真实,若没有填写则系统会提示不可为空。新闻信息在管理员登录后进入系统后台,选择站内新闻模块,然后进行信息的添加、删除和修改。如图3-4所示。 标题 类别 新闻信息 系统编号 添加人 内容 图3-4新闻信息E-R图 (5)旅游线路:调用旅游线路信息表,生成系统编号、名称、起点、终点、日期、价格、人数、交通工具等。旅游线路可以由旅行社添加也可以由系统的管理员添加。旅游线路的所有项目都不可为空,旅行社的负责人通过与超级管理员联系获得本旅行社的账号与密码后可以在系统使用旅行社端登录,然后进入系统后台添加旅游线路信息,由管理员负责核实旅游线路信息是否真实可靠,避免产生欺诈行为有损系统的信誉,这也是保护旅行社以免产生不必要的麻烦。如图3-5所示。 10 石家庄铁道大学毕业设计 名称 起点 系统编号 终点 交通工具 旅游线路 价格 人数 日期 图3-5旅游线路E-R图 (6)旅行社信息:调用旅行社信息表,生成序号、编号、名称、地点、电话、负责人、网址、邮箱等。旅行社信息在旅行社端登录后,进入后台管理可以进行修改。旅行社信息的所有项都不可为空,确保旅行社信息的真实性。旅行社的负责人对自己负责的旅行社信息进行添加、修改、删除。超级管理员进行这类操作。一般来说超级管理员不会随意改动旅行社信息,但是如果旅行社做出了有损本系统利益或者信誉之类的事,超级管理员有权删除该旅行社。如图3-6所示。 编号 名称 序号 地点 邮箱 旅行社信息 负责人 网址 电话 图3-6旅行社信息E-R图 3.2 系统可行性研究分析 可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。信息宣传网站也应从技术可行性,经济可行性和社会可行性三方面来论证。通过长时间的观察与实践,我认为旅游信息系统的可行性分析如下: (1)经济可行性分析 城市旅游资源丰富,且各自的前期宣传也做得较到位,已有很多传统宣传工作 11 石家庄铁道大学毕业设计 在进行,所以其对宣传费用的投入是较好的所以从投入方面可以不用太担心。而经本系统的统一的高效益的宣传,对旅游业的宣传和形象的塑造会有极大的帮助,旅游业经济效益会有显著的提高。 (2)技术可行性分析 旅游信息系统的开发基于B/S模式,主要包括前端应用程序的开发以及后台数据库的建立和维护两个方面。对于前者要求应具备功能完备、易于使用等特点,而对于后者则要求能建立数据一致性和完整性强、数据安全性好的库。 本系统拟采用JSP(JSP)和SQL 2005分别作为前端和后端的开发工具。 JSP是目前比较流行的一种制作动态网页的技术,使用VBScript、JavaScript等简单易学的脚本语言,结合HTML代码,即可快速地完成系统的应用程序;无须编译、容易编写,可在服务器端直接执行;使用普通的文本编辑器,如Windows的记事本,既可以进行编辑设计;与浏览器无关,客户端所使用的浏览器只要可执行HTML码,即可浏览JSP所设计的网页内容就行,JSP所使用的脚本语言(VBScript、JavaScript)均在Web服务器端执行,客户端的浏览器不需要能够执行这些脚本语言;JSP能与任何Active Scripting语言兼容,除了可使用VBScript或JavaScript语言来设计外,还可以通过plug-in的方式,使用由第三方提供的其他脚本语言,譬如REXX、Perl、Tcl等,脚本引擎是处理脚本程序的COM (Component Object Model);可使用服务器端的脚本来产生客户端的脚本;ActiveX Server Components(ActiveX服务器组)具有无限可扩充性。可以使用Visual Basic、Java、VisualC++、COBOL等程序设件 计语言来编写你所需要的ActiveX Server Components。 SQL 2005作为微软在Windows 系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐,相信大多数将自己的业务建立在Windows平台上的用户都会对它有相当的亲切感。区别于FoxPro、Sql 2000小型数据库,SQL 2000是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。而像存储过程、触发器等特性,也是大型数据库才拥有的。 (3)社会可行性分析 社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是旅游业完全有可能也有能力采用这样先进的宣传技术。 它对旅游业带来的影响可以看到:对传统宣传理念的冲击,可能引起宣传部门的变动和人员的调整。对旅游业工作人员的要求提高,使旅游业在一定的可能下进 12 石家庄铁道大学毕业设计 行机构精简,迫使工作人员继续学习基本的计算机知识。对旅游资源与旅客之间业务方式的转变和扩充。 3.3 系统概要设计 3.3.3 原型法 根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。 通过对用户需求的分析,我们可以分析出该旅游信息系统大致可以分为:用户端和管理员端。用户端又可以分为普通游客和旅行社两种。如图3-7所示。 旅游信息系统 用户端 管理员端 旅行社 普通会员 图3-7旅游信息系统模块 普通会员有2个模块功能: (1)个人信息维护:修改个人信息、注销个人信息、提交自游行信息、留言板留言 (2)旅游信息查询: ?景点介绍:包括景点ID、名称、星级、地址、电话、简介、照片、票价、添加间等。 ?旅行社查询:包括ID、编号、名称、电话、地点、负责人、网址、邮箱等。 ?旅游线路查询:包括ID、编号、名称、起点、终点、日期、价格、人数、交通工具、添加时间、发布人等。 ?导游信息查询:包括导游的ID、编号、姓名、性别、电话、负责景点、照片等。 ?租车信息查询:包括ID、车牌号、车型、颜色、品牌新旧程度、联系电话、换挡方式、照片等。 ?自由行信息查询:包括活动名称、日期、电话、路线、备注、附件、发起人、添加时间等。 ?驾车导航:会员可以通过输入起点和终点点击搜索,获得驾车行驶路线。模块图 13 石家庄铁道大学毕业设计 如图3-8所示。 普通会员 旅游信息查询 个人信息维护 个注景旅旅旅导驾租自 人销点游行游游车车游 信个介攻社线信导信行 息人 绍 略 路 息 航 查息 信 修信询 息 改 息 图3-8普通会员功能模块 旅行社端有5个模块功能: (1)旅行社信息维护:添加旅行社信息、修改旅行社信息、删除旅行社信息; (2)旅游线路维护:添加旅游线路、修改旅游线路、删除旅游线路; (3)导游信息维护:添加导游信息、修改导游信息、删除导游信息; (4)租车信息维护:添加租车信息、修改租车信息、删除租车信息; (5)自由行信息维护:添加自由行信息、修改自由行信息、删除自由行信息。如图3-9所示。 旅行社端 旅旅自租导 行游游车游 社线行信信 信路信息息 息维息维维 维护 维护 护 护 护 图3-9旅行社端功能模块 14 石家庄铁道大学毕业设计 管理员端有6个模块功能: (1)用户信息维护:添加用户信息、修改用户信息、删除用户信息; (2)旅行社信息维护:添加旅行社信息、修改旅行社信息、删除旅行社信息; (3)站内旅游新闻:发布旅游信息推荐、修改旅游信息推荐、删除旅游信息推荐; (4)旅游线路维护:添加旅游线路、修改旅游线路、删除旅游线路; (5)自游行信息维护:添加自游行信息、修改自游行信息、删除自游行信息; (6)相关链接:增加相关链接、修改相关链接、删除相关链接。如图3-10所示。 管理员端 用旅旅站旅自相 户行游内游游关 信社信旅线行链 息信息游路信接 维息推新维息维 护 维荐 闻 护 维护 护 护 图3-10 管理员端功能模块 15 石家庄铁道大学毕业设计 第4章 系统详细设计及实现 4.1 数据库结构的创建 根据上一个部分对数据库需求分析及E-R图,创建数据库allusers,cheliangxinx i,daoyouxinxi,dx,jingdianxinxi,liuyanban,lvxingshe,lvyouxianlu,xinwentongzhi,yonghuzhuce等数据表。下面将说明部分数据表的结构和字段。 (1)allusers表:用来存放所有的用户信息,包括ID、用户名、密码、角色、添加时间等信息。其结构如表4-1所示。 表4-1用户信息表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 username VarChar 50 255 否 3 pwd VarChar 50 255 否 4 cx VarChar 50 255 否 5 addtime DateTime 8 23 是 (2) cheliangxinxi表:车辆信息表,用来存放租车信息中的车辆信息,包括ID、车牌号、车型、颜色、品牌新旧程度、联系电话、换挡方式、照片等信息。其结构如表4-2所示。 表4-2车辆信息表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 chepai VarChar 50 255 否 3 chexing VarChar 50 255 是 4 yanse VarChar 50 255 是 5 pinpai VarChar 50 255 是 6 xinjiuchengdu VarChar 50 255 否 7 lianxidianhua Int 50 255 否 8 huandangfangshi VarChar 50 255 是 9 zhuangtai VarChar 50 255 否 16 石家庄铁道大学毕业设计 (3) daoyouxinxi表:用来存放导游信息,包括导游的ID、编号、姓名、性别、电 话、负责景点、照片、出生年月等。如表4-3所示。 表4-3导游信息表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 bianhao Int 50 255 否 3 xingming VarChar 50 255 否 4 xingbie VarChar 50 255 是 5 dianhua VarChar 50 255 否 6 fuzejingdian VarChar 50 255 否 7 zhaopian VarChar 50 255 是 8 chushengnianyue VarChar 50 255 是 9 beizhu VarChar 50 255 是 10 addtime DateTime 8 23 是 (4)dx表:用来存放系统答谢词,包括ID、类别、具体内容等。如表4-4所示。 表4-4答谢词表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 leibie VarChar 50 255 是 3 content Text 16 255 是 (5)jingdianxinxi表:用来存放景点信息,包括景点ID、名称、星级、地址、电话、 简介、照片、票价、添加时间等。如表4-5所示。 表4-5景点信息表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 mingcheng VarChar 50 255 否 3 xingji VarChar 50 255 是 4 dizhi VarChar 50 255 是 5 dianhua VarChar 50 255 否 6 zhaopian VarChar 50 255 是 7 piaojia VarChar 50 255 否 8 addtime DateTime 8 23 是 17 石家庄铁道大学毕业设计 (6)liuyanban表:用来存放留言板的留言信息,包括ID、名称、性别、QQ、邮 箱、电话、内容、添加时间、回复内容等。如表4-6所示。 表4-6留言板表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 mingcheng VarChar 50 255 否 3 xingbie VarChar 50 255 是 4 QQ VarChar 50 255 是 5 youxiang VarChar 50 255 是 6 dianhua VarChar 50 255 是 7 neirong VarChar 50 255 是 8 addtime DateTime 8 23 是 9 huifuneirong VarChar 50 255 是 10 addtime1 DatetTime 8 23 是 (7)lvxingshe表:用来存放有关旅行社的信息,包括ID、编号、名称、电话、地点、 负责人、网址、邮箱、添加时间、密码等。如表4-7所示。 表4-7旅行社表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 bianhao VarChar 50 255 否 3 mingcheng VarChar 50 255 否 4 didian VarChar 50 255 是 5 dianhua VarChar 50 255 是 6 fuzeren VarChar 50 255 是 7 wangzhi VarChar 50 255 是 8 youxiang VarChar 50 255 是 9 addtime DateTime 8 23 是 10 mima VarChar 50 255 否 11 beizhu VarChar 50 255 是 (8)lvyouxianlu表:用来存放旅游线路信息,包括ID、编号、名称、起点、终点、 日期、价格、人数、交通工具、添加时间、发布人等。如表4-8所示。 18 石家庄铁道大学毕业设计 表4-8旅游线路表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 bianhao VarChar 50 255 否 3 mingcheng VarChar 50 255 否 4 qidian VarChar 50 255 是 5 zhongdian VarChar 50 255 是 6 riqi VarChar 50 255 是 7 jiage VarChar 50 255 是 8 renshu VarChar 50 255 是 9 jiaotonggongju VarChar 50 255 是 (9)xinwentongzhi表:用来存放新闻通知,包括标题、类别、内容、添加人等。如 表4-9所示。 表4-9新闻通知表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 biaoti VarChar 300 255 否 3 leibie VarChar 50 255 是 4 neirong Text 16 255 否 5 addtime DateTime 8 23 是 (10)yonghuzhuce表:用来添加用户注册信息,包括ID、用户名、密码、性别、电 话、QQ、地址、添加时间、身份证等。如表4-10所示。 表4-10用户注册表 序号 字段名称 字段类型 大小 允许为空 最大长度 备注 1 ID Int 4 10 自增编号 2 yongonghuming VarChar 50 255 否 3 mima VarChar 50 255 否 4 xingbie VarChar 50 255 是 5 dianhua VarChar 50 255 是 6 QQ Int 12 255 是 7 dizhi VarChar 50 255 是 8 Addtime DateTime 8 23 是 19 石家庄铁道大学毕业设计 4.2 功能的实现 4.2.1 系统前台功能的实现 系统首页是城市旅游信息系统的主界面。通过点击系统主界面的按钮,可以进入不同的功能模块,满足游客的需求。 系统首页可分为三部分:第一部分为网站名称及欢迎辞。文字部分可以由管理员编辑。 第二部分是网站功能菜单,以单排列表的形式展开,分别列出系统的信息分类,并显示系统时间等相关信息,提供后台登陆入口。功能菜单形式简单,方便游客操作,游客可以点击各个功能模块,里面有本系统提供的各类功能。如果有更好的建议,或者对本系统有任何的不满,可以通过在线留言告诉管理员,管理员会及时回复您的内容。 第三部分为网站的最新的站内新闻。同样由管理员添加,新闻的要点是新,管理员必须及时添加热点的旅游新闻。如图4-1所示。 图4-1系统首页 20 石家庄铁道大学毕业设计 (1)站内新闻模块,站内新闻模块信息由管理员添加,内容主要是近期有关本城市的热点旅游新闻,通过本系统的宣传,能让游客第一时间了解旅游的最新信息,有助于游客准备自己的出行计划和提起他们的兴趣。新闻信息主要由管理员添加,其中所有的内容必须全部添加且信息真实,若没有填写则系统会提示不可为空。新闻信息在管理员登录后进入系统后台,选择站内新闻模块,然后进行信息的添加、删除和修改。如图4-2所示。 图4-2站内新闻 (2)景点介绍模块,此系列操作界面为前台对景点的所有操作界面,包括景点的列表和详细信息,用户可在此页面进行对景点信息的所有操作。点击图片可以进入了解该景点的具体信息,帮助游客更好地掌握景点信息,满足游客的好奇心,未到景点就能做到心中有数。景点信息不对所有使用本系统的用户公开,如果想具体了解景点的信息,游客必须注册本系统的会员,只有正式成为本系统的会员以后才能获取景点的具体信息。景点信息是本系统吸引用户使用本系统的主要内容之一,管理需要员将各个景点的信息和内容整理并且使内容丰富多彩。如图4-3所示为景点列表。 图4-3景点列表 21 石家庄铁道大学毕业设计 通过登录本网站,点击图片可以进一步了解该景点信息。景点的具体信息包括:景点名称、景点电话、景点星级、票价、景点具体地址、景点简介以及景点图片。此功能必须要求游客登录本系统,如果没有登录本系统,将会提示没有权限浏览该信息。景点信息是本系统吸引用户使用本系统的主要内容之一,只有管理员将各个景点的信息和内容整理地更加详细,才能吸引越来越多的游客使用本系统。如图4-4所示。 图4-4景点具体信息 (3)用户注册模块,此页面为用户注册管理界面,包括用户名,密码,姓名,电话,邮箱,QQ,头像,籍贯,地址,性别等,可按用户名查找相关信息。用户注册完之后可以登录本系统查询到本系统为用户提供的所有的信息,使用系统所有可供用户的功能。用户可以在用户的后台修改注册信息,只有用户名和密码是必填的内容,其他选项可以为了隐私考虑选填。如图4-5所示。 图4-5用户注册模块 22 石家庄铁道大学毕业设计 (4)游记攻略模块,该模块可以提供各个景点的旅游攻略,让游客更好地在景点旅游,真正享受旅游的乐趣,避免第一次到该景点没有经验,毫无头绪地寻找一些事情,攻略非常详细,能让游客领略到景点的真正魅力,防止游客因为一些不相干的事情影响到游览的心情,造成一些不好的印象。如图4-6所示。 图4-6旅游攻略模块 (5)旅行社模块,该模块主要提供一些知名的,并且网友评价较高的旅行社信息,旅行社的网址,地点,负责人,电话,邮箱信息全部公开,让游客有更多的选择空间,同时使游客对旅行社更加了解。这也是给旅行社一个展示自我的机会,旅行社负责人可以通过联系管理员获得本旅行社的账号密码,然后进入本系统后台修改自己旅行社的信息在此界面进行展示,起到了非常好的宣传效果,相比较传统的旅行社宣传有更强的及时性和有效性如图4-7所示。 图4-7旅行社信息 核心代码: sql=sql+" and mingcheng like '%"+new String(request.getParameter("mingcheng").getBytes("8859_1"))+"%'";} 23 石家庄铁道大学毕业设计 sql=sql+" order by id desc"; ResultSet RS_result=connDbBean.executeQuery(sql); String id=""; String bianhao="";String mingcheng="";String didian="";String dianhua=""; (6)旅游线路查询模块,由管理员或者旅行社提供的旅游线路信息,游客可以浏 览得知自己想要的线路信息,充分发挥游客的主观能动性,有更多的选择余地,可以 随时选择自己感兴趣的旅游线路,然后联系旅行社直接参团,不用费心费力再其他旅 行社寻找自己想去的旅游地点。 缩短了游客的寻找时间,同时让旅行社能有更多的展示机会。该功能模块能大幅 度增加旅行社的经济效益和搜索热度,给旅行社带来了更多的潜在顾客。如图4-8所 示。 图4-8旅游线路模块 核心代码: String sql=""; sql="select * from lvyouxianlu where 1=1"; if(request.getParameter("bianhao")=="" ||request.getParameter("bianhao")==null ) {} else{ sql=sql+" and bianhao like '%"+new String(request.getParameter("bianhao").getBytes("8859_1"))+"%'";} if(request.getParameter("mingcheng")=="" ||request.getParameter("mingcheng")==null ){}else{ sql=sql+" and mingcheng like '%"+new 24 石家庄铁道大学毕业设计 (7)租车信息模块,该功能模块为游客提供租车信息,车辆信息由管理员或者旅 行社提供,也可以私人通过联系管理员,将自己暂时不用的车放到本系统上赚取一定 的费用。车辆信息保证真实可靠。现在很多游客喜欢到想要旅游的地方,自己开车到 处转转,充分进入该城市的生活。我们为这部分朋友提供了这个功能模块,他们免去 了到其他网站或者实体店租车的辛劳,可以在本系统中动动手指便可选择自己想要租 的车,简单便捷。本系统为保证信息的安全性,在添加车辆信息前会实地调查车辆真 实情况,避免出现欺诈行为,有损本系统的影响和宣传。如图4-9所示。 图4-9租车信息 核心代码: if(request.getParameter("bianhao")=="" ||request.getParameter("bianhao")==null ) {}else{sql=sql+" and chepai like '%"+new String(request.getParameter("mingcheng").getBytes("8859_1"))+"%'"; } sql=sql+" order by id desc"; ResultSet RS_result=connDbBean.executeQuery(sql); String id=""; String chepai="";String chexing="";String yanse="";String pinpai="";String xinjiuchengdu="";String pailiang="";String huandangfangshi="";String rizujin="";String zhuangtai="";String zhaopian="";String beizhu=""; String addtime=""; (8)自游行信息,此功能模块可由会员、旅行社或者管理员添加,如果您想自游 行却苦于找不到志同道合的人陪伴一起旅游,完全可以在此发布属于自己的自游行信 息,用来吸引有相同兴趣的朋友们,和他们相约去旅行,使您的出行计划更加轻松且 25 石家庄铁道大学毕业设计 愉快,避免了难得来的旅游兴趣因为找不到人而无奈放弃的烦恼,是您自游行旅游的好帮手。同时可以让您找到新朋友,扩展交际圈。自游行作为现在比较火热的旅行形式,本系统也专门为此设计了驾车导航模块为自游行驾车服务。如图4-10所示。 图4-10自游行信息 (9)驾车导航,该功能模块提供简单的导航功能,用户在起点和终点输入自己的路程信息,再点击搜索,可以轻松地获得去该地方的最简单的路径,同时不断点击下一步,会指引你如何行车到达该地点,简单快捷,使用户不用再把时间花费在寻找其他地图导航工具,直接在本系统便可轻松实现。本功能模块专为自驾游中找不到地点的用户设计,贴近生活实际,同时点击地图中标注的点,可以搜索附近的信息。让您的出行更加轻松愉快,随时随地搜索,不必害怕到一个陌生的环境连吃饭和休息的地方都找不到,也不用担心迷路和绕远的可能性。如图4-11所示。 图4-11驾车导航 26 石家庄铁道大学毕业设计 核心代码: 驾车导航检索 // 百度地图API功能 var map = new BMap.Map("allmap"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); var driving = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}}); function poi_search(){ var sar = document .getElementById ("SarP").value; var endr = document .getElementById ("endP").value; driving .search(sar,endr); (10)留言板,用户可在此模块留言或者回复别人的留言,用户可以用该模块给网 站管理员留言,对本系统有任何的建议或者不满也可在此告知,我们的管理员会立即 给您回复。留言板是系统必备的功能,一个系统做的好坏需要用户来评价,只有通过 用户的使用,获得他们使用后的真实想法,才能更好地改进或者添加功能模块,同时 这也是管理员和用户近距离接触的方式,管理员可以帮助用户解答一些问题,提高系 统的亲和力。如图4-12所示。 图4-12留言板 核心代码: cheng=RS_result.getString("cheng");xingbie=RS_result.getString("xingbie");QQ=RS_resu lt.getString("QQ");youxiang=RS_result.getString("youxiang");dianhua=RS_result.getStrin g("dianhua");neirong=RS_result.getString("neirong");huifuneirong=RS_result.getString 27 石家庄铁道大学毕业设计 4.2.2 系统后台功能的实现 (1)后台登陆,系统后台登陆界面的入口在前台的功能列表的最右边,点击即可显示如下界面。管理员登陆系统时,需要提供管理员用户名和密码,当通过系统的验证后,系统自动转入后台操作页面,如果不能通过系统验证,则返回登陆页面。在管理员成功登陆系统后,转入的页面包含有管理员具有旅游线路管理。如图4-13所示。 图4-13后台登陆界面 本模块界面非常简单,就一用户名和密码两个文本框和一个登陆按钮,但实现的方法比较复杂,因为系统要自动判断其输入的用户名及密码的正误,还要自动识别其权限(超级管理员与普通管理员之分),如果登陆正常后,系统要将当前用户名和权限记录下来以便之后其他操作给予适当的权限分配。系统会根据用户名和密码确认登陆者的角色,是普通会员还是旅行社或者是管理员,不同的角色会显示不同的页面和后台功能,这里着重介绍超级管理员的后台功能。使用超级管理员的用户名和密码后,会显示如下界面。如图4-14所示。 图4-14超级管理员进入的界面 28 石家庄铁道大学毕业设计 超级管理员可以修改删除任何信息,也可以添加普通管理员,旅行社,普通会员等用户。超级管理员一般不参与系统的日常维护,只做一些系统的升级和功能的开发,所以在这里着重介绍管理员的日常使用功能的实现。 (2)站内新闻添加,站内新闻要求与旅游相关的信息必须是最实时和新鲜的,所以管理员必须经常维护,添加、修改、删除新闻是最常做的操作。 站内新闻添加是管理员必须要做的日常工作之一,因此该功能模块对于管理员说十分有必要。新闻的新鲜度和吸引游客的程度会直接影响到本系统的使用量和热度,如果管理员添加的新闻都是非常贴近用户并且能够让游客瞬间提起兴趣,那么这个功能模块的实用性就充分体现了出来。因此这个功能模块的设计和实现是很重要的。如图4-15所示。 图4-15站内新闻的添加 (3)留言管理,留言管理调用的是留言板的数据表,用户的在线留言都保存在本系统的数据库中。因为每个系统都会有不足的地方,有不足的地方就要进行修改,功能总会有不完善的地方,所以用户们的留言对于系统来说非常重要,他们提出的问题都是最贴近实际的,如何使系统更加实用并受用户们的欢迎,这和管理员们对用户留言内容的记录分不开。 管理员们必须时时刻刻了解留言板最新动态,及时回复用户们的留言,并对其中的意见或者建议进行记录,同时如果对于有些无理取闹的留言进行及时的删除,避免对系统的不利影响。这样才能使系统更加地完善。如图4-16所示。 29 石家庄铁道大学毕业设计 图4-16留言管理 (4)旅行社管理,由于旅行社的后台功能较多,权限较大,所以旅行社不能随便注册,否则会被一些别有用心的人所利用。所以,旅行社的账号密码是由管理员提供的,以此避免这类事情的发生。旅行社如果想要一个自己的账号密码,需由负责人向管理员主动联系,由管理员提供账户信息,然后旅行社登录后对此进行修改,将此用户信息修改为自己旅行社的真实信息。一般来说超级管理员不会随意改动旅行社信息,但是如果旅行社做出了有损本系统利益或者信誉之类的事,超级管理员有权删除该旅行社。如图4-17所示。 图4-17旅行社管理 30 石家庄铁道大学毕业设计 第5章 结论与展望 5.1 结论 在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对旅游业宣传的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然旅游信息系统在中小型的城市中的应用不是很多,但是随着我国旅游产业的蓬勃发展,旅游信息系统的作用肯定会越来越大,本系统的设计初衷就是为了地区城市更好地宣传旅游资源,同时满足广大游客的需求,游客的需求和信任就是我们努力的方向和动力。 尽管本管理系统存在着很多不足,但其功能已较为全面。由于本系统采用JSP作为开发工具,日后系统的更新和功能的添加会比较简单和易于实现,管理员也可以轻松地对数据库进行管理和维护,系统的操作贴近用户的基本习惯,同时系统安全性高,让用户不必担心数据的泄漏。相信本系统将会成为城市旅游信息管理中必不可少的好帮手。通过开发这个系统,我掌握了的项目开发的基本过程,更深入了解了数据库的知识并巩固了我对JSP的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。这对于我以后的工作和生活会有很大的帮助。 5.2 展望 或许将来的旅游会更加多样化,但本系统的后期开发并不会因为毕业设计的结束而停止,我会继续在此基础上深入学习各方面的知识,潜心研究新技术,对目前出现的旅游新形式和用户的新需求进行针对的设计,为我国的旅游事业做出自己应尽的一份力,同时帮助自己所在的城市宣传本地区的优秀旅游资源,吸引更多的国内外游客来共同享受大自然带给我们的美好风光。 31 石家庄铁道大学毕业设计 参考文献 [1]赵凌冰.美国旅游网站建设对中国的借鉴分析[J].硅谷,2013. [2]陈洁琼.旅游网站的核心竞争力探究——采用层次分析法的探索研究[J].中国管理信息化,2013. [3]加力戈.旅游网站发展趋势浅析[J].魅力中国,2013. [4]刘忠兵.JSP数据库项目案例导航[M].清华大学出版社,2007. [5]卢瀚,王春斌.Java Web开发实战1200例[M].清华大学出版社,2010. [6]王勇,谭普.基于游客需求的旅游网站评价[J].企业家天地:下旬刊,2012. [7]泰盟工作室.网站开发实例[M].重庆出版社,2010. [8]雷之宇,郑圣蒲,孙皓.用案例学Java Web整合开发:Java+Eclipse+Struts 2+Ajax[M].电子工业 出版社,2009. [9]连洪武.Eclipse Web开发从入门到精通(实例版)[M].清华大学2007. [10]吴亚峰,索依娜.30天学通Java Web项目案例开发[M].电子工业出版社,2009. [11]程宏.管理信息系统[M].浙江大学出版社,2006. [12]李相国.JAVA实例精通[M]机械工业出版社,2009. [13]谭亮.全面精通SQL SERVER 2005[M].中国水利水电出版社,2007. [14]余金.SQL SERVER 2005编程指南[M].北京希望电子出版社,2010. [15]Luke Welling,Laura Thomson(JAVA and SQL Web Development[M](Addison-Wesley Educational Publishers Inc,2008. [16]Jeffrey R.Shapio.SQL SERVER 2005参考大全[M].清华大学出版社,2008. 32 石家庄铁道大学毕业设计 致谢 经过近3个月的学习,我的毕业设计即将完成。在做毕业设计的过程中,我学到了很多知识,也得到了很多人的帮助和支持,在此,我要衷心的感谢他们。 在本次毕业设计中,我从我的指导老师周文峰老师身上学到了很多东西。尽管她平时工作繁忙但她认真负责的工作态度,严谨的治学精神依然使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮助和鼓励,特别是她对用户需求分析的讲解使我茅塞顿开,使我更加深入地了解了如何对用户进行需求分析,这种思考方式对于我将来的工作和学习都有一种巨大的帮助。在写论文阶段,周老师多次审阅我们的论文,提出了许多修改意见,没有她的指导,我就不能这样顺利地完成毕业设计的任务。 另外,我还要感谢在这4年来对我有所教导的老师,他们孜孜不倦的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,虽然他们有时会很严厉,但我知道他们都是为了我好,希望我能多学些东西,在将来能更好地工作,在生活中少走弯路。我在此表示最诚挚的谢意~ 33 石家庄铁道大学毕业设计 附录A 英文原文 外文出处:Autor:Zambon Giulio/Sekler Michael Source:Springer-Verlag New York Inc JSP application frameworks What are application frameworks: A framework is a reusable, semi-complete application that can be specialized to produce custom applications [Johnson]. Like people, software applications are more alike than they are different. They run on the same computers, expect input from the same devices, output to the same displays, and save data to the same hard disks. Developers working on conventional desktop applications are accustomed to toolkits and development environments that leverage the sameness between applications. Application frameworks build on this common ground to provide developers with a reusable structure that can serve as the foundation for their own products. A framework provides developers with a set of backbone components that have the characteristics: following 1.They are known to work well in other applications. 2. They are ready to use with the next project. 3. They can also be used by other teams in the organization. Frameworks are the classic build-versus-buy proposition. If you build it, you will understand it when you are done—but how long will it be before you can roll your own? If youbuy it, you will have to climb the learning curve—and how long is that going to take? There is no right answer here, but most observers would agree that frameworks such as Struts provide a significant return on investment compared to starting from scratch, especially forlarger projects. Other types of frameworks: The idea of a framework applies not only to applications but to application componentsas well. Throughout this article, we introduce other types of frameworks that you can use with Struts. These include the Lucene search engine, the Scaffold toolkit, the 34 石家庄铁道大学毕业设计 Struts validator, and the Tiles tag library. Like application frameworks, these tools provide semi-complete versions of a subsystem that can be specialized to provide a custom component. Some frameworks have been linked to a proprietary development environment. This is not the case with Struts or any of the other frameworks shown in this book. You can use any development environment with Struts: Visual Age for Java, JBuilder, Eclipse, Emacs, can use it with Java, and Textpad are all popular choices among Struts developers. If you you can use it with Struts. Enabling technologies: Applications developed with Struts are based on a number of enabling technologies.These components are not specific to Struts and underlie every Java web application. A reason that developers use frameworks like Struts is to hide the nasty details behind acronyms like HTTP, CGI, and JSP. As a Struts developer, you don’t need to be an alphabet soup guru,but a working knowledge of these base technologies can help you devise creative solutions to tricky problems. Hypertext Transfer Protocol (HTTP): When mediating talks between nations, diplomats often follow a formal protocol. Diplomatic protocols are designed to avoid misunderstandings and to keep negotiations computers need to talk, they also follow a from breaking down. In a similar vein, when formal protocol. The protocol defines how data is transmitted and how to decode it once it arrives. Web applications use the Hypertext Transfer Protocol (HTTP) to move data between the browser running on your computer and the application running on the server. Many server applications communicate using protocols other than HTTP. Some of these maintain an ongoing connection between the computers. The application server knows exactly who is connected at all times and can tell when a connection is dropped. Because they know the state of each connection and the identity of each person using it, these are known as stateful protocols. By contrast, HTTP is known as a stateless protocol. An HTTP server will accept any request from any client and will always provide some type of response, even if the responseis just to say no. Without the overhead of negotiating and retaining a connection, stateless protocols can handle a large volume of requests. This is one reason why the Internet has been able to scale to millions of computers. Another reason HTTP has become the universal standard is its simplicity. An HTTP 35 石家庄铁道大学毕业设计 request looks like an ordinary text document. This has made it easy for applications to makeHTTP requests. You can even send an HTTP request by hand using a standard utility such as Telnet. When the HTTP response comes back, it is also in plain text that developers can read. The first line in the HTTP request contains the method, followed by the location of the requested resource and the version of HTTP. Zero or more HTTP request headers follow the initial line. The HTTP headers provide additional information to the server. This can include the browser type and version, acceptable document types, and the browser’s cookies, just to name a few. Of the seven request methods, GET and POST are by far the most popular. Once the server has received and serviced the request, it will issue an HTTP response.The first line in the response is called the status line and carries the HTTP protocol version,a numeric status, and a brief description of the status. Following the status line, the server will return a set of HTTP response headers that work in a way similar to the request headers. As we mentioned, HTTP does not preserve state information between requests.The server logs the request, sends the response, and goes blissfully on to the next request. While simple and efficient, a stateless protocol is problematic for dynamic applications to keep track of their users. (Ignorance is not always bliss. that need Cookies and URL rewriting are two common ways to keep track of users between requests. A cookie is a special packet of information on the user’s computer. URL rewriting stores a special reference in the page address that a Java server can use to track users. Neither approach is seamless, and using either means extra work when developing a web application. On its own, a standard HTTP web server does not traffic in dynamic content. It mainly uses the request to locate a file and then returns that file in the response. The file is typically formatted using Hypertext Markup Language (HTML) [W3C, HTML] that the web browser can format and display. The HTML page often includes hypertext links to other web pages and may display any number of other goodies, such as images and videos. The user clicks a link to make another request, and the process begins a new. Standard web servers handle static content and images quite well but need a helping hand to provide users with a customized, dynamic response. DEFINITION:Static content on the Web comes directly from text or data files, like HTML or JPEG files. These files might be changed from time to time, but they are not 36 石家庄铁道大学毕业设计 altered automatically when requested by a web browser. Dynamic content, on the other hand, is generated on the fly, typically in response to an individualized request from a browser. Common Gateway Interface (CGI): The first widely used standard for producing dynamic content was the Common Gateway Interface (CGI). CGI uses standard operating system features, such as environment variables and standard input and output, to create a bridge, or gateway, between the web server and other applications on the host machine. The other applications can look at the request sent to them by the web server and create a customized response. When a web server receives a request that’s intended for a CGI program, it runs that program and provides the program with information from the incoming request. The CGI program runs and sends its output back to the server. The web server then relays the response to the browser. CGI defines a set of conventions regarding what information it will pass as environment variables and how it expects standard input and output to be used. Like HTTP, CGI is flexible and easy to implement, and a great number of CGI-aware programs have been written. The main drawback to CGI is that it must run a new copy of the CGI-aware program bog down high-volume or each request. This is a relatively expensive process that can siteswhere thousands of requests are serviced per minute. Another drawback is that CGI programs tend to be platform dependent. A CGI program written for one operating system may not run on another. Java servlets: Sun’s Java Servlet platform directly addresses the two main drawbacks of CGI programs.First, servlets offer better performance and utilization of resources than conventional CGI programs. Second, the write-once, run-anywhere nature of Java means that servlets are portable between operating systems that have a Java Virtual Machine (JVM). A servlet looks and feels like a miniature web server. It receives a request and renders a response. But, unlike conventional web servers, the servlet application programming interface (API) is specifically designed to help Java developers create dynamic applications. The servlet itself is simply a Java class that has been compiled into byte code, like 37 石家庄铁道大学毕业设计 anyother Java object. The servlet has access to a rich API of HTTP-specific services, but it is still just another Java object running in an application and can leverage all your other Java assets. give conventional web servers access to servlets, the servlets are plugged into To containers. The servlet container is attached to the web server. Each servlet can declare what URL patterns it would like to handle. When a request matching a registered pattern arrives, the web server passes the request to the container, and the container invokes the servlet. But unlike CGI programs, a new servlet is not created for each request. Once the container instantiates the servlet, it will just create a new thread for each request. Java threads are much less expensive than the server processes used by CGI programs. Once the servlet has been created, using it for additional requests incurs very little overhead. Servlet developers can use the init() method to hold references to expensive resources, such as database connections or EJB Home Interfaces, so that they can be shared between requests. Acquiring resources like these can take several seconds—which is longer than many surfers are willing to wait. The other edge of the sword is that, since servlets are multithreaded, servlet developers must take special care to be sure their servlets are thread-safe. To learn more about servlet programming, we recommend Java Servlets by Example, by Alan R. Williamson [Williamson]. The definitive source for Servlet information is the Java Servlet Specification [Sun, JST]. JavaServer Pages: While Java servlets are a big step up from CGI programs, they are not a panacea. To generate the response, developers are still stuck with using println statements to render the HTML. Code that looks like: out.println("

One line of HTML.

"); out.println("

Another line of HTML.

"); is all too common in servlets that generate the HTTP response. There are libraries thatcan help you generate HTML, but as applications grow more complex, Java developers end up being cast into the role of HTML page designers. Meanwhile, given the choice, most project managers prefer to divide development teams into specialized groups. They like HTML designers to be working on the presentation while Java engineers sweat the business logic. Using servlets alone 38 石家庄铁道大学毕业设计 encourages mixing markup with business logic, making it difficult for team members to specialize. To solve this problem, Sun turned to the idea of using server pages to combine scripting and templating technologies into a single component. To build Java Server Pages, developers start by creating HTML pages in the same old way, using the same old HTML syntax.To bring dynamic content into the page, the developer can also place JSP scripting lements on the page. Scripting elements are tags that encapsulate logic that is recognized e by the JSP. You can easily pick out scripting elements on JSP pages by looking for code that begins with <% and ends with %>. To be seen as a JSP page, the file just needs to be saved with an extension of .jsp. When a client requests the JSP page, the container translates the page into a source code file for a Java servlet and compiles the source into a Java class file—just as you would do if you were writing a servlet from scratch. At runtime, the container can also check the last modified date of the JSP file against the class file. If the JSP file has changed since it was last compiled, the container will retranslate and rebuild the page all over again. Project managers can now assign the presentation layer to HTML developers, who then pass on their work to Java developers to complete the business-logic portion. The important thing to remember is that a JSP page is really just a servlet. Anything you can do servlet, you can do with a JSP. with a JavaBeans: JavaBeans are Java classes which conform to a set of design patterns that make them easier to use with development tools and other components. DEFINITION A JavaBean is a reusable software component written in Java. To qualify as a JavaBean, the class must be concrete and public, and have a noargument constructor.JavaBeans expose internal fields as properties by providing public methods that follow a consistent design pattern. Knowing that the property names follow this pattern, other Java classes are able to use introspection to discover and manipulate JavaBean properties. The JavaBean design patterns provide access to the bean’s internal state through two flavors of methods: accessors are used to read a JavaBean’s state; mutators are used to change a JavaBean’s state. Mutators are always prefixed with lowercase token set followed by the property name.The first character in the property name must be uppercase. The return value is 39 石家庄铁道大学毕业设计 always void—mutators only change property values; they do not retrieve them. The mutator for a simple property takes only one parameter in its signature, which can be of any type. Mutators are often nicknamed setters after their prefix. The mutator method nature for a weight property of the type Double would be: sig public void setWeight(Double weight) A similar design pattern is used to create the accessor method signature. Accessor are always prefixed with the lowercase token get, followed by the property name. methods Thefirst character in the property name must be uppercase. The return value will match the method parameter in the corresponding mutator. Accessors for simple properties cannot acceptparameters in their method signature. Not surprisingly, accessors are often called getters. The accessor method signature for our weight property is: public Double getWeight() If the accessor returns a logical value, there is a variant pattern. Instead of using the lowercase token get, a logical property can use the prefix is, followed by the property name.The first character in the property name must be uppercase. The return value will always be a logical value—either boolean or Boolean. Logical accessors cannot accept parameters in their method signature. The boolean accessor method signature for an on property would be public boolean isOn() The canonical method signatures play an important role when working with Java- Beans. Other components are able to use the Java Reflection API to discover a JavaBean’s properties by looking for methods prefixed by set, is, or get. If a component finds such a signature on a JavaBean, it knows that the method can be used to access or change the bean’s properties. Sun introduced JavaBeans to work with GUI components, but they are now used with every aspect of Java development, including web applications. When Sun engineers developed the JSP tag extension classes, they designed them to work with JavaBeans. The dynamic data for a page can be passed as a JavaBean, and the JSP tag can then use the bean’s properties to customize the output. For more on JavaBeans, we highly recommend The Awesome Power of JavaBeans, by Lawrence H. Rodrigues [Rodrigues]. The definitive source for JavaBean information is the JavaBean Specification [Sun, JBS]. Model 2: 40 石家庄铁道大学毕业设计 The 0.92 release of the Servlet/JSP Specification described Model 2 as an architecturethat uses servlets and JSP pages together in the same application. The term Model 2 disappeared from later releases, but it remains in popular use among Java web developers. Under Model 2, servlets handle the data access and navigational flow, while JSP pages handle the presentation. Model 2 lets Java engineers and HTML developers each work ontheir own part of the application. A change in one part of a Model 2 application does not mandate a change to another part of the application. HTML developers can often change the look and feel of an application without changing how the back-office servlets work. The Struts framework is based on the Model 2 architecture. It provides a controller servlet to handle the navigational flow and special classes to help with the data access. A substantial custom tag library is bundled with the framework to make Struts easy to use with JSP pages. Summary: In this article, we introduced Struts as an application framework. We examined the technology behind HTTP, the Common Gateway Interface, Java servlets, JSPs, and JavaBeans.We also looked at the Model 2 application architecture to see how it is used to and JSPs in the same application. combine servlets Now that you have had a taste of what it is like to develop a web application with Struts, in chapter 2 we dig deeper into the theory and practice behind the Struts architecture. 41 石家庄铁道大学毕业设计 中文译文 JSP 应用框架 什么是应用框架: 框架(framework)是可重用的,半成品的应用程序,可以用来产生专门的定制程序。象人一样,软件应用的相似性比不同点要多。它们运行在相似的机器上,期望从相同的设备输入信息,输出到相同的显示设备,并且将数据存储到相同的硬盘设备。开发传统桌面应用的开发人员更习惯于那些可以涵盖应用开发同一性的工具包和开发环境。构架在这些公共基础上的应用框架可以为开发人员提供可以为他们的产品提供可重用服务的基础架构。 框架向开发人员提供一系列具有以下特征的骨架组件: 1(已经知道它们在其它程序上工作得很好; 2(它们随时可以在下一个项目中使用; 3(它们可以被组织的其它团队使用; 对于框架是典型的构建还是购买命题。如果你自己构建它,在你完成时你就会理解它,但是在你被融入之前又将花费多长时间呢,如果要购买,你必须得克服学习曲线,同样,在你可以用它进行工作之前又得花多长时间,这里没有所谓正确答案,但许多观察者都会同意,象Struts这样的框架能提供比从头开始开发更显著的投资回报,特别是对于大型项目来说。 其它类型的框架: 框架的概念不仅用于应用程序也可用于组件。在其它的资料里面,我们也介绍了一些可以和Struts一起使用的框架。这些包括Lucene搜索引擎,Scaffold工具包,Struts验证器,以及Tiles标签库。与应用框架一样,这些工具也提供了一些半完成的版本,可以用在用户的定制组件之中。某些框架被限制于专门的开发环境中。Struts以及本文中涉及的组件却不是这样。你可以在很多环境中来开发Struts: Visual Age for Java, JBuilder, Eclipse, Emacs, 甚至使用Textpad。对于你的工具,如果你可以用来开发Java, 你就可以用它来开发Struts。 使用的技术: 使用Struts的应用开发使用了大量的其他基础技术。这些技术并不是专门针对Struts,而是所有Java web 应用都可以使用的。开发者使用Struts之类的框架是为了隐藏在诸如HTTP,CGI,以及JSP之类技术后面的繁琐的细节。作为一个Struts开发者,你并不需要知晓所有的相关知识,但是这些基本技术的工作原理可能有助于你针对棘手问题设计出创造性的方案。 超文本传输协议 (HTTP): 42 石家庄铁道大学毕业设计 当两个国家之间进行调解时,外交官们总是遵循一定的正式协议。外交协议主要设计来避免误解,以及防止谈判破裂。同样,当计算机间需要对话,它们也遵循一个正式的协议。这个协议定义数据是如何传输,以及它们到达后如何进行解码。Web应用程序就是使用HTTP协议在运行浏览器的计算机和运行的服务器的程序间传输数据。 很多服务器应用程序使用HTTP之外的其他协议。他们在计算机之间维护一个持久性的连接。应用服务器可以清楚的知道是谁连接上来,而且何时中断连接。因为它们知道每一个连接的状态,以及每一个使用它的人。这称之为状态协议。 相反, HTTP是一个无状态协议。HTTP Server 可以接受来自于各种客户的各种请求,并提供各种响应,即使是这个响应仅仅是说No。没有大量的协商和连接持久性,无状态协议可以处理大量的请求。这也是Internet 可以扩展到很多计算机的原因。 HTTP 成为通用标准的原因是其简单性。HTTP请求看起来就像一个平常的文本文档。这使应用程序很容易创建HTTP请求。你甚至可以通过标准的程序如Telnet来手动传递一个HTTP请求。当HTTP响应返回时,它也是一个开发者可以直接阅读的平面文本。HTTP请求的第一行包含方法,其后是请求的来源地址和HTTP版本。HTTP请求头跟在首行后面,可以没有也可以有多个。HTTP头向服务器提供额外的信息。可以包括浏览器的种类和版本,可接受的文档类型,浏览器的cookies等等。7 种请求方法中, GET和 POST是用得最多的。 一旦服务器接收到请求,它就要产生一个HTTP响应。响应的第一行称为状态行,包含了HTTP协议的版本,数字型状态,以及状态的简短描述。状态行后,服务器将返回一个HTTP响应头,类似于HTTP请求头。如上所述,HTTP并不在请求间保持状态信息。服务器接受请求,发出响应,并且继续愉快地处理文本请求。 因为简单和效率,无状态协议不适合于需要跟踪用户状态的动态应用。Cookies和 URL 重写是两个在请求间跟踪用户状态的方式。cookie是一种特殊的信息包,存储于用户的计算机中。URL重写是在页面地址中存储一个特殊的标记,Java服务器可以用它来跟踪用户。这两种方法都不是无缝的,是用哪一个都意味着在开发时都要进行额外的工作。对其本身来说,标准的HTTP web服务器并不传输动态内容。它主要是使用请求来定位文件资源,并在响应中返回此资源。通常这里的文件使用Hypertext Markup Language (HTML) [W3C,HTML] 格式化,以使浏览器可以显示它们。HTML页面通常包含一些到其他页面的超文本连接,也可以显示其他一些内容比如图像和视频等等。用户点击连接将产生另一个请求,就开始一个新的处理过程。标准web服务器处理静态内容处理得很好,但处理动态内容时则需要额外的帮助手段了。 43 石家庄铁道大学毕业设计 定义 静态内容直接来自于文本或数据文件,比如HTML或者 JPEG文件。这些文件可以随时改变,但通过浏览器请求时,却不能自动改变。相反,动态内容是临时产生的,典型地,它是针对浏览器的个别请求的响应。 公共网关接口(CGI): 第一个普遍用来产生动态内容的标准是通用网关接口(Common Gateway Interface (CGI))。CGI使用标准的操作系统特征,比如环境变量和标准输入输出,在Web服务器间以及和主机系统间创建桥接和网关。其他程序可以看到web server传递过来的请求,并创建一个定制的响应。当web服务器接收到一个对CGI程序的请求时,它便运行这个程序并向其提供它请求里面所包含的信息。CGI程序运行,并将输出返回给Web server,web server 则将输出响应给浏览器。CGI定义了一套关于什么信息将作为环境变量传递,以及它希望怎样使用标准输入和输出的惯例。与HTTP一样,CGI是灵活和易于实现的,并且已经有大量现成的CGI程序。 CGI的主要缺点是它必须为每个请求运行一个程序。这是一个相对昂贵的处理方法,对大容量站点来说,每分钟有数千个请求,有可能使站点瘫痪。CGI程序的另一个缺点是平台依赖性,一个平台上开发的程序不一定在另一个平台上能运行。 Java servlet: Sun公司的Java Servlet平台直接解决了CGI程序的两个主要缺点: 首先,servlet 比常规CGI 程序提供更好的性能和资源利用。其次,一次编写,随处运行的JAVA特性意味着servlet在有JVM 的操作系统间是轻便的可移动的。Servlet看起来好像是一个微小的web server。它接受请求并产生响应。但,和常规web server不同,servlet API 是专门设计来帮助Java 开发人员创建动态应用的。Servlet 本身是要编译成字节码的Java类,就像其他Java对象一样。Servlet访问HTTP 特定服务的API,但它仍然是一个运行于程序之中的Java 对象,并可以利用所有的Java 资产。为了使常规web servers能访问servlet,servlet被安插在一个容器之中。Servlet容器连接到Web服务器。每servlet 都可以它可以处理何种样式的URL。当符合所注册样式的请求到达,web server将请求传递给容器,容器则调用响应的servlet。但和CGI 程序不同,并不是针对每个请求都要创建一个新的servlet。一旦容器实例化了一个servlet,它就仅为每个新的请求创建一个新的线程。Java线程可比使用CGI程序的服务器处理开销小多了。 一旦servlet被创建,使用它处理额外的请求仅带来很小的额外开销。Servlet开发人员可以使用init() 方法保持对昂贵资源的引用,比如到数据库或者EJB Home接口的连接,以便它们可以在不同的请求之间进行共享。获得这些资源要耗费数秒时间,这比大多数冲浪者愿意等的时间要长些。 44 石家庄铁道大学毕业设计 Servlet的另一个好处是,它是多线程的,servlet开发人员必须特别注意确保它们的servlet是线程安全的。学习servlet 编程,我们推荐Java Servlets by Example, 作者Alan R. Williamson[Williamson]。 JavaServer Pages: 虽然servlets对CGI程序来说前进了一大步,但它也不是万能灵药。为了产生响应,开发人员不得不使用大量的println语句来生成HTML。比如这样的代码: out.println("

One line of HTML.

"); out.println("

Another line of HTML.

"); 在产生HTTP响应的Servlet 中是很普遍的。也有一些库有助于你产生HTML。随着应用越来越复杂,Java开发人员将不再扮演HTML页面设计的角色。同时,大多数项目经理更喜欢将团队分成不同的小组。 它们喜欢HTML设计人员处理表现层的工作,而Java工程师则专注于业务逻辑。单独使用servlet的做法鼓励混合标记和业务逻辑,很难区分团队人员的专业工作。 为解决这个问题,Sun提出了一个将脚本和模板技术结合到一个组件中的服务器页面技术(JavaServer Pages)。为创建JSP页面, 开发者按创建HTML页面类似的方式创建页面,使用相同的HTML 语法。为将动态内容引入页面,开发人员可以将脚本元素置入页面之中。脚本元素是一些标记,封装了可以被JSP识别的逻辑。你可以在JSP页面中很容易的识别出脚本元素,他们被封装在一对<% 和 %>标记中。 为了识别JSP页面,文件需要保存为扩展名.jsp。当一个客户请求JSP页面时,容器将页面翻译成Java servlet 源代码文件,并将它编译成Java 类文件——就象你写的servlet文件一样。在运行时,容器也能检测JSP文件和相应的类的最后更新时间。如果,JSP 文件自上次编译以来被修改了,容器将重新翻译和编译JSP文件。项目经理现在可以将表现层分派给HTML 开发人员,将业务逻辑工作分派给JAVA开发人员。重要的是记住,JSP页面事实上是一个servlet。你可以在servlet做的,也可以在JSP中做。 JavaBean: JavaBean是一种 Java类,它遵从一定的设计模式,使它们易于和其他开发工具和组件一起使用。 定义 JavaBean 是一种JAVA 语言写成的可重用组件。要编写JavaBean,类必须是具体类和公共类,并且具有无参数的构造器(NON-ARGS CONSTRUCTOR)。JavaBean通过提供符合一致性设计模式的公共访问方法将内部字段暴露称为属性。众所周知,属性名称也符合这种模式,其他JAVA 类可以通过自省机制发现和操作这些JavaBean 属性。 45 石家庄铁道大学毕业设计 我们必须做的如下: 1.编写一个类,通过实现doStart()或者doEnd()方法来实现javax.servlet.jsp.tagext.TagSupport 或者javax.servlet.jsp.tagext.BodyTagSupport接口。这些方法获得一个JspWriter对象,你可以用它来输出你需要的HTML内容。 2(创建一个标签库描述文件(TLD)来将你的新建的类,映射到一个标签名称。 3(在你的Web 应用描述符(web.xml)中定义你的 元素。通过在JSP 页面的顶部放置下面的语句:<%@tagliburi="/tags/app.tld prefix="app" %>来告诉JSP 页面你将使用你自己的标签库。 4(这个语句导入将在本页中使用的标签库,并分配给它一个前缀。关于更多细节,请参考JSP标签库技术页面。 JavaBean 设计模式提供两种类型的方式来访问bean 的内部状态:访问器(accessor) 用来读JavaBean的状态,修改器(mutator )用来改变 JavaBean 的状态。Mutator 通常以小写的set 前缀开始,后跟属性名。属性名的第一个字母必须大写。返回值通常是void,因为mutator 仅仅改变属性的值,而不返回它们。简单属性的mutator在其方法体中可能只有一个参数,该参数可以是各种类型。Mutator也可根据其前缀称为设置器setters 。例如,对Double 类型的属性weight 的mutator方法体可能是: public void setWeight(Double weight) 通常以小写的get 为前缀,相似的设计模式也用于访问器方法的创建。Accessor 后跟属性名。属性名的第一个字母必须大写。返回值必须匹配相应的修改器方法的参数。简单属性的Accessor在其方法体中不能接受参数。同样,访问器accessor 也经常称为获取器getter。 属性weight 的访问器方法体可能是:public Double getWeight() 如果访问器返回一个逻辑值,这种情况下有个变体模式。不使用小写的 get,逻辑属性的访问器可以使用小写的is 前缀,后跟属性名。属性名的首字母必须大写。返回值肯定是逻辑值,不管是 boolean 还是Boolean。逻辑访问器在其方法体中不能接受参数。On属性的逻辑访问器的方法体可能是:public boolean isOn() 在使用JavaBean 时,规范的方法体签名扮演了极为重要的角色。其他组件可以使用Java 的反射API 通过查找前缀为set、is或者get的方法来发现JavaBean的属性。如果一个组件在一个JavaBean 中发现一个这样的方法,它就知道这个方法可以用来访问或者改变JavaBean 的属性。Sun引入JavaBean是为了用于GUI组件,但它们已经用在Java开发的各个方面,包括Web应用。Sun的工程师在开发JSP标签的扩展类时,也被设计来可以和JavaBean一起工作。一个页面的动态数据可以使用一 46 石家庄铁道大学毕业设计 个JavaBean来传递,并且JSP标记可以随后使用bean的属性来定制页面的输出。 Model 2: Servlet/JSP规范的0.92 版描述了在一个应用中使用servlet和JSP的架构。在其 2 这个叫法消失了,但它已经在Java web开发人员中非常通用了。后的规范中,Model 根据Model 2,servlet处理数据存取和导航流,JSP处理表现。Model 2使Java工程师和HTML设计者分别工作于它们所擅长和负责的部分。Model 2应用的一部分发生改变并不强求其他部分也跟着发生改变。HTML开发人员可以改变程序的外观和感觉,并不需要改变后端servlet的工作方式。Struts框架是基于Model 2的架构。它提供一个控制器servlet来处理导航流和一些特殊类来帮助数据访问。随框架也提供一个丰富的标签库,以使Struts易于和JSP一起使用。 小结: 在本文中,我们介绍了Struts应用框架。并介绍了一些基本知识,关于HTTP, CGI, Java servlet, JSP,以及JavaBean。我们也说明了Model 2应用架构,以及它如何用来将servlets和JSP 在结合在同一个应用之中。现在你已经有关于Strtus Web应用程序模样的初步印象,以后我们将更深入的讨论Strtuts框架的理论和具体实践。 47
/
本文档为【旅游信息系统的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索