基于Java Web的旅游信息网站

上传人:文*** 文档编号:58992337 上传时间:2022-03-01 格式:DOCX 页数:67 大小:3.67MB
返回 下载 相关 举报
基于Java Web的旅游信息网站_第1页
第1页 / 共67页
基于Java Web的旅游信息网站_第2页
第2页 / 共67页
基于Java Web的旅游信息网站_第3页
第3页 / 共67页
点击查看更多>>
资源描述
基于Java Web的旅游信息网站Tourism information website based on Java Web内容摘要本次开发的网站是基于JSP/Servlet的 WEB旅游应用网站,该网站是以互联网传播为媒介来实现旅游信息发布、共享的平台网站。本次论文主要论述的是的网站整个开发和设计的过程。在开发过程中,我们主要运用了java程序设计语言、数据库MySQL、Redis缓存思想、ajax、json等相关知识技术。根据java面向对象开发的原理,采用了基于B/S结构的开发模式和MVC软件架构模式的系统。灵活地利用了互联网的信息交换具有的及时性、传播范围广、不受空间限制等相关特性。该网站可以为热爱旅游的麻友门提供各方各面的旅游景点信息,主要设计包含了旅游线路查询,展示了各大旅游景点、景点图片、商家信息、价格的信息及收藏线路功能,用户信息管理的管理维护等这些基本模块。通过这些模块实现旅游信息数据共享,为麻友们提供及时高效、详细准确的旅游景点信息。文中将重点对旅游网站的开发原理、网站的设计方案和功能特点的全面介绍。关键词:旅游网站 Java web 数据库Abstract The website developed this time is a WEB tourism application website based on JSP/Servlet. The website is a platform website that realizes the publishing and sharing of tourism information through Internet communication.This paper mainly discusses the whole process of website development and design.In the development process, we mainly used Java programming language, database MySQL, Redis cache ideas, ajax, json and other relevant knowledge and technology.According to the principle of Java object-oriented development, the system adopts the B/S structure-based development pattern and MVC software architecture pattern.Flexible use of the Internet information exchange has timeliness, wide range of dissemination, free of space restrictions and other related characteristics.The website can provide all aspects of the tourist attraction information for the love of tourism mayoumen, the main design includes the tourist route inquiry, showing the major tourist attractions, scenic pictures, business information, price information and collection line function, user information management management and maintenance of these basic modules.Through these modules, the sharing of tourism information data can be realized, so as to provide timely, efficient, detailed and accurate information of tourist attractions for ma you.This paper will focus on the tourism website development principle, website design and functional features of the comprehensive introduction.Key words: Tourism website Java web database目录第一章 绪论11.1 系统开发的背景11.2 系统开发的目的与意义11.3系统在国内外发展的概况2第二章 可行性分析32.1 社会可行性分析32.2 技术可行性分析32.3 操作可行性分析32.4 经济可行性分析42.5 系统的技术介绍42.6 系统开发平台工具及运行环境6第三章 需求分析63.1 系统功能概况63.2 系统架构分析73.3 系统功能模块设计83.4 系统用例分析9第四章 数据库的设计124.1 概念模型设计124.2 数据库表设计15第五章 前台功能设计与实现185.1 用户状态图与活动图设计185.2 旅游信息网首页设计205.3 用户功能模块225.3.1用户注册225.3.2用户登录245.3.3用户退出275.4线路信息浏览功能模块285.4.1分类数据展示285.4.2线路分页展示305.4.3景点信息查询345.5线路详情展示功能模块375.5.1线路详情展示375.6旅游收藏功能的模块415.6.1旅游线路收藏41第六章 后台功能设计与实现476.1 后台系统活动图设计476.2 管理员登录486.3 后台首页设计486.4 后台管理设计496.4.1 后台管理类图设计496.4.2 查看所有用户资料496.5.3 条件查看用户506.5.4 删除用户516.5.5 修改用户信息52第七章 系统测试537.1 系统测试的目的537.2 测试的准则537.3 测试方法547.4 测试用例547.5 测试结论57第八章 结论58参考文献60致谢59第一章 绪论1.1 系统开发的背景世界旅游行业蓬勃地发展,我国的旅游产物走出了国门。与此同时随着国内互联网的大众化和计算机网络技术的与日俱进,我们步入了人人都离不开互联网的时代。层出不穷的企业利用了互联网技术不断发展进步和通过互联网对外宣传自己企业的特色。互联网为信息有需求的百姓们提供了便捷的服务。人们开始利用闲钱去旅游,旅游渐渐的也成为人们消费的热点。互联网旅游也是个热点主题,所以开发者们纷纷开发设计出很多优秀的旅游网站。旅游业成为各地当作本地经济发展的重要支柱之一,各旅游胜地和旅行社利用旅游网站对外宣传。不过许多旅游网站还只仅限于简简单单地对旅游信息的发布和介绍,而互联网旅游业的发展根本不应只是局限于此。通过浏览器看到的静态页面是得不到用户满足的,用户更希望能根据自己的喜好生成更加丰富的、灵活的动态页面。动态旅游网站是以数据库技术为基础的;开发者采用动态网页技术可以实现更多模块功能,例如用户和管理员注册登录、邮箱/手机激活,通过搜索框搜索线路、后台管理等功能。旅游网不是仅仅独立存在于服务器的网页文件,当用户请求服务器时,我们通过发送请求,回响数据。显示一个完整的信息页面出来。利用它来传递和发送数据信息,更好的展现页面。1.2 系统开发的目的与意义此次开发的主要目的是提高热爱旅游的人们对各个旅游景点认知,对于热爱旅游的麻游们而言,一些相关旅游信息共享是十分重要的。比如网上价格,图片,收藏次数、景区景点位置、经营商家、联系方式等信息,为了吸收更多的旅游者前来参观旅游,有效的开发推广各地的旅游资源,给热爱旅游的麻友们和各大旅游企业相关的部门提供全面详细的旅游信息。根据改革开放以来,中国旅游地区不断地扩大和国际旅客不断的增长,中国目前的旅游行业越来约多样化。科技的进步让旅游行业的成长空间得到了更好的提升,在未来的20年间,相信旅游不再是高消费的活动产品,而是作为日常生活的方式进入了家家户户。人们不再单纯地“观山看水”,而是更多地满足自己的求知欲和生活体验。1.3 系统在国内外发展的概况中国旅游业的发展日新月异,具有很大的潜力,中国的旅游市场逐渐引起全球的瞩目。不断地涌入外来流量,世界旅游区域的重心正向东方转移。中国在旅游行业向外不断地推广,越来越多的外国朋友纷纷来到了中国。根据世界旅游组织统计显示,2010 年中国超过西班牙成为位居法国、美国之后的当今全球第三大旅游目的地。从数据来看,我国旅游市场出入境游客数量分布不均匀,为不让入境旅游市场不处于低迷状态,利用互联网推广国内景点,可以加快国内旅游行业的发展。随着旅客精神文化的需求不断的上升,旅游是使用闲暇时间的最佳选择之一。旅游业是一个跨国性的行业,即使我国的旅游行业在国际贸易上“量”达到了“旅游大国”的水平,但在“质”方面,跟世界其他典型的旅游强国相比而言还是存在着很大的差距的,必须重视国内的旅游发展。引进互联网的高端技术,可以大大的提升我国旅游业的发展水平。从2018年到2019年的中国旅游业现状来看,旅游业正迎来黄金的发展期。市场的不断扩大,目前低端的旅游产品供给已经没办法满足人们高品质的需求。第二章 可行性分析2.1 社会可行性分析旅游行业在当今是个高消费的行业,推动着社会的进步和发展,我国的旅游行业发展对比国际起步较晚,在改革开放后,国民经济得到了发展,旅游行业渐渐成为人们消费热点,同时互联网的新兴,让旅游信息网站日益不可或缺。本次开发网站主要是以世界知名旅游胜地进行了宣传,网络旅游将推动各地国民经济的迅速发在,将为旅游业界带来新的生机,所以互联网旅游行业在社会是可行性的,无疑可以带动社会的发展。2.2 技术可行性分析单一的网络浏览模式造成很大的不变,所以这次的开发主要包括后台数据库的连接和前台页面与后台进行异步的交互形式来展示页面两大方面,后台数据库需要在MYSQL数据库建立,它让数据保持了一致性和完整性、数据安全性好;采用了B/S结构的开发模式和MVC软件架构模式,基于Java Web的麻游网,前台页面使用了JQuery框架技术和Ajax/Json的数据交互。数据库Dao连接采用的是Spring的JDBC的方式和Redis(key-value存储系统)缓存思想,完成数据的增删查改等功能。工具采用了IntelliJ IDEA,这款工具为编程人员具备得心应手的集成开发环境。运用JSP + Servlet + MySQL开发灵活且便捷,维护也较为容易,所以在技术可行性上来说是可行的。2.3 操作可行性分析该网站是以认为主导,页面简洁,用法简单,操作容易。适合人群:只要具有普通上网能力的人都可以对网站进行使用和操作,用户打开网站可以根据自己的需求对它进行操作,它提供服务的功能模块齐全。用户只要打开页面就可根据自己的需要按系统给出的提示信息步骤进行操作。此次的网站包含多层次和多方面利用信息,基本可以满足旅客的需求。2.4 经济可行性分析 网站使用的基本开发工具是IntelliJ IDEA、SQLyog(数据库软件)、火狐/谷歌等浏览器都是网络上都有提供的软件,有些是要收费的。系统投入使用后,只需要操作者通过浏览器浏览页面和SQLyog进行操作:对网站信息和数据更新、修改、删除就可完成对网站的系统维护和管理。对网站进行相应的推广和宣传,提高网站的知名度,使越来越多的人在互联网上更加容易的通过搜索引擎来搜索到这个旅游网站,这样将会给商家带来立竿见影的效果,并且很大程度上的提升旅游社的业务量,使旅游社获得更丰富的利润。2.5 系统的技术介绍(1) JavaScriptJavaScript是根据面向对象的功能对程序设计进行更直白、可重复性进行开发。JS是一门具有独特性和丰富性的语言,是一种脚本语言,不仅应用于网页设计还可以应用在移动开发上。HTML用于创建静态页面,而JS可使网页变为动态页面。麻游网通过JavaScript技术达到一些页面动态效果,麻游网上在用户注册登录模块,通过JavaScript对其进行前期的验证工作,不用跳到后台去校验,这大大地节约系统反应时间,增强用户的体验感。此外,它的核心组件还覆盖了许多可以构建客户端的常用组件,这让我们在开发过程中可以利用。(2) MySQLMySQL是Oracle公司旗下的一个关系型数据库管理系统。它的用法简单,操作容易而且性能高、成本低,现在很多中小型公司仍然在用它。随着它的不断完善成熟,渐渐地也开始对大规模的网站或应用的开发。对比其他数据库,它在开发、部署和管理方面降低风险、成本和减少复杂性 。 (3) jQuery jQuery是一个JavaScript库,它具有独特的语法,在开发过程中可以减少很多JS的代码。要运行它需要的条件非常简单,一台运行现代浏览器的设备即可,对浏览器的要求也很自由,当前大多数浏览器都支持它。在此次开发过程中,利用AJAX异步的请求,灵活地可以刷新网页,它为页面提供了动态的效果。它在处理事件中,消除了各种浏览器的兼容性问题。(4) RedisRedis是Key-value的非关系型数据库,它的存储类型包括list(链表)、string(字符串)、zset(sorted set -有序集合)set(集合)和hash(哈希类型)。它使用ANSIC语言编写、可基于内存亦可持久化的日志型。并且提供多种语言的API。麻游网采用了java的redis客户端Jedis对其线路分类缓存进行操作。(5) JDBCJDBC是以中可以执行SQL语句的java接口,通过接口可以连接MYSQL数据库,对数据库进行增删查改操作。在本次开发麻游网中,利用的是Spring的JDBC Template,它是Spring MVC内置的对JDBC的一种封装,它的使用简单并且提供了一些静态方法。(6) MVCMVC是麻游网开发中一种通常用于开发用户界面的体系结构模式,它将麻游网划分为模型、视图和控制器三个组成部分,M代表业务模型,V代表用户界面,C代表控制器。利用这种模式可以将信息的内部情况呈现给用户,大大改进了用户的交互。 这个模式将复杂度简化了,让麻游网变得更加直观。MVC设计模式利用组件分离,从而实现高效的代码重用和并行开发。2.6 系统开发平台工具及运行环境系统开发平台工具麻游网的开发是在Apache旗下的核心项目 Tomcat上运行的。Tomcat服务器是用Java语言进行编写的,所以运行环境需要JDK支持。此次开发的麻游网使用的是JDK1.9版本。IntelliJ IDEA可以使开发人员利用Tomcat能够快速部署Web程序,此次项目在开发过程中使用IntelliJ IDEA 2018.1.6 x64作为开发工具。它是Servlet和JSP的容器。运行环境运行操作系统:Windows 10所需JDK版本:1.9用户浏览器:谷歌、火狐浏览器、IE、搜狗浏览器等。 服务器软件: Tomcat7.0第三章 需求分析3.1 系统功能概况麻游网旨在为游客及时准确、完整发布游客所需要的相关旅游信息,同时也给旅游公司创造利益,它主要有如下相应的几个功能:登陆页面:通过登陆进入旅游信息网进行浏览,并根据登陆者身份进入用户或管理员页面。注册页面:注册用户,在注册过程中用户通过邮箱和验证码进行注册,需要将用户信息填写正确,并通过邮箱进行激活。主页页面:介绍该旅游网站各个旅游线路,并提供登陆和注册和退出的方式。游客页面:主要罗列出各个线路的展示,其中有全球自由行、国内游、出境游、抱团定制、港澳游、酒店、门票、香港车票。主要功能有分页展示全部的旅游信息、根据自己的要求在搜索框写入自己想要了解的旅游信息便可查询到该信息所涵盖的各项旅游景点展示。通过列表展示的各个景点可以选择查看详情。用户页面:主要罗列出各个线路的展示,其中有全球自由行、国内游、出境游、抱团定制、港澳游、酒店、门票、香港车票。主要功能有分页展示全部的旅游信息、根据自己的要求在搜索框写入自己想要了解的旅游信息便可查询到该信息所涵盖的各项旅游景点展示。通过列表展示的各个景点可以选择查看详情。并且可以点击收藏,在我的收藏可以随时查看自己收藏的记录信息。管理员页面:对用户进行分页查看和对用户的信息进行条件查询和修改、删除功能,对用户进行一个宏观方面的关注。3.2 系统架构分析该旅游信息网分为游客端,用户端与管理员端三个端口,用户模块主要是面向全体用户,即游客端和用户端归属于用户模块,它提供相应的视图与窗口;管理模块主要用于查看用户各个数据,即接受用户模块的信息数据,并接受其处理结果。本网站的系统架构如图3.1所示:图 3.1 系统架构图3.3 系统功能模块设计根据该麻游网功能模块的分析,采用了Process On对功能模块进行绘画。游客端模块图与用户端模块图如图3.2和3.3所示:图3.2 游客端功能模块图图3.3 用户端功能模块图管理员端模块图如图3.4所示:图3.4 管理员端功能模块图3.4 系统用例分析麻游网的划分为游客,用户和后台管理员三个角色。在本次开发中三者由于角色不同,权限也不同。游客端的主要功能有分类数据展示、线路分页展示,旅游线路条件查询,针对每一个线路,可以点击查看详情。用户端的主要功能模块有:用户登录、注册、退出登录、邮箱激活、我的收藏、分类数据展示、线路分页展示、旅游线路条件查询,针对每一个线路,可以点击查看详情。 可以点击收藏按钮,点击我的收藏可以随时查看收藏的线路信息并且分页地展示出来。管理员端主要功能有:对用户进行信息管理。系统的总体用例图如图3.5,图3.6,图3.7所示:图3.5游客端用户用例图图3.6用户端用例图图3.7管理员端用用例图第四章 数据库的设计数据库是麻游网开发中不可或缺的一部分。本次利用了MySQL这种轻量的关系行数据库。MySQL是当前最流行的数据库之一,它在本次开发过程中,有利于减少开发成本,它适用于小型网站开发,所以我们选择了MySQL数据库。4.1概念模型设计概念模型是对网站中的对象描述,每个概念模型都是相对独立的,这是用来帮助人们了解,理解,或模拟对象的模型表示。在开发过程中,实体关系模型(ERM)是数据的抽象和概念表示。实体关系建模是用于生成一种系统数据库建模的方法,E-R方法是设计概念模型常用的方法之一,本次开发中的全局E-R模型,如图4.1所示:图4.1 全局E-R模型根据设计规划的主要实体有:管理员、用户、旅游线路、收藏线路、线路详情、卖家信息、线路图片。各个实体里部分的描述属性图如下:用户实体如图4.2所示 图4.2用户实体图 旅游线路实体如图4.3所示:图4.3旅游线路实体图 管理员实体如图4.4所示:图4.4管理员实体图 收藏线路实体如图4.5所示:图4.5收藏线路实体图 卖家实体如图4.6所示:图4.6卖家实体图线路图片实体如图4.7所示:图4.7线路图片实体图4.2 数据库表设计数据库表的设计在麻游网开发过程中十分重要,数据库表不仅要求储存完整的数据模型,还不能存在数据库复杂,数据冗余的情况。根据需求合理的设计麻游网各大功能所需的数据库表,对麻游网各个功能和功能之间联系的理解与掌握,确定用户和数据库使用的要求和各种约束条件,形成用户需求规约。麻游网数据库表如下:表4.1 tab_user 用户表字段名称数据类型主键是否为空说明uidIntYN主键usernamevarcharNN用户名passwordvarcharNN密码namevarcharN姓名birthdaydateN生日sexcharN性别telephonevarcharN电话emailvarcharN邮箱statuscharN激活状态codevarcharN激活码表4.2tab_seller卖家表字段名称数据类型主键是否为空说明sidintYN主键snamevarcharNN卖家名consphonevarcharNN卖家电话addressvarcharN卖家地址表4.3 tab_route_img 线路图片表字段名称数据类型主键是否为空说明rgidintYN主键ridintNN线路idbigPicvarcharNN详情商品大图smallPicvarcharN详情商品小图表4.4 tab_rout 线路表字段名称数据类型主键是否为空说明ridintYN主键rnamevarcharNN线路名称pricedoubleNN价格routeIntroducevarcharN线路介绍rflagcharNN是否上架rdatevarcharN上架时间isThemeTourcharNN是否主题旅游countintN收藏数量cidintN所属分类rimagevarcharN缩量图sidintN所属商家sourceIdvarcharN商品详情图片列表表4.5 tab_favorite 收藏表字段名称数据类型主键是否为空说明ridintYN主键datedateNN收藏时间uidvarcharNN所属用户id表4.6 tab_category 线路分类表字段名称数据类型主键是否为空说明cidintYN主键cnamevarcharNN分类名称表4.8 tab_admin 管理员表字段名称数据类型主键是否为空说明idintYN主键adminnamevarcharNN管理员名passwordvarcharNN密码第五章 前台功能设计与实现麻游网功能模块的设计与实现是按照“低耦合、高内聚”的原则,划分为以下几个主要功能模块:用户功能模块;线路信息浏览功能模块;景点信息查询功能模块;线路收藏功能模块。5.1 用户状态图与活动图设计麻游网的用户状态图主要分为注册状态图和登录状态图。利用Process On分别画出,如图5.1.1、5.1.2所示。注册状态图呈现了用户注册时的状态转换,游客首次进入麻游网是没有用户的存档的,需要进行用户注册,注册时,利用JS进行输入格式校验,验证码校验,如果输入的信息格式不符合验证或者验证码错误时,则会提出错误信息,用户需输入正确格式和验证码方可注册,注册完需要登录自己的邮箱,进行邮箱激活后方可真正的注册成功。登录状态图则呈现了用户登录时的状态转换,游客进入首页时,当你想进行点击用户权限的功能模块时,游客需要进行用户登录,在登录时会进行JS校验,需输入正确格式方可登录成功。如果在输入信息时有错,则提出错误信息,需要重新输入。图5.1.1 注册状态图图5.1.2登录状态图用户活动图可以呈现用户在麻游网中的活动状态,从开始到结束整个过程中,需要用户在打开网站之后才会进入麻游网主页,主页能查看登录的用户状态、分类旅游线路列表和各线路商品列表的展示,主页有登录、注册、退出、我的收藏按钮。游客根据自己是否注册选择注册或者登录页面。登录过程中,系统会自动查询数据库判断登录者是否已有注册激活过。如果注册成功并且激活可以进入用户界面,无论是哪个一位用户,都可以查询并收藏线路详情中的景点;在我的收藏中可以查询自己收藏过的线路展示,并且可以点击查看线路详情;如果登录不成功,则只可以查询线路详情中景点,无法进行收藏,需登录用户状态方可收藏。图5.1.3用户活动图5.2 旅游信息网首页设计首页模块的布局分为三个部分,分别为上、中、下,采用内嵌框架技术。首页如图5.2.1所示图5.2.1旅游信息网首页图l 上端部分的实现上部分为两个部分的内容,分别为:广告栏;网站多个功能按钮和线路搜索栏;导航栏菜单;网站上端部分最上面为网站的广告栏,中间为管理员登录、用户登录、用户注册、退出、我的收藏的功能按钮;紧接着下面:左边为该旅游信息网站的logo,中间是一个搜索输入框和一个搜索按钮,右边是一个客服热线;上端部分的最下面是以导航栏菜单里包含了一些超链接,有首页、门票、酒店、香港车票、处境游、国内游、港澳游、抱团定制、全球自由行、收藏排行版,十个按钮,分别对应不同的页面。此处只对应首页、国内游、收藏排行版、我的收藏页面。l 中间部分的实现上面部分是一个宣传位(插入轮播图广告);中间一个线路精选,分别是人气旅游、最新旅游和主题旅游;下面是一个国内游和境外游的商品列表展示,用于宣传。l 下端部分的实现网站下端部分由服务介绍组成,里面主要包含了几个服务介绍和旅游信息网站联系方式。5.3用户功能模块5.3.1用户注册1、用户注册的操作设计描述:新用户首次访问本站,必须注册。点击注册按钮可以跳转到注册页面,在这个注册页面,通过JS表单验证输入正确格式的用户信息,如若已有用户账号无需注册,可以点击“立即登录“即可进入登录页面。注册完,需要通过邮箱进行激活,方可注册用户成功。2、用户注册的模块图:图5.3.1用户模块图3、类的说明:1、用户模块归纳在User类里2、主要方法:boolean regist(User user); 注册用户boolean active(String code); 激活用户3、主要算法:获取激活码,判断激活是否成功,成功后跳转登录页面,失败,联系后台。String code = request.getParameter(code);if(code != null) boolean flag = service.active(code); String msg = null; if(flag) msg = 激活成功,请登录; else msg = 激活失败,请联系管理员!; 4、用户注册的实现:图5.3.2用户注册图用户在输入用户的注册信息时需要进行JS表单校验,内容如下:l 用户名校验:单词字符,长度8到20位;l 登录密码校验:单词字符,长度8到20位;l Email校验:邮箱格式;l 姓名校验:Email不能为空;l 手机号校验:手机号格式;l 出生日期校验:出生日期不能为空;l 验证码校验:验证码要与图片码一致。 用户注册和激活的代码实现:if(checkcode_server = null | !checkcode_server.equalsIgnoreCase(check) ResultInfo info = new ResultInfo(); info.setFlag(false); info.setErrorMsg(验证码错误); response.setContentType(application/json;charset=utf-8); response.getWriter().write(writeValueAsString(info); return;if(flag) info.setFlag(true);else info.setFlag(false); info.setErrorMsg(注册失败!); 5.3.2用户登录1、用户登录的操作设计描述:用户注册完成之后需要登录自己的邮箱进行邮箱激活才算注册成功,注册成功后会自动跳转到登录页面进行用户登录,如果之前有用户注册过的存档,可以直接在首页点击“登录”链接来进入登录页面。用户在输入表单时不会进行校验,提交后无此用户、用户名或者密码输入错误时会登录失败并返回登录页面,提示信息:用户名或密码错误,需要重新进行输入登录信息。2、用户登录的模块图:图5.3.1用户登录图3、类的说明:1、用户模块归纳在User类里2、主要方法:User login(User user); 登录用户3、主要算法:判断用户是否存在,用户存在判断是否已经激活,激活了登录成功。if(u = null) /用户名密码或错误 info.setFlag(false); info.setErrorMsg(用户名密码或错误);/5.判断用户是否激活if(u != null & !Y.equals(u.getStatus() info.setFlag(false); info.setErrorMsg(您尚未激活,请激活);/6.判断登录成功if(u != null & Y.equals(u.getStatus() info.setFlag(true);4、用户登录的实现:图5.3.2用户登录图用户在输入表单时不会进行校验,需要提交后在后台进行验证,若无此用户、用户名或者密码输入错误时会登录失败并响应错误信息到登录页面去,提示错误信息:用户名或密码错误。登录成功:用户点击“登录”链接,输入正确并存在用户账号和密码,登录成功后,系统会把用户信息存在Session里面并且进入首页,页面中用户姓名有提示信息的功能。用户在登录成功之后,可以点击“我的收藏”链接来查看自己在相关旅游线路景点上的收藏信息。也可以点击每个收藏线路的线路详情,点击后跳转到当前点击的这个线路详情页面。用户登录的主要代码实现: if(u = null) info.setFlag(false); info.setErrorMsg(用户名或密码错误); if(u != null & !Y.equals(u.getStatus() info.setFlag(false); info.setErrorMsg(您尚未激活,请激活); if(u != null & Y.equals(u.getStatus() request.getSession().setAttribute(user,u); info.setFlag(true); 5.3.3用户退出1、用户退出的操作设计描述:登录成功后在index页面中有用户姓名的提示功能,点击页面的退出按钮,就返回游客页面并且index页面没有用户姓名的提示。2、用户退出的模块图:图5.3.1退出模块图3、类的说明:1、用户模块归纳在User类里2、主要方法:void findOne(); 获取登录用户void exit(); 退出用户3、主要算法: 从session中获取登录用户,将user写回客户端。点击退出后,销毁session,跳转到登录页面。Object user = request.getSession().getAttribute(user);request.getSession().invalidate();response.sendRedirect(request.getContextPath()+/login.html);4、用户退出的实现:图5.3.2用户退出图当登录成功后,session中有user对象,index页面中会有用户的提示功能。点击退出按钮时,访问serlet,将session销毁,跳转到登录界面用户退出的实现:Header.html$(function () $.get(user/findOne,function (data) var msg = 欢迎回来,+data.name; ); 我的收藏 退出Servlet Object user = request.getSession().getAttribute(user); writeValue(user,response); request.getSession().invalidate(); response.sendRedirect(request.getContextPath()+/login.html);5.4线路信息浏览功能模块5.4.1分类数据展示1、分类数据展示的操作设计描述:在主页的导航栏菜单上,点击了不同的分类后,将会看到的旅游线路不一样。分类的数据在每一次页面加载后都会进行一次请求数据库来加载信息,所以对数据库的压力较大,而且分类的数据不会经常性地产生变化,所以可以使用redis对分类数据进行缓存优化。2、分类数据展示的模块图:图5.4.1分类数据模块图3、类的说明:1、分类模块归纳在Category类里2、主要方法:List findAll(); 获取所有分类数据3、主要算法: 判断查询的集合是否为空,为空的话需要从数据库查询,并存入redis,不为空的话直接从redis中查询。if (categorys = null | categorys.size() = 0) System.out.println(从数据库查询.); cs = categoryDao.findAll(); for (int i = 0; i cs.size(); i+) jedis.zadd(category, cs.get(i).getCid(), cs.get(i).getCname(); else System.out.println(从redis中查询.);4、分类数据展示的实现:图5.4.2 分类数据图打开Redis服务器后,打开页面。使用redis的sortedset,导航栏分类会按存储的顺序来展示。第一次访问会从数据库的tab_category表查询出所有的分类数据,并存入redis。之后打开页面直接从redis缓存里边查询。分类数据展示的主要代码:Header.html$.get(category/findAll,function (data) var lis = 首页; for (var i = 0; i data.length; i+) var li = +datai.cname+; lis += li; CategoryService Jedis jedis = JedisUtil.getJedis(); Set categorys = jedis.zrangeWithScores(category, 0, -1); List cs = null; if (categorys = null | categorys.size() = 0) cs = categoryDao.findAll(); for (int i = 0; i cs.size(); i+) jedis.zadd(category, cs.get(i).getCid(), cs.get(i).getCname(); else cs = new ArrayList(); for (Tuple tuple : categorys) Category category = new Category(); category.setCname(tuple.getElement(); category.setCid(int)tuple.getScore(); cs.add(category); return cs;5.4.2线路分页展示1、线路分页展示的操作设计描述:根据分页模块和数据库表的分析结构,旅游线路表tab_route和分类表tab_category是多对一的关系,由分类数据cid查询不同的旅游线路。页面显示出不同的信息分类按钮,点击不同的分类后,在页面下方有分页工具条数据展示,其中有展示总页码、总记录数、上一页、下一页、首页、尾页、10个页码的展示。2、线路分页展示的模块图:图5.4.3分页展示模块图3、类的说明:1、分页模块归纳在PageBean类里2、主要方法:int findTotalCount1(int cid);根据分类数据cid查询总记录数List findByPage1(int cid , int start , int pageSize); 根据cid、start、 pageSize查询当前页面的数据集合3、主要算法: 分页工具条一共展示10个页码,能够达到前5后4的效果,如果前面不够5个,后边补齐10个;如果后边不足4个,前边补齐10个。var begin; / 开始位置var end ; / 结束位置/1.要显示10个页码if(pb.totalPage 10) /总页码不够10页 begin = 1; end = pb.totalPage;else /总页码超过10页 begin = pb.currentPage - 5 ; end = pb.currentPage + 4 ; /2.如果前边不够5个,后边补齐10个 if(begin pb.totalPage) end = pb.totalPage; begin = end - 9 ; 4、线路分页展示的实现:图5.4.4分页效果图当页面加载完成后,调用load方法,发送ajax请求加载数据,传递cid,currentPage给服务器端,服务器解析pagebean数据,在页面上展示总页码,总记录数,计算上一页的页码,分页页码(前5后4的效果),定义开始位置和结束位置,将数据库查询到的数据通过每页显示5条数据展示出来。线路分页展示主要的代码:前端route_list.html:function load(cid ,currentPage,rname) $.get(route/pageQuery2,cid:cid,currentPage:currentPage,rname:rname,function (pb) $(#totalPage).html(pb.totalPage); $(#totalCount).html(pb.totalCount); var lis = ; var fristPage = 首页; var beforeNum = pb.currentPage - 1; if(beforeNum = 0) beforeNum = 1; var beforePage = 上一页; lis += fristPage; lis += beforePage; var begin; var end ; if(pb.totalPage 10) begin = 1; end = pb.totalPage; else begin = pb.currentPage - 5 ; end = pb.currentPage + 4 ; if(begin pb.totalPage) end = pb.totalPage; begin = end - 9 ; for (var i = begin; i = end ; i+) var li; if(pb.currentPage = i) li = +i+; else li = +i+; lis += li; var lastPage = 末页; var nextNum = pb.currentPage + 1; if(nextNum = pb.totalPage) nextNum = pb.totalPage var nextPage = 下一页; lis += nextPage; lis += lastPage;Servlet:int cid = 0; if(cidStr != null & cidStr.length()
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!