赞
踩
大家好,今天给大家介绍基于JSP+access的旅游管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦
文章目录:
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:15981个字30页
包含内容:整套源码+完整毕业论文+
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
引言
1.1 旅游管理系统的发展
中国旅游网站的建设始于1996年。目前,旅游行业管理的网络化正在对我国旅游市场固有的市场壁垒带来革命性的冲击,新的市场关注点正在涌现。随着现代科技和信息产业的发展,互联网的兴起给旅游业带来了新的契机,网络的关互性、实时性、丰富性和便捷性等优势促使传统旅游业迅速融入网络旅游的浪潮不再受时间、空间的限制,旅游资源的拥有者(如航空公司、宾馆等)和最终的旅游消费者之间也能够建立起更直接的关系。
1.2 旅游管理系统的现状
随着社会的发展,旅游业已成为全球经济中发展势头最强劲和规模最大的产业之一。旅游业在城市经济发展中的产业地位、经济作用逐步增强,旅游业对城市经济的推动性、社会就业的带动力、以及对文化与环境的促进作用日益显现。旅游业已成为中国经济发展的支柱性产业之一。
旅游网站也随着旅游业的发展而逐渐成为旅游信息管理的主要途径。目前旅游网站已基本形成了成功的商业框架。如何利用网络的巨大潜力将企业的核心业务流程、客户关系管理等都延伸到网上,使产品和服务更贴近用户,让旅游信息网成为企业资源计划、客户关系管理及供应链管理的中枢神经,实现网络对旅游业的整合,将原来市场分散的利润点集中起来,获得一种成功的旅游网站运行模式,是目前旅游业发展中最重要的一个环节。
1.3 该系统的主要研究内容
分析了目前普遍的旅行社经营模式和游客的消费方式和国内一些知名旅游网站,设计了旅游管理系统网站的功能模块和业务流程。研究了Java分布式框架–J2EE,Web容器,组件生命周期。研究JSP技术,包括如何进行基于JSP应用开发以及在JSP服务器上的发布运行。深入研究了基于multipart/form-data的form传送协议,以及如何在该协议下进行通信。研究了如何基于JavaScript开发更丰富的人机交互界面。研究了J2EE框架中数据源的2种配置方式,使用容器管理连接池,直接使用JDBC。
2系统开发的关键技术
2.1 JAVA语言
Java语言诞生于20世纪90年代的初期,最初是以智能家电的芯片语言出现的。但是很快,人们发现了它有更广阔的用武之地,由于它适用于Internet环境,引起计算机界的广泛关注,迅速发展成计算机网络编程语言。
Java语言备受推崇,因其确实可称得上是新一代编程语言,具有众多优点,它简单、面向对象、可移植、与硬件无关、系统强健安全、具有很高的性能,并提供了分布性、多线程、动态性的支持。
2.2 JSP技术
JSP ( Java Server Pages)是由Sun公司在java语言上开发出来的一种动态网页制作技术,JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果,使您可以将网页中的动态部分和静态的HTML相分离。
省略
2.3 JavaBeans技术
Javabean是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。基本说来,Javabean可以看成一个黑盒子,即只需知道其功能而不管其内部结构的软件设备。用户可以使用JavaBeans将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBeans、applet程序或者应用来使用这些对象。用户可以认为JavaBeans提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。
省略
2.4 JavaScript技术
JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本设计语言,它可以镶嵌在HTML代码中的特殊类型代码,这些代码可以由浏览器解释执行,它使网页开发者可以更有效地控制页面。而且JavaScript是一种面向对象的语言,可以操控浏览器脚本对象模型所支持的各种标准对象,如当前窗口、浏览器本身信息、URL、HTML文档等等,并能对用户触发事件做出即时响应,诸如单击鼠标、表单操作等,而且这些都不需要客户机与服务器的交互通信,既为用户提供了更快速的操作,又减小了服务器端的负担,十分适合于编制交互网页和较小的编程任务。
JavaScript是一种解释性语言,它不需要对JavaScript程序进行预先编译而产生可执行的机器代码,只是在程序执行时才由一个内置于浏览器中的JavaScript解释器将源代码动态地处理成可执行代码。目前流行的浏览器都具有这种解释器。从Web发布角度来看,它的这种特性使它比编译性语言更加易于编程和使用。
由于JavaScript是由Java继承而来的,因此它是一种面向对象的程序设计(OOP)语言。JavaScript中的对象有两个组成部分——状态和行为,或者说变量(属性)和函数(方法)。可以用JavaScript的对象来模拟现实生活中的各种实例,从而大大方便了程序的设计。利用对象的继承性,可以使很多精心设计的代码能够重新使用,从而减少了程序设计人员的重复工作量而节省了时间。
JavaScript不需要依赖特定的机器和操作系统,独立于操作平台,这点与JSP语言一样,都具有跨平台性,它们可以在不同的平台上紧密结合,协同工作。JavaScript还具有占有系统和网络资源小的优点。所以,在JSP页面内镶嵌JavaScript实现一些检验功能,会使Web页面更富于交互性、响应速度更快、效率更高。
2.5 JDBC技术
2.5.1 JDBC数据访问接口
JDBC(Java Database Connectivity)是用于执行SQL语句的Java API[15]。它由一组用Java编程语言编写的类和接口组成,为Java应用程序与各种不同数据库之间对话提供了一种便捷的方法,使得开发人员能够用纯Java API来编写具有平台无关性的数据库应用程序。JDBC的出现使Java程序对各种数据库的访问能力大大增强。通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。
2.5.2 JDBC的体系结构
目前,应用程序与数据库信息交换己经非常普遍。因此,一个程序设计语言对数据库开发能力的大小,决定着该语言的流行程度。在JDK1.1版本之前,Java语言提供的对数据库访问支持的能力是很弱的,编程人员不得不在Java程序中加入C语言的ODBC (Open Database Connectivity)函数调用,这使得Java程序的跨平台发布能力受到很大的限制。JDBC的出现使Java程序对各种数据库的访问能力大大增强。它为Java定义了一个“调用级”(cal-level)的SQL接口。这意味开发人员可以很方便地将SQL语句传送给几乎任何一种数据库[16]。JDBC的体系结构如图1所示:
图1 JDBC体系结构
从图中可以看出,JDBC API的作用就是屏蔽不同的数据库驱动程序之间的差别,使得程序设计人员有一个标准的、纯Java的数据库程序设计接口,为在Java中访问任意类型的数据库提供技术支持。驱动程序管理器(Driver Manager)为应用程序装载数据库驱动程序。数据库驱动程序是与具体的数据库相关的,用于向数据库提交SQL请求。
2.5.3 JDBC访问后台数据库的技术实现方法
JDBC (Java Database Connectivity)是Java语言访问后台数据库的API。JDBC继承了Java语言的所有特点。并且,很多数据库系统自带JDBC驱动程序,Java程序就可通过这些程序与数据库相连。但是,JSP&Servlet并不直接使用JDBC技术访问数据库系统,而是把参数传递给事先编好的JavaBean EJB组件,由它们对数据库进行操作。JDBC本身主要完成以下三件事件:与数据库建立连接;发送SQL语句;处理结果。JDBC的结构可分为两层:第一层是JDBC API,JDBC API是一系列的抽象接口,应用程序是首先通过它实现数据库的连接,执行SQL声明、获得返回结果;第二层JDBC Driver API主要负责与第三方驱动程序通讯,这些驱动程序才真正连接到数据库。
2.6 开发工具选择
本系统使用的开发工具主要有tomcat、Eclipse和Access数据库。
Apache还拥有以下的特性:
1 几乎可以运行在所有的计算机操作系统上。
2 简单而且强有力的基于文件的配置(HTTPD.CONF)。
3 支持通用网关接口(CGI)和虚拟主机。
4 可以通过WEB浏览器监视服务器的状态,可以自定义日志。
5 具有用户会话过程的跟踪能力。
Tomcat本身就是一个Web服务器,其支持JSP和Servlet,但由于Tomcat主要用来开发和调试,而作为商业应用则其功能还略显单薄,因此我们将其作为功能强大的商业应用Web服务器Apache HTTP Server的一个附加软件,将两者的功能整合起来,以建立具有完美功能的JSP网站。
Eclipse开发工具
Eclipse平台由数种组件组成:平台核心(platform kernel)、工作台(workbench)、工作区(workspace)、团队组件(tram component)以及说明组件(help)。
Eclipse平台的目的,是提供多种软件开发工具的整合机制,这些工具会实变成Eclipse外挂程序,平台必须用外挂程序加以扩充才有用处。Eclipse设计美妙之处,在于所有东西都是外挂,除了底层的核心以外。这种外挂设计让Eclipse具备强大扩充性,但更重要的是,此平台提供一个定义明确的机制,让各种外挂程序共通合作(透过延伸点extension points)与贡献(contributions)),因此新功能可以轻易且无缝地加入平台。功能上的便捷是我首选的一个原因,切不用考虑太多版本的因素。
ACCESS数据库
选择Access为后台数据库是因为操作简便。Access作为一个中小型的数据库,足以应付我们使用中所能达到的数据量。一个Access数据库可以包含多个数据表,而数据表就是我们存放数据的地方。往数据库中输入数据,其实是在往每一个数据表中输入数据。而关于数据表也要明确几个概念:字段、记录和值。在新建完一个数据库后,Access会打开数据库。我们双击“使用设计器创建表”,打开数据表设计器。其中“字段名称”就是指我们数据表的列的名称,比如上面表中的“留言人”等。数据类型就是数据存放在数据库中的类型,可以在下拉框中选择。说明是你对该字段的说明。
我们也可以直接在Access中进行数据的录入工作。直接双击已经建立的数据表,此时会打开该表,我们直接在表格中输入数据就行了,不过要注意设计表时定义的字段类型和条件,如果输入的内容不符合定义的条件则会出错。这样的操作对于小量的修改非常的方便快捷。
3旅游管理系统需求分析
该系统作为旅游管理系统的web端实现.,其主要功能是方便游客对四川的风土人情.了解,特产购买和旅行线路的查询和预定,及特别提供单独的管理员权限以方便管理员对各个模块进行查插删改操作。另外为了实现商务价值而设立了旅行社管理模块,方便旅行社查看路线预定情况。
3.1 系统需求分析
为了方便游客和管理员旅行社三方对该系统的操作和运用,现对该系统针对不同用户的需求做一个分析。
3.1.1 游客功能需求
为了方便信息的查询和对四川旅游的了解,系统允许非注册用户浏览。游客可以查看到各个旅行社发布的旅游路线信息,上面有很详细的线路介绍,酒店预定的情况行程安排情况。另外可以浏览整个网站的一些四川风情介绍,特产和特色小吃等等。但是考虑到一些功能涉及到一些基础信息,所以在其他功能如线路预定,购物车功能等需要游客先注册然后登陆系统才能使用。在设想时考虑到现在的网上购物已经成为现在一种潮流,所以在该系统上设计了购物车这个特别的模块,方便游客可以预购物品。下面将就这个模块的预期实现做介绍。
3.1.2 购物车模块
在这个购物车模块中主要实现一个物品的预购,即实现在线的查询和购买结帐。游客必须是注册登陆才能在川渝特产这个模块中进行购买和结帐,或者是查看购物车的功能。为了保障游客的购买需求能够准确的被管理员搜集,这里需要游客填写的是比较准确的联络信息和个人信息。
3.1.3 交通管理
旅游和交通如航班、火车是密切相连的,所以在这个网站上必须要有一个交通信息的发布和管理功能,以便游客的查询和了解。交通管理员可以登陆交通管理模块,确认航班,船,火车的预定情况,也可以通过管理修改和增加交通信息。游客可以浏览前台的交通信息,通过城市到城市,航班,或者是火车班次查询交通的票务信息,可以了解到航班的发出时间和到达时间,了解更为详细的信息。
3.1.4 旅行社管理
这个系统为了满足更多的旅行社在系统中发布旅游路线信息,特别设置了多个旅行社的管理方式,每个旅行社可以通过自己的ID和密码登陆后台,查看自己旅行社的路线预定信息。考虑到操作的简单,也为了避免操作的冲突,旅行社只有查看预定情况的权限,而不涉及旅游线路的管理功能。对于旅游线路的发布修改删除等功能,旅行社可以交由系统管理员来完成。
3.2 系统性能指标
为实现上述需求,本系统采用JSP技术及web数据库技术构成基于web的旅游管理系统。
⑴实用性
旅游管理系统的开发应将系统的实用性和实时性放在首要位置。系统的设计应最大限度发挥计算机的高速处理、海量存储能力。在软件设计中,以方便用户使用为标准,做到统一编码规则、统一界面风格。
⑵可靠性
由于系统性质的要求,本系统的可靠性要求很高。系统在运行中要不发生或极少发生故障,在偶然事故及操作失误时,系统应具有较强的处理能力,而不应造成信息的丢失和破坏。
⑶安全性
通过旅行社管理系统可以修改及删除旅游线路和介绍的信息,和一些游客的购物清单以及基本信息,因此对系统的安全性要求比较高,一方面要保证旅行社用户各项信息的安全,另一方面又要在非常情况下保证数据的丢失减少到最低限度。
4旅游管理系统分析设计与实现
4.1 旅游管理系统设计总体要求
系统设计是旅游管理系统开发过程的一个重要阶段,包括两个方面,首先是总体结构的设计,其次是具体功能模块的设计。其主要目的是为系统实现(如编程、调试、试运行等)制定蓝图。在系统设计阶段,主要任务就是在各种技术和实施方法中权衡利弊,精心设计,合理地使用各种资源,最终勾画出新系统的详细设计方案。系统设计的原则为:
⑴ 系统性。系统是作为统一整体而存在的,因此,在系统设计中,要从整个系统的角度进行考虑,系统的代码要统一,设计规范要标准,传递语言要尽可能一致,对系统的数据采集要做到数出一处、全局共享,使一次输入得到多次利用。
⑵ 灵活性。为保持系统的长久生命力,要求系统具有很强的环境适应性。为此,系统应具有较好的开放性和结构的可变性。在系统设计中,应尽量采用模块化结构,提高各模块的独立性,尽可能减少模块间的数据藕合,使各子系统间的数据依赖减至最低限度。这样,既便于模块的修改,又便于增加新的内容,提高系统适应环境变化的能力。
⑶ 可靠性。可靠性是指系统抵御外界干扰时的恢复能力。一个成功的管理系统必须具有较高的可靠性,如安全保密性、检错及纠错能力、抗病毒能力等。
⑷ 经济性。经济性是指在满足系统需求的前提下,尽可能减少系统的开销。一方面,在硬件投资上不能盲目追求技术上的先进,而应以满足应用需要为前提;另一方面,系统设计应尽量避免不必要的复杂化,各模块应尽量简洁,以便缩短处理流程。
⑸ 美观性。简洁的界面设计,在设计过程中,以人为本,用易于理解的图标,用有意义的标题,简明、一致、快捷并可靠的界面。
4.2 数据库设计
数据库的设计与整个系统的设计是融合在一起的,要做到动态的查询和显示数据,就必须使用数据库。本系统是一个以数据处理为主的信息管理系统,因此数据库的设计在整个系统的设计中占有很大的比重。
整个系统的数据库由10个表组成,分别是user、lvyouxianlu、orders、fengjing、news、basufengqing、product、product_order、jiaotong。
user表
user表保存网站的用户基本信息,用户分为普通用户和系统管理员2类。user表包含7个字段:序列号,用户标识,用户类型,用户姓名,密码,联系电话,电子邮件。序列号是自增不重复流水号,作为user表的主键,同时也作为orders表和product_order的外键。用户标识是文本类型,是用户登录名称,不能重复。用户类型是枚举类型(super,normal),表示用户是系统管理员还是普通用户。密码是文本类型,用于用户登录。用户姓名,联系电话,电子邮件是用户的个人信息。
表1 user表
lvyouxianlu表
lvyouxianlu表保存旅行社提供的各条旅游线路,包含了14个字段。Id是自动增长的流水号,是lvyouxianlu表的主键。lxs是外键,关联到旅行社表。其他字段是旅游线路的基本信息,包括线路名称,行程天数,出发地,标准价格,豪华价格,超豪华价格,具体行程安排,餐饮住宿条件,交通保险,导游门票,春节优惠价格和其他内容。具体行程安排中将多天的安排存放在一起,中间用“----”分隔开。
表2 lvyouxianlu表
orders表
orders表保存用户网上申请的旅游线路的信息
表3 orders表
Fengjing表
Fengjing表记录了四川各地的主要风景,人文古迹的最新信息,并附有2张风景图片。Fengjing表包含了7个字段。
表4 Fengjing表
news表
news表存储近期旅游热点新闻。news表包含了4个字段。
表5 news表
Basufengqing表
Basufengqing表包含5个字段。id是自增序列号,主键。name是新闻标题,detial1是新闻内容,pic1是新闻图片名称。巴蜀风情分4个类别,type是枚举类型:四川美食,巴蜀文化,民族民俗,四川珍奇。
表6 Basufengqing表
product表
product记录各种四川特产的相关资料。product表有7个字段:id是数字主键,name是产品名称,content是产品描述,price是产品价格,danwei是产品计数单位,pic1是特产图样,from是产品产地。
表7 product表
product_order表
product_order表存储用户的订单信息,有6个字段。name是外键,关联到user表,tel,addr,product和quantity是订单基本信息。
表8 product_order表
jiaotong表
jiaotong表保存近期交通信息,包括飞机,火车,轮船3种交通工具的线路及时刻信息。
表9 jiaotong表
4.3 系统功能设计
4.3.1 主页功能设计
主页面是本网站的门户,它包含了各个模块的入口链接,部分热点模块的最新信息,用户注册,登陆,权限分配功能。
首页通往各个子模块的链接,使用http标签静态实现。如:
4.3.2 游客功能设计
该模块为用户提供了四川的旅游信息,并在此基础上,为注册会员提供在线订购特产,预定旅游线路,预定航班等功能。非注册用户可以上网查看四川的旅游信息,用户能分类的了解到风景,风情,路线情况,交通信息,旅游新闻,等基本信息。为了避免累赘的工作和一些恶意的欺诈,而特别设计了注册与非注册两种用户权限。
4.3.3 系统管理员功能设计
管理员通过注册名被定义为super权限的用户名登陆到系统后可以进行除旅行社管理外的其他所有模块的管理操作。以票务交通模块为例,管理员登陆后,在票务交通模块可以看到左边有一个管理的标签,进入后可以进行这个模块的管理。管理员可以在这里进行对已有的交通信息修改和删除操作,也可以通过左边的增加按扭进行对交通信息增加。其他模块的维护方式与票务交通模块类似。通过后台维护模块,管理员能更直观的进行操作,在对后台数据库进行任何操作后,都可以立即观察到效果,从而减少了错误发生的机率。管理员跟普通用户的区别就在于权限不同,即是基于该网站的身份验证和权限分配上。身份验证和权限分配实现的代码如下:
<%String id = (String) request.getParameter("userName"); String password = (String) request.getParameter("password"); try { Statement stmt = dbConnection.getConnection().createStatement(); String sql1 = "select * from user where id='" + id + "' and password='" + password + "'"; ResultSet rs1 = stmt.executeQuery(sql1); if (rs1.next()) { session.setAttribute("right","normal"); String name = rs1.getString("name"); String type = rs1.getString("type"); if(type!=null&&type.equals("super")){ session.setAttribute("right","super"); session.setAttribute("userName", name); session.setAttribute("password", password); } else{ session.setAttribute("userName", name); session.setAttribute("password", password); } stmt.close(); response.sendRedirect("index.jsp"); return; } out.print("登陆失败!请重新登陆"); out.print("<br>[ <a href='index.jsp'>返回</a> ]"); } catch (Exception e) { out.println("数据库连接错误" + e); } %>
各个模块的管理功能主要是对数据库的操作,在此就不再赘述。
4.3.4 旅行社管理功能设计
旅行社管理员通过各个旅行社自己在这个系统中的ID号和密码登陆后,可以查看预定本旅行社的旅游路线情况,在这里由于假设旅行社与系统供应商只存在着合作的关系,旅行社可以提交自己的旅游路线信息给系统管理员,只能由系统管理员来操作旅游路线信息,这样提高了信息的安全性和各个旅行社竞争的公平性。
4.4 关键技术的实现
4.4.1 汉字显示的实现
在JSP的开发过程中,英文字符的表示一般不会出现问题,可能出现的中文问题如下:
1 JSP页面无法正确显示中文,比如出现“?”或者乱码;
2 JSP页面无法正确接收来自上一个页面提交的中文表单;
3 JSP从数据库或者文件中读出来的中文都是乱码,写进去的中文也是乱码。
这是跟Java中对字符的处理方式有关系的。英文字符一般都是以一个字符来表示,编码方式主要有:
4 ASCII码,美国国家信息交换标准码,是7位编码。
5 ISO-8859-1码,是8位编码,它包含了ASCII码,在西欧比较通用,它是Linux系统的字符集,同时也是HTML的基础字符集。
中文字符成千上万,必须使用2个以上的字节来表示,不同的地区和系统都制定了各自的编码方式,这样就产生了很多种不同的编码方式。常用的汉字编码方式(字符集)有如下几种:
6 GB2312码,中华人民共和国国家标准汉字信息交换用编码,是16位编码,简称国标码。
7 GBK是对GB2312的扩展,包含GB2312的字符集。
8 BIG5码,是台湾地区采用的编码方式。
9 UNICODE码,是16位编码,它是一个标准,它的目标是明白的表现每种人类语言中的每种已知字符。
10 UTF-8码,是UNICODE的转换格式,是一种不等长的编码。
多种编码方式共存造成了汉字表示方式的不统一,也带来了很多麻烦。Java对于多语言的支持并不是很好,任何涉及Java的需要显示汉字的软件都会遇到汉字问题。既然如此,在使用Java处理中文字符时就必须注意编码问题。有以下几点要特别注意:
11 当一个Java程序在运行时,所有的内存中的字符串都是以UNICODE方式来表示的。
12 Java程序接受一个字符串时,程序将该字符串从源编码方式转换为UNICODE编码。
13 Java程序输出一个字符串时,程序要将该字符串从UNICODE编码转换为目标编码方式。
14 Java程序输出一个字符串时,程序要将该字符串从UNICODE编码转换为目标编码方式。
15 在任何一个传递字符串的地方都可能出现编码转换。
省略
4.4.2 文件上传功能的实现
在管理员维护网站信息的时候,为了更便于操作,需要在向数据库增加或者修改信息的同时,把图片上传到服务器相应的位置。在JSP中,可以通过<form ……ENCTYPE=“multipart/form-data”>标签上传图片。通过这种方式,文件以流的方式发送到服务器端。服务器通过将相应的流操作,将文件重组并保存。但是这种方式的问题是,在这个form里的其他非文件参数,用普通的方式不能够读取正确的参数值,而将得到一个null。在这个问题上作者花了大量的时间精力进行研究,发现其他参数同样被转化成流,对这些参数,也需要进行流处理,才能得到原来正确的参数值。类FileUtil实现了上述功能。
public static HashMap upLoad(HttpServletRequest request, String subpath) { HashMap datamap = new HashMap(); try { if (ServletFileUpload.isMultipartContent(request)) { DiskFileItemFactory dff = new DiskFileItemFactory(); dff.setRepository(new File("c:/")); dff.setSizeThreshold(1024000); ServletFileUpload sfu = new ServletFileUpload(dff); sfu.setFileSizeMax(5000000); sfu.setSizeMax(10000000); FileItemIterator fii = sfu.getItemIterator(request); while (fii.hasNext()) { FileItemStream fis = fii.next(); if (!fis.isFormField() && fis.getName().length() > 0) { String fileName = fis.getName().substring( fis.getName().lastIndexOf("\\")); BufferedInputStream in = new BufferedInputStream(fis .openStream()); BufferedOutputStream out = new BufferedOutputStream( new FileOutputStream(new File( dbConnection.absolutePath + subpath+ "/" + fileName))); Streams.copy(in, out, true); datamap.put(fis.getFieldName(),fileName.substring(1)); } else { BufferedInputStream in = new BufferedInputStream(fis .openStream()); //ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buffer = new byte[in.available()]; in.read(buffer); String contents = new String(buffer, "UTF-8"); datamap.put(fis.getFieldName(),contents); } } } } catch (Exception e) { } return datamap; }
upLoad方法是FileUtil类实现multipart/form-data协议下文件与form参数上传的关键方法。HttpServletRequest request中存放了上传的文件流,String subpath表示不同模块的文件存放路径。代码中创建了一个HashMap datamap准本用于记录所有上传的form参数。然后在c:\建立临时文件夹,设置上传文件大小,通过FileItemIterator fii分别处理上传文件和参数。如果遇到文件,就把输入流的内容保存到subpath路径下,同时将form输入标签参和文件名放入datamap中;如果遇到参数,就将输入流的内容读入到一个String content中,然后将标签名和content放到datamap中。最后返回datamap,调用upLoad的JSP就可以从datamap中取得form中的所有信息,实现文件与form参数同时上传。
4.4.3 页面间参数传递的实现
旅游管理系统的实现过程中,经常需要把上一个页面中的数据传给下一页面,下一个页面获取这些参数后,再做进一步的操作处理,这就需要用到页面间的参数传递技术。本系统参数传递大致如下面这种种情况。
JSP代码间的参数传递有两种方式:get和post。
省略
4.4.4 数据库连接技术
为了提高代码的可重用性,数据库连接采用JavaBean技术。利用JavaBean技术进行数据库访问的工作原理是将数据库基本的处理逻辑封装在JavaBean中,在JSP程序中通过调用JavaBean实现对数据库的访问。首先将Java编写的数据库连接和执行数据库基本操作的JavaBean程序进行编译,将编译后生成的*.class文件存放到系统的ClassPath路径下,然后通过JSP程序调用这个JavaBean就可以实现对数据库的访问。
通过引用JavaBean执行对数据库的连接和对数据库记录的各种处理操作,提高了代码的重用程度,大大简化了程序设计的复杂度,发挥了组件技术的特点,提高了程序设计的效率。
本系统使用JDBC技术连接数据库,JavaBean组件ConnectMysql.java封装了对数据库的连接,断开及对数据库中表的查询、添加、修改、删除等操作。
省略
5系统的实现及关键技术
5.1 系统环境配置
5.1.1 系统对硬件环境的要求
⑴ 服务器端
服务器端的最低配置是由建立站点所需要的软件来决定的,在最低配置的情况下,服务器的性能往往不尽人意,现在的硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器配置高性能硬件。本
⑵ 客户端
因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比
5.1.2 系统对软件环境的要求
⑴ 服务器端
1 操作系统:Windows XP
2 网络协议:TCP/IP
3 web服务器:Tomcat
4 数据库:Access
5 浏览器:Internet Explore
⑵ 客户端
1 操作系统:Windows
2 网络协议:TCP/IP
3 数据库:Access
4 浏览器:Internet Explore
5.2 主要功能模块的实现
5.2.1 旅游线路
旅游线路是这个系统的主要模块之一,提供了旅游线路信息、旅游线路介绍、与每个线路唯一对应的旅行社、行程安排等等。这个模块中实现了两种用户的交互使用。
游客可以浏览查询上面的路线信息,对比每个旅行社推出的旅游路线信息,通过注册成为合法用户预定旅游线路。游客在lvyouluxian.jsp页面中可以看到各个旅行社发布的四川黄金旅游路线,通过点击连接即可查看详细信息和预定。操操作简便,也基本实现了在需求中的要求。
管理员通过登陆到系统,可以进入该模块的管理页面,进行删除、增加、修改三项管理操作。这里必须是用户名是在数据库中注册为super的用户才可以进行管理操作,如下代码所诠释<%String right = (String) session.getAttribute(“right”);
if (right != null && right.equals(“super”)) {
out.print(“<a href=“m_newslist.jsp”>管 理”);
}
%>
5.2.2 新闻发布功能
新闻发布功能是为了满足信息的及时性和方便用户了解更多资讯而设置的。在这个模块中,实现了非注册用户和注册用户都可以随意浏览和查阅的功能。
对于这个模块的管理同旅游线路相近,管理员登陆到系统中,可以实现对该模块的条目删除、增加、修改三种操作,这里与旅游线路模块的管理不同的是在在这个模块中实现了图片的上传功能。管理员可以上传与新闻匹配的图片信息,体现了图文并茂景象。
5.2.3 风情模块信息发布功能
在风情模块中主要以介绍四川美食,巴蜀文化,民族民俗,四川珍奇四个方面。这里实现了对巴蜀之国的特色介绍和阐述。特别对于对四川不了解的游客、以及远道而来的游客有介绍和指引的作用,可以通过这个模块对四川更多的了解。
管理员登陆后对这个模块的操作比较简单,只是单一的增加信息和图片上传的功能。这里由于信息是比较传统且不考虑及时性所有并未涉及到删除功能。
5.2.4 购物车功能
目前网上购物已经是非常普遍且为人们带来可以足不出户的便利的功能,注册用户除了在该系统中可以查询到一些川渝特产外,还可以根据自己的喜好将物品放入购物车中,在购物车中有游客想要购买的物品和物品的数量信息。在see_cart.jsp页面中还可以实现跳转继续购买和结帐功能。
继续购买可以返回到上级目录中,而当游客进入到结帐的页面时需要游客填写一些基本信息以确认购买,如果你未按照要求填写确认信息,就会出现提示对话框。
5.2.5 交通票务预定功能
在这个模块里面主要实现了匹配查询功能,游客可以通过始发到终点的匹配查询,也可以通过航班火车船次班次查询。这里使用了循环语句来实现提示对话框的作用
管理员在这个模块中可以对表中的条目进行删除和修改的操作,也可以实现增加信息。这里通过对不同方式的统一管理,节约了系统的处理量和管理员的操作手续。
5.2.6 旅行社管理模块
与期望一样实现了旅行社管理模块这个特别的模块,非旅行社用户不能登陆到这个模块内,并且系统管理员也不能登陆到这个模块中。作为系统与旅行社的互动窗口实现的这个功能模块,只是为了方便旅行社用户查询本社发布出去的路线信息的预定情况,并且可以通过上面有效的身份信息与游客取得联系,确认预定情况。这段代码的实现比较简单,只是身份认证,查询功能。
总 结
本论文结合旅游管理系统的发展现状,分析并设计了简单的旅游管理系统。本系统主要实现了系统管理员管理和旅行社管理两大功能模块。系统采用了面向对象的分析和设计方法,应用J2EE的多层体系结构设计整个系统,应用JavaBeans/JSP技术进行详细的设计。采用比较简便的数据库Access,通过对数据库的访问封装在一个基类中,实现了只要修改该类中的数据库连接参数,便可以将该系统很方便的移植到其他数据库中(如mysql ,sqlServer ,oracle等)可移植性。
系统简洁明了便于操作,在测试运行过程中,运行正常,维护方便。通过使用该系统,对信息管理更加方便快捷,一目了然,非常直观,基本实现了需求中的功能和各个模块。
参考文献
[1] 陈鹏, 程勇.J2EE项目开发实用案例[J] .科学出版社,2006,(2):33-48。
[2] 武延军,黄飞跃.精通JSP编程技术[J] .北京:人民邮电出版社,2001,(3):67-89。
[3] Laurence V著.邱仲潘等译.JavaBeans从入门到精通[J] .北京:电子工业出版社,1998, (5):97 -124。
[4] 林果园,陈光柱.JavaBeans的三种事件模式[J] .现代计算机,2001,(4):59-78。
[5] 唐兴艳,唐伶俐.JavaBeans在Web编程中的应用[J] .电脑开发与应用,2002,(7):41-42。
[6] 杨浩.JavaScript入门与提高[J] .北京:清华大学出版社,2000,(2):14-19。
[7] 游文杰.JavaScript与事件应用[J] .计算机应用,2001, (8):117-127。
[8] 王永红.使用JavaScript增强网页的功能[J] .安徽建筑,2001,(2):27-34。
致 谢
省略
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于JSP+access的旅游管理系统设计与实现(源码+文档)_jsp_BS架构_旅游管理系统.zip |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。