 
         
        
            免费预览已结束,剩余3页可下载查看            
        
         下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
            JSP实现的简单旅游管理系统的设计摘 要目前,旅游业已成为全球经济中发展势头最强劲和规模最大的产业之一,互联网的兴起给旅游业带来了新的契机。旅游网站逐渐成为旅游信息管理的主要途径。因此,开发一个稳定的适用性好的旅游管理系统具有非常重要的意义。在对现有旅游查询网站的分析和比较的基础上,依循面向对象软件开发过程,设计出客户端基于Web浏览器,服务器端基于JSP和Servlet,数据源基于关系型数据库的三层框架,完成JSP页面设计、服务器端核心请求的处理以及对数据库的同步更新。以旅游管理系统的应用实例实现了这个方案。该系统可以实现游客分类查询路线信息.路线预定,在线选购物品和结账。系统管理员查询、修改、删除和添加交通和线路,产品信息。系统工作稳定、操作简单、维护方便。关键词:旅游信息;权限;数据库JSP simple Tourism Management System DesignAbstractAt present , tourism is one of the most developing and the biggest large scale industry in the world. Internet brings tourism to a new turning point. Tourist information is managed mainly by tourism web site instead .As a result , it is very important to develop a flexible tourism management system. On the base of the analysis of the current tourism web sites, complied with the process of OOD, a three-layer system is designed, consisted of client based on web browser, server based on JSP and Servlet and data source based on relational database. We finish the design of the JSP pages, the core response to request from user and the synchronous update of the database, and develop a tourism management system to implement the design. The system can implement these functions as following: classified route information query for tourist, route reservation information for administrator, online shopping and purchase, and administrator can add, query, modify or delete the traffic、route and goods information. This system is stable, reliable and quite simple in operation .The maintenance is also convenient.Key word: Travel information; Privilege; Database目 录论文总页数:27页1 引言11.1 旅游管理系统的发展11.2 旅游管理系统的现状11.3 该系统的主要研究内容12系统开发的关键技术12.1 JAVA语言12.2 JSP技术22.3 JavaBeans技术32.4 JavaScript技术32.5 JDBC技术42.5.1 JDBC数据访问接口42.5.2 JDBC的体系结构42.5.3JDBC访问后台数据库的技术实现方法52.6 开发工具选择53旅游管理系统需求分析63.1 系统需求分析73.1.1 游客功能需求73.1.2 购物车模块73.1.3 交通管理73.1.4 旅行社管理73.2 系统性能指标74旅游管理系统分析设计与实现84.1 旅游管理系统设计总体要求84.2 数据库设计94.3 系统功能设计124.3.1 主页功能设计124.3.2 游客功能设计134.3.3 系统管理员功能设计134.3.4 旅行社管理功能设计144.4 关键技术的实现144.4.1 汉字显示的实现144.4.2文件上传功能的实现164.4.3页面间参数传递的实现184.4.4数据库连接技术195系统的实现及关键技术215.1 系统环境配置215.1.1系统对硬件环境的要求215.1.2 系统对软件环境的要求225.2 主要功能模块的实现225.2.1 旅游线路225.2.2 新闻发布功能235.2.3 风情模块信息发布功能235.2.4 购物车功能235.2.5交通票务预定功能245.2.6旅行社管理模块24总 结24参考文献25致 谢26声 明271 引言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相分离。 将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。 强调可重用的组件绝大多数JSP页面信赖于可重用的、跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,井使得这些组件为更多的使用者或者客户团体所使用6。 采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在生成与JSP相关的XML标识的动态内容时所需要的。标准的JSP标识能够访问和实例化JavaBeans组件、设置或者检索组件属性、下载Applet,以及执行用其他方法更难于编码和耗时的功能。 健壮性与安全性由于JSP页面的内置脚本语言是基于Java编程语言的,且都被编译为JavaServlet,它就具有Java技术的所有好处,包括健壮的存储管理和安全性7。 良好的移植性作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,可以使用自己所选择的服务器和工具,而且更改工具或服务器并不影响当前的使用。 企业级的扩展性和性能当与Java2平台,企业版(J2EE)和EnterpriseJavaBeans技术整合时,JSP页面将提供企业级的扩展性和性能,这对于虚拟企业中部署基于Web的应用是必需的。2.3 JavaBeans技术Javabean是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。基本说来,Javabean可以看成一个黑盒子,即只需知道其功能而不管其内部结构的软件设备。用户可以使用JavaBeans将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBeans、applet程序或者应用来使用这些对象。用户可以认为JavaBeans提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JavaBeans将Java语言本身所具有的“一次编写,到处运行”特性沿用到代码组件Bean上,使Bean也具有平台无关性。JavaBeans通过封装属性和方法成为具有某种功能的软件模型,运营这种模型,能够使软件开发人员快捷地利用子组件来创建模板应用程序,然后整合一些附件功能便可使用。JavaBeans组件可以访问数据库,用一个Bean把常用的数据库功能都封装起来。JSP对于在Web应用中集成JavaBeans组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。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 API15。它由一组用Java编程语言编写的类和接口组成,为Java应用程序与各种不同数据库之间对话提供了一种便捷的方法,使得开发人员能够用纯Java API来编写具有平台无关性的数据库应用程序。JDBC的出现使Java程序对各种数据库的访问能力大大增强。通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。2.5.2JDBC的体系结构目前,应用程序与数据库信息交换己经非常普遍。因此,一个程序设计语言对数据库开发能力的大小,决定着该语言的流行程度。在JDK1.1版本之前,Java语言提供的对数据库访问支持的能力是很弱的,编程人员不得不在Java程序中加入C语言的ODBC (Open Database Connectivity)函数调用,这使得Java程序的跨平台发布能力受到很大的限制。JDBC的出现使Java程序对各种数据库的访问能力大大增强。它为Java定义了一个“调用级”(cal-level)的SQL接口。这意味开发人员可以很方便地将SQL语句传送给几乎任何一种数据库16。JDBC的体系结构如图1所示:应用程序数据库应用程序数据库应用程序数据库JDBC APIJDBC Driver Manager数据库驱动图1 JDBC体系结构从图中可以看出,JDBC API的作用就是屏蔽不同的数据库驱动程序之间的差别,使得程序设计人员有一个标准的、纯Java的数据库程序设计接口,为在Java中访问任意类型的数据库提供技术支持。驱动程序管理器(Driver Manager)为应用程序装载数据库驱动程序。数据库驱动程序是与具体的数据库相关的,用于向数据库提交SQL请求。2.5.3JDBC访问后台数据库的技术实现方法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数据库。1) Tomcat服务器本系统在Windows XP操作系统下整合Apache和Tomcat,整合后的服务器的处理能力更强大。Apache是最流行的Web服务器端软件之一。快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,完全源代码开放。Apache还拥有以下的特性:1 几乎可以运行在所有的计算机操作系统上。2 简单而且强有力的基于文件的配置(HTTPD.CONF)。3 支持通用网关接口(CGI)和虚拟主机。4 可以通过WEB浏览器监视服务器的状态,可以自定义日志。5 具有用户会话过程的跟踪能力。Tomcat本身就是一个Web服务器,其支持JSP和Servlet,但由于Tomcat主要用来开发和调试,而作为商业应用则其功能还略显单薄,因此我们将其作为功能强大的商业应用Web服务器Apache HTTP Server的一个附加软件,将两者的功能整合起来,以建立具有完美功能的JSP网站。2) Eclipse开发工具Eclipse平台由数种组件组成:平台核心(platform kernel)、工作台(workbench)、工作区(workspace)、团队组件(tram component)以及说明组件(help)。Eclipse平台的目的,是提供多种软件开发工具的整合机制,这些工具会实变成Eclipse外挂程序,平台必须用外挂程序加以扩充才有用处。Eclipse设计美妙之处,在于所有东西都是外挂,除了底层的核心以外。这种外挂设计让Eclipse具备强大扩充性,但更重要的是,此平台提供一个定义明确的机制,让各种外挂程序共通合作(透过延伸点extension points)与贡献(contributions),因此新功能可以轻易且无缝地加入平台。功能上的便捷是我首选的一个原因,切不用考虑太多版本的因素。3) ACCESS数据库选择Access为后台数据库是因为操作简便。Access作为一个中小型的数据库,足以应付我们使用中所能达到的数据量。一个Access数据库可以包含多个数据表,而数据表就是我们存放数据的地方。往数据库中输入数据,其实是在往每一个数据表中输入数据。而关于数据表也要明确几个概念:字段、记录和值。在新建完一个数据库后,Access会打开数据库。我们双击“使用设计器创建表”,打开数据表设计器。其中“字段名称”就是指我们数据表的列的名称,比如上面表中的“留言人”等。数据类型就是数据存放在数据库中的类型,可以在下拉框中选择。说明是你对该字段的说明。我们也可以直接在Access中进行数据的录入工作。直接双击已经建立的数据表,此时会打开该表,我们直接在表格中输入数据就行了,不过要注意设计表时定义的字段类型和条件,如果输入的内容不符合定义的条件则会出错。这样的操作对于小量的修改非常的方便快捷。4) HTMLHTML的英文全称是Hypertext Markup Language,中文译为“超文本标记语言”。“超文本”就是指页面内可以包含图片,联接,甚至音乐,程序等非文字的元素。在几年前作为SGML的一个子集开发的。一个HTML文件中包含了所有将显示在网页上的文字信息,其中也包括对浏览器的一些指示,如哪些文字应放置在何处,显示模式是什么样的等。如果你还有一些图片、动画、声音或是任何其它形式的资源,HTML文件也会告诉浏览器到哪里去查找这些资源,以及这些资源将放置在网页的什么位置。浏览的网页就是由HTML语言编写出来的。虽然HTML是一种语言,但HTML不是程序语言,如 C+ 和 Java 之类,它只是标示语言,你只要明白了各种标记的用法便算学会了HTML.HTML 的格式非常简单,只是由文字及标记组合而成,因此任何文本编辑器都可以制作HTML页面。在编辑器中输入html代码即可完成对网页的设计,如果在其中加入VB,JAVA等脚本文件以及数据库连接有关的语句指令,便可对已知数据进行查询,从而生成动态网页的一部分。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表字段名称数据类型ser自动编号序列号id文本用户标识type文本用户类型name文本用户姓名password文本用户密码Tel文本用户联系方式email文本用户电子邮件lvyouxianlu表lvyouxianlu表保存旅行社提供的各条旅游线路,包含了14个字段。Id是自动增长的流水号,是lvyouxianlu表的主键。lxs是外键,关联到旅行社表。其他字段是旅游线路的基本信息,包括线路名称,行程天数,出发地,标准价格,豪华价格,超豪华价格,具体行程安排,餐饮住宿条件,交通保险,导游门票,春节优惠价格和其他内容。具体行程安排中将多天的安排存放在一起,中间用“-”分隔开。表2 lvyouxianlu表字段名称数据类型说明ser自动编号序列号xlmc文本线路名称lxs文本旅行社xcts文本行程天数cfd文本出发地bzd文本标准等hhd文本豪华等chhd文本超豪华等xcap备注行 程 安 排(不同的日程的内容用 - 分隔)cyzs文本餐饮住宿jtbx文本交通保险dymp文本导游门票qtnr文本其他内容cjjg文本春节价格orders表orders表保存用户网上申请的旅游线路的信息表3 orders表字段名称数据类型说明id文本用户标识date文本订购日期type文本产品类型who文本客户姓名number文本产品数量tel文本联系电话no文本用户身份证号Fengjing表Fengjing表记录了四川各地的主要风景,人文古迹的最新信息,并附有2张风景图片。Fengjing表包含了7个字段。表4 Fengjing表字段名称数据类型说明id文本序列号name文本风景名称pic1文本图片1pic2文本图片2type文本所属类别(世界自然与文化遗产,人与生物保护圈,国家重点风景名胜区,国家森林公园)Detial1备注文字描述(段落1)detial2备注文字描述(段落2)news表news表存储近期旅游热点新闻。news表包含了4个字段。表5 news表字段名称数据类型说明id文本序列号name文本标题pic1文本图片content文本内容Basufengqing表Basufengqing表包含5个字段。id是自增序列号,主键。name是新闻标题,detial1是新闻内容,pic1是新闻图片名称。巴蜀风情分4个类别,type是枚举类型:四川美食,巴蜀文化,民族民俗,四川珍奇。表6 Basufengqing表字段名称数据类型说明id文本序列号name文本标题pic1文本图片content文本内容product表product记录各种四川特产的相关资料。product表有7个字段:id是数字主键,name是产品名称,content是产品描述,price是产品价格,danwei是产品计数单位,pic1是特产图样,from是产品产地。表7 product表字段名称数据类型id自动编号序列号name文本特产名称content文本产品说明price文本价格danwei文本单价pic1文本图样from文本产地product_order表product_order表存储用户的订单信息,有6个字段。name是外键,关联到user表,tel,addr,product和quantity是订单基本信息。表8 product_order表字段名称数据类型id文本产品idquatity文本数量name文本客户姓名tel文本联系电话addr文本地址IDNumber文本身份证号jiaotong表jiaotong表保存近期交通信息,包括飞机,火车,轮船3种交通工具的线路及时刻信息。表9 jiaotong表字段名称数据类型from文本始发地to文本目的地type文本类型(飞机,火车,轮船)id文本号码(航班号,列车车次,轮船号)time1文本出发时间time2文本到达时间price文本票价4.3系统功能设计4.3.1主页功能设计主页面是本网站的门户,它包含了各个模块的入口链接,部分热点模块的最新信息,用户注册,登陆,权限分配功能。首页通往各个子模块的链接,使用http标签静态实现。如:旅游路线,声明了一个到相对路径jsp_tourist_track下的lvyouluxian.jsp链接。其他模块以此类推。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);elsesession.setAttribute(userName, name);session.setAttribute(password, password);stmt.close();response.sendRedirect(index.jsp);return;out.print(登陆失败!请重新登陆);out.print( 返回 ); 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 在任何一个传递字符串的地方都可能出现编码转换。在编写涉及到中文的JSP页面时,要注意对编码方式的考虑。主要的解决办法是在JSP中进行编码转换。由于涉及到编码的环节很多,因此中文问题没有一个统一的解决方案,只能在出现问题的地方进行具体分析,采取适当措施。在海鲜酒楼管理系统中,汉字乱码主要分为两种情况。 中文表单提交字符串当页面中的表单提交字符串时,首先把字符串按照当前页面的编码,转化成字节串。然后再将每个字节转化成“%XX”的格式提交到 Web 服务器。比如,一个编码为GB2312的页面,提交“中”这个字符串时,提交给服务器的内容为“%D6%D0”字节串的格式。在服务器端,Web 服务器把收到的“%D6%D0”字节串转化成0xD6, 0xD0UNICODE字符串,然后再根据 GB2312 编码规则得到“中”字。然而实际上,在将“字节串”转化成“UNICODE 字符串”时,容易将“字节串”简单地作为单字节字符串,采用每“一个字节”就是“一个字符”的方法进行转化。而在非英文的环境中,应该将“字节串”作为ANSI字符串,采用适当的编码来得到UNICODE字符串,有可能“多个字节”才能得到“一个字符”。在Tomcat服务器中,request.getParameter( )得到乱码时,常常是由于上述原因造成的。默认情况下,当提交“%D6%D0”给Tomcat服务器时,request.getParameter( )将返回0x00D6, 0x00D0两个UNICODE字符,而不是一个“中”字符。因此,我们需要使用bytes = string.getBytes (iso-8859-1) 进行逆向操作,得到原始的字节串“%D6%D0”,再用string = new String(bytes, GB2312) 重新得到正确的字符串“中”。在本系统中,输出页面按照GB2312进行编码,通过实现该设置。在实现添加用户功能时,从表单中获取用户姓名等汉字信息后,要先用上述方法进行编码的转换,以得到正确的字符形式。 从数据库读取字符串通过数据库客户端(JDBC)从数据库服务器中读取字符串时,客户端需要从服务器获知所使用的 ANSI 编码。当数据库服务器发送字节流给客户端时,客户端负责将字节流按照正确的编码转化成 UNICODE 字符串。本系统中,数据库中的所有表均采用MyISAM类型、gb2312字符集、Conlation:gb2312_chinese_ci。这样保证了数据库中字符编码和网页中字符编码的统一,数据库中的汉字可以直接在网页中显示出来,网页中具有相同编码的汉字在数据库中也可以显示为汉字。4.4.2 文件上传功能的实现在新闻,四川特产,民族风情模块中都有图片信息,数据库中保存的是图片文件所在的相对位置和名称信息。在管理员维护网站信息的时候,为了更便于操作,需要在向数据库增加或者修改信息的同时,把图片上传到服务器相应的位置。在JSP中,可以通过标签上传图片。通过这种方式,文件以流的方式发送到服务器端。服务器通过将相应的流操作,将文件重组并保存。但是这种方式的问题是,在这个form里的其他非文件参数,用普通的方式不能够读取正确的参数值,而将得到一个null。在这个问题上作者花了大量的时间精力进行研究,发现其他参数同样被转化成流,对这些参数,也需要进行流处理,才能得到原来正确的参数值。类FileUtil实现了上述功能。public static HashMap upLoad(HttpServletRequest request, String subpath) HashMap datamap = new HashMap();try if (Servl        
    温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业物资采购清单填写指导模板
- 以质为本质量承诺书9篇
- 会计财务数据统计分析模板
- 智慧城市区块链中心建设施工方案
- 路面修复工艺施工方案
- 具身智能+零售业智能导购系统设计分析研究报告
- 2025年非洲低空经济「航空经济」影响评估与对策报告
- 施工工地抑尘技术方案
- 具身智能+应急救援机器人灾情评估应用研究报告
- 具身智能+零售业智能导购机器人实施分析研究报告
- 厂房更换彩钢瓦施工方案
- 钢筋混凝土暗盖板涵技术交底
- 实操题目讲解
- 助听器效果评估
- 2023年宝钢股份用户满意度调查分析报告
- 沪教版小学英语语法及练习新版
- GB/T 6145-2010锰铜、康铜精密电阻合金线、片及带
- GB/T 3478.1-2008圆柱直齿渐开线花键(米制模数齿侧配合)第1部分:总论
- 服饰编码规则表参考范本
- 临床医学研究设计及统计学问题课件
- 《郑伯克段于鄢》PPT
 
            
评论
0/150
提交评论