下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 java毕业论文-航空订票系统

java毕业论文-航空订票系统.doc

java毕业论文-航空订票系统

zhang爱林a
2017-09-28 0人阅读 举报 0 0 暂无简介

简介:本文档为《java毕业论文-航空订票系统doc》,可适用于综合领域

java毕业论文航空订票系统摘要本文的设计是基于CS结构利用hibernate持久化框架、使用JAVA编程技术在Eclipse集成开发环境下开发的航空订票系统。该系统实现了航班管理、订票管理、营业网点管理以及业务统计等功能。系统在客户端内能够完成营业员登录查询航班出票等功能。在服务器航空公司内部能够完成添加或删除航班添加或删除营业网点等功能。系统还能统计业务量并将这些信息保存在服务器端并供业务员随时查询。关键词:JAVAhibernate订票系统AbstractThisdesignbasedontheCSstructureisanaviationbookingsystemwhichisdevelopedintheEclipseintegrateddevelopmentenvironment,andusedthehibernatepersistentframeworkandJAVAprogrammingtechnologyThesystemrealizesthefunctionsofflightmanagement,bookingmanagement,branchmanagementandbusinessStatistics,etcIntheclient,thesystemhasthefunctionsofsaleslogin,flightssearchandbookingticketWhileintheserver,thefunctionsareaddingordeletingflightsandbranches,etchesystemalsocancalculatetheamountofbusinesswhichissavedindatabaseandTisqueriedbytheclerkatanytimeKeywords:javahibernateBookingsystem目录引言民航发展概况技术选择CS结构Java技术开发工具需求分析软件分层与部署系统功能模块系统运行流程系统设计业务模型数据库设计飞机机型表(AIRPLANEMODEL)航班计划表(FLIGHTSCHEDULER)航班表(FLIGHT)营业网点表(BRANCH)出票记录表(TICKETORDER)DAO接口设计FlightDAOBranchDAOTicketOrderDAO关健代码分析流程代码分析用表格显示表单HIBERNATE映射关系总结致谢参考文献内蒙古农业大学学士学位论文引言民航发展概况年民用航空行业完成旅客总周转量亿人公里、旅客运输量万人、货物周转量亿吨公里民用航空货运量万吨比年同期分、和。国内航线(含港澳)三项指标分别完成亿吨公别增长里、万人和万吨同比分别增长、和国际航线三项指标分别完成亿吨公里、万人和万吨同比分别增长、和。在人民币持续升值预期明确、燃油成本波动相对较平和以及年奥运会、年世博会、亚运会等相对积极因素推动下行业正处于景气度不断提升时期。根据研究院的预测年全球航空运输业的表现将不及年。预计今年全行业的毛收入大约为亿美元净利润是亿美元盈利率为。鉴于民用航空业的飞速发展飞机运输量的不断加大以及人们对航空公司服务和质量的要求提高本文为某机票代理公司开发一套机票预定系统来满足航空公司的系统管理和定票管理。该系统要求通过分布在每一个代理点的客户端机器完成查询航班和出票的功能。该软件系统由两部分组成:安装在代理点机器上的程序是该系统的客户端软件另外还有安装在代理公司机器上的服务器端软件。客户端软件能够完成与服务器的通信根据给定的出发地和目的地以及出发日期向服务器发送航班查询请求和出票的请求。服务器端软件能够接受客户端请求完成航班查询和出票功能并向客户端返回结果。同时服务器端软件还能进行代理商的管理记录并统计每个代理点的业务量并以日志文件的方式保存下来。技术选择CS结构CS结构即ClientServer(客户机服务器)结构通过将任务合理分配到Client端和Server端降低了系统的通讯开销可以充分利用两端硬件环境的优势。CS一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用CS结构适宜。CS程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关。应该都是相同的系统。由于航空定票系统升级不频繁用户稳定对安全性保密性的要求较高不需要网络顶票。而cs结构能满足本系统的要求所以本系统采用cs结构设计。Java航空订票系统Java技术Java语言是一个支持网络计算的面向对象程序设计语言吸收了Smalltalk语言和C语言的优点并增加了其它特性如支持并发程序设计、网络通信和多媒体数据控制等。主要特性如下:、面向对象性:Java语言是一个纯的面向对象程序设计语言。、健壮性:Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。Java的安全检查机制使得Java更具健壮性。、安全性:Java提供了一个安全机制以防恶意代码的攻击。、体系结构中立:Java程序在Java平台上被编译为体系结构中立的字节码格式,然后可以在实现这个Java平台的任何系统中运行。、可移植:这种可移植性来源于体系结构中立性Java系统本身具有很强的可移植性。、解释型语言:Java程序在Java平台上被编译为字节码格式Java解释器对这些字节码进行解释执行。、多线程:Java语言支持多线程并提供多线程之间的同步机制。本系统采用java作为开发语言来实现安全的、多线程的、可移植航空定票系统并且降低开发难度。开发工具、Eclipse集成开发环境Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言它只是一个框架和一组服务用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集包括Java开发工具(JavaDevelopmentToolsJDT)。Eclipse还包括插件开发环境(PluginDevelopmentEnvironmentPDE)这个组件主要针对希望扩展Eclipse的软件开发人员因为它允许他们构建与Eclipse环境无缝集成的工具。、HibernateHibernate是一个开放源代码的对象关系映射框架它对JDBC进行了轻量级的对象封装使得Java程序员可以使用纯的面向对象的思想来操纵数据库中的数据。Hibernate可以应用在任何使用JDBC的场合既可以在Java的客户端程序使用也可以在ServletJSP的Web应用中使用。Hibernate可以在应用EJB的JEE架构中取代CMP完成数据持久化的重任。内蒙古农业大学学士学位论文需求分析软件分层与部署本文把软件分为三个层次:分别是表现层业务层和持久层部署如图所示。表现层分为客户端和服务器负责用来接受和显示数据。业务层都封装在服务器端负责处理数据与分发数据。持久层是数据库负责存储和读取数据。持久层业务层表现层JDBChibernateTCPIP数据库服务器客户端图部署图客户端包装不同类型的请求利用TCPIP协议通过socket发放服务器。服务器通过控制器把请求转发给不同的模块处理。模块调用相应的Dao访问数据库。软件分层实现了各模块功能之间的松散耦合有利于功能扩展系统维护。系统功能模块主要的系统功能模块如下:、客户端模块:客户端用例图如图所示()代理商登陆模块BranchDAOgetBranch()()查询航班模块(A):FlightDAOgetAllFlights()()订票模块(A)OrderTicketDAOorder()()修改密码模块(A):AgentDAOmodifyPassword()查询修改航班密码登陆定票退出图客户端用例图Java航空订票系统、服务器模块:服务器用例图如图所示()添加营业网点模块(B):BranchDAOaddBranch()()删除营业网点模块(B):BranchDAOremoveBranch()()查询营业网点模块(B):BranchDAOaddBranch()添加飞机型号模块(B):PlaneModelDAOaddPlaneModel()()()添加航班计划模块(B):FlightDAOaddFlightSchedular()()查询航班计划模块(B)FlightDAOgetAllFlightSchedulars()()添加航班模块(B):FlightlDAOaddFlightl()()统计所有出票记录模块:TicketOrderDAOgetAllTicketOrder()()统计网点出票记录模块:TicketOrderDAOgetBranchTicketOrder()添加航班计划统计网点登陆出票记录删除航班计划航班管理统计所统计有出票查询航信息记录班计划添加飞网点统计月机型号管理报表添加营业网点删除营查询营业网点业网点图服务器用例图系统运行流程系统运行流程图如图所示。、服务器启动后自动读取配置文件之后可以进行航班管理网点管理统计信息等操作。、客户端启动并读取配置文件连接服务器登陆成功后才可以进行航班查询、修改密码、订票等操作每一步操作都要发往服务器处理。内蒙古农业大学学士学位论文客户端启动登录No有效数据,yes出票航班查询修改密码No输入查询条件输入新密码已查航班,No验证有效,No输入乘客信息验证有yes效,No验证有效,yesyes封装request对象将request对象写向服务器分拣请求出票请求查询航班请求修改密码请求登陆请求调用TicketOrderDAO调用FligthDao调用BranchDao调用BranchDao封装response对象将response对象写往客户端解析request对象将结果显示在客户端图流程图Java航空订票系统、服务器为每个客户端单独开一个线程服务线程转发给控制器控制器分析请求类型分发给不同模块处理。、模块调用相应的数据库访问对象处理查询出的数据将数据封装成响应对象发往客户端。、客户端收到响应执行不同的操作。内蒙古农业大学学士学位论文系统设计业务模型通过上面的分析建立了下列java实体类:、航班计划(FlightScheduler):用来描述由某个航空公司执行的某个定期航班的计划表。例如:由中国国际航空公司执行的每天早上:从北京起飞上午:到达上海的CA就是一个航班计划。航班计划中包含如下属性:航班号、起始日期、结束日期、出发地、目的地、离港时间、到港时间、里程、飞机机型、班期、基准票价。主要属性介绍如下:()航班号:由航空公司给航班计划定义的唯一标识号码该号码由位英文字符和位数字组成位英文字符是航空公司编码位数字是航班编码。例如:CA就是一个航班计划的航班号其中CA代表中国国际航空公司代表航班的编号。()出发地:用来描述某个航班计划的起飞城市和机场所有国内机场均用三个英文字母的代码表示。()目的地:用来描述某个航班计划的到达城市和机场所有国内机场均用三个英文字母的代码表示。()离港时间:用来描述某个航班计划的从出发地机场离开的时刻离港时间一般代表飞机舱门关闭不再接收乘客的时刻。该时间精确到分钟。()到港时间:用来描述某个航班计划到达目的地机场的时间到港时间一般代表飞机舱门开启允许乘客下飞机的时刻该时间精确到分钟。()开始日期:用来描述某个航班计划的开始日期该日期精确到某一天。()结束日期:用来描述某个航班计划的结束日期该日期精确到某一天。()班期:用来描述某个航班计划在一周之内哪些天有航班哪些天没有航班。、航班(Flight):用来描述在某个确定日期执行某个定期航班计划的一次航班。例如:年月日从北京飞上海的CA就是一个航班的实例。属性:航班计划出发日期各舱剩余座位数折扣。、营业网点(Branch):用来描述航空公司的某个分支机构该机构能使用该系统为顾客提供查询航班和出票的服务。营业网点通过若干台终端机器与航空公司的服务器相连。营业网点包含以下属性:编号、名称、密码、城市、地址。、舱位等级(CabinClass):用来描述航班的不同舱位一般分为三种:头等舱(F)公物舱(C)经济舱(Y)。不同的舱位等级具有不同的机票折扣。实际情况中航空公司定义的舱位等级可能更复杂在本项目中为简化业务模型只对舱位等级做上述三种划分。、乘客类型(TicketType):用来描述乘坐航班的乘客的类型一般分为三种:成人(A)(age>)儿童(C)(<age<=)婴儿(I)(<=age<=)。不同的乘客类型Java航空订票系统具有不同的机票折扣详情请见乘客折扣。在这三种乘客类型中成人和儿童占用座位而婴儿不占用座位婴儿票不能单独出售一张婴儿票必须凭一张成人票售出。、飞机机型(PlaneModel):用来描述执行某个航班计划的飞机的型号一般来讲一个航班计划的各次航班都应该采用同种机型的飞机来执行。不同的飞机型号有不同的航程及各舱座位数。实际情况中各种机型的座位数是不一样的同一机型还分好几个系列如B(波音)有B、BB等多个系列每个系列座位数都不一样。即使是同一型号、同一系列的机型所属的航空公司不同座位数也会不同因为航空公司在购买飞机时会根据自己的需要要求厂家采用不同的布局不同的布局会有不同的头等舱、公务舱、经济舱座位数。在本项目中为简化业务模型我们认为同种型号的飞机各舱座位数是固定的。、机票订单(TicketOrder):一张成功出票的机票记录。数据库设计飞机机型表(AIRPLANEMODEL)表飞机机型表字段名描述类型约束model机型VARCHAR()PRIMARYKEYmaxlength最大航程NUMBER()NOTfirstclassseats头等舱座位数NUMBER()NOTbusinessclassseats公务舱座位数NUMBER()NOTeconomyclassseats经济舱座位数NUMBER()NOT航班计划表(FLIGHTSCHEDULER)表航班计划表字段名描述类型约束flightnumber航班号CHAR()PRIMARYKEYstartdate开始日期DATENOTenddate结束日期DATENOTFromaddress出发地机场CHAR()REFERENCESairportairportcode内蒙古农业大学学士学位论文toaddress目的地机场CHAR()REFERENCESairportairportcodeNOTstarttime离港时间DATENOTendtime到港时间DATENOTairplane执行机型VARCHAR()REFERENCESairplanemodelmodelNOTscheduler班期CHAR()NOTsaillength航程NUMBER()NOT航班表(FLIGHT)表航班表字段名描述类型约束id航班编号NUMBER()PRIMARYKEYflightnumber航班号CHAR()REFERENCESflightschedulerflightnumbercalendar出发日期DATENOTfirstclassremainsea头等舱剩NUMBER()NOTts余座位数businessclassremain公务舱剩NUMBER()NOTseats余座位数economyclassremain经济舱剩NUMBER()NOTseats余座位数priceoff季节折扣NUMBER(,)NOTDEFAULT营业网点表(BRANCH)Java航空订票系统表营业网点表字段名描述类型约束id网点编号NUMBER()PRIMARYKEYname网点名称VARCHAR()NOTpassword密码VARCHAR()NOTaddress地址VARCHAR()NOTcity所在城市VARCHAR()NOT出票记录表(TICKETORDER)表出票记录表字段名描述类型约束id机票编号NUMBER()PRIMARYKEYflightid航班编号NUMBER()NOTREFERENCESFLIGHTidpassengername乘客姓名VARCHAR()NOTpassengerid证件号码VARCHAR()NOTCalendar出票日期DATENOTcabinclass舱位等级CHAR()NOTCHECKIN(F,C,Y)tickettype乘客类型CHAR()NOTCHECKIN(A,C,I)branchid营业网点编号NUMBER()NOTREFERENCESBRANCHidDAO接口设计设计了通用的DAO接口而不是直接写访问数据库的实现类这样可以创建不同的实现类来实现接口使标准制定和标准实现分离。当换了数据库或者换了数据库访问技术就可以写新的实现类不用改变原来的代码。如定义FlightDAO接口若从文件中读取数据可以定义FlightDaoFromFile实现类若利用JDBC访问数据可以定义FlightDaoFromJDBC实现类若利用hibernate访问数据可以定义FlightDaoFromHibernate实现类等。内蒙古农业大学学士学位论文FlightDAOflightDAO用来航班计划航班的数据访问。packagecomtarenaabsdaoimportcomtarenaabsmodel*importjavautil*对航班和航班计划数据访问的接口。publicinterfaceFlightDAO{根据指定出发地目的地和出发日期在底层数据源中查找得到所有的航班对象的集合。publicSetgetAllFlights(StringfromAddr,StringtoAddr,Calendardate)执行出票的操作。publicbooleanorder(Orderord)添加指定的航班计划对象。publicbooleanaddFlightSchedular(FlightSchedularfs)根据给定的航班编号在底层数据源中删除该航班计划以及该计划下的所有航班。publicbooleanremoveFlightSchedular(StringflightNumber)得到所有航班计划对象publicSetgetAllFlightSchedulars()添加航班publicbooleanaddFlight(Flightfl)}BranchDAOBranchDAO用来访问网点数据。packagecomtarenaabsdaoimportcomtarenaabsmodel*importjavautil*对网点数据进行访问的接口。publicinterfaceBranchDAO{根据给定的姓名和密码在底层数据源中查找代理商的纪录Java航空订票系统若找到则返回该代理商对象若没找到或密码错误则返回。publicBranchgetBranch(Stringname,Stringpasswd)向底层数据中添加一个网点纪录。publicbooleanaddBranch(Branchuser)根据指定的网点的姓名在底层数据源中删除该网点。publicbooleanremoveBranch(Stringname)修改指定网点的密码。publicbooleanmodifyPassword(Stringname,StringoldPassword,StringnewPassword)查询所有网点信息publicSetgetAllBranch()}TicketOrderDAOTicketOrderDAO用来访问票单数据。packagecomtarenaabsdaoimportjavautilSetimportjavautilCalendarimportcomtarenaabsmodel*机票出票记录访问接口publicinterfaceTicketOrderDAO{执行出票的操作。publicbooleanorder(Orderord)执行退票操作。publicbooleancancelOrder(intTicketNumber)查询指定营业网点在指定时间段内的出票记录publicSet<TicketOrder>getAllTicketOrder(Branchbranch,CalendarstartDate,CalendarendDate)得到指定营业网点指定日期内的营业额。publicdoublegetAllTicketMoney(Branchbranch,CalendarstartDate,CalendarendDate)得到所有营业网点指定日期内的营业额publicdoublegetAllTicketMoney(CalendarstartDate,CalendarendDate)内蒙古农业大学学士学位论文查询所有出票信息publicSet<TicketOrder>getAllTicketOrder()}Java航空订票系统关健代码分析流程代码分析服务器启动时读取配置文件读取数据并且服务器端ServerSocket等待客户端线程访问当收到客户端相应后则创建一个新的服务线程执行服务。ServerSocketss=Sockets=try{创建服务器socketss=newServerSocket(IntegerparseInt(progetProperty("ServerPort")))while(true){s=ssaccept()转发给serverThread处理(传递socket参数)newServerThread(s)start()}}catch(IOExceptione){eprintStackTrace()}服务线程ServerThread通过构造函数接受socket然后转发给ControllerpublicclassServerThreadextendsThread{SocketsprotectedServerThread(Sockets){用传入的socket初始化thiss=s}publicvoidrun(){try{newController(s)handle()交给控制器处理}catch(Exceptione){eprintStackTrace()}finally{try{sclose()}catch(IOExceptione){}}}}内蒙古农业大学学士学位论文由controller调用handle方法分析请求对象。if(typeequals("login")){登陆处理loginHandle(req)}elseif(typeequals("flightSearch")){航班计划查询处理flightSearchHandle(req)}elseif(typeequals("order")){订单处理orderHandle()}elseif(typeequals("quit")){退出处理quitHandle()break}elseif(typeequals("modifyPasswd")){modifyPasswd(req)}有不同的处理程序调用相应的dao将查询信息封装到response中。hs=(HashSet)(flightDaogetAllFlights(fromAddr,toAddr,cal))Responseres=newResponse("flightSearch")ressetData(hs)用表格显示表单当客户端查询到航班计划时把flightlist航班集合传给FlightTableModel,再把FLightTableModel传给JTable然后把JTable加入JScorllPane就会自动显示数据。FlightTableModelftm=newFlightTableModel(flightlist)JTablejt=newJTable(ftm)ClientMainClassclientFramesetTable(jt)FlightTableModel实现了AbstractTableModel接口实现了如下四个方法。packagecomtarenaabsclientimportjavaxswingtable*importjavautil*importcomtarenaabsmodel*publicclassFlightTableModelextendsAbstractTableModel{ArrayListspublicFlightTableModel(ArrayLists){Java航空订票系统thiss=s}获得列名publicStringgetColumnName(intarg){switch(arg){case:return"航班号"case:return"出发地"case:return"目的地"case:return"起飞时间"case:return"到达时间"case:return"机型"case:return"票价"case:return"头等舱"case:return"公务舱"case:return"经济舱"default:return}}获得行数publicintgetColumnCount(){return}获得列数publicintgetRowCount(){returnssize()}获得指定位置的值publicObjectgetValueAt(introw,intcol){Flightf=(Flight)sget(row)if(row<||row>ssize())returnswitch(col){case:returnfgetSch()getFlightNumber()case:returnfgetSch()getFromAddress()内蒙古农业大学学士学位论文case:returnfgetSch()getToAddress()case:returnfgetSch()getFromTime()case:returnfgetSch()getToTime()case:returnfgetSch()getPlane()case:return(int)(fgetSch()getPrice()*fgetPriceOff())case:returnfgetFCSRemain()case:returnfgetBCSRemain()case:returnfgetECSRemain()default:return}}}在服务器中会有航班计划营业网点票单等多种类需要显示如果为每个类写一个TableModel类工作量大且当改动业务模型时维护量大。考虑如此情况本文利用反射机制写了一个ArrayListTableModel类来实现多种来型的表格显示此类如下:packagecomtarenaabsserverimportjavalangreflectFieldimportjavautilArrayListimportjavautil*importjavaxswingtableAbstractTableModelpublicclassArrayListTableModelextendsAbstractTableModel{privateArrayListarrpublicArrayListTableModel(ArrayListarr){thisarr=arr}获得列名即属性名publicStringgetColumnName(intarg){Classc=arrget()getClass()Fieldfs=cgetDeclaredFields()returnfsarggetName()}获得列数即属性数Java航空订票系统publicintgetColumnCount(){Classc=arrget()getClass()returncgetDeclaredFields()length}获得行数即元素个数publicintgetRowCount(){returnarrsize()}获得指定索引的值(行代表对象列代表属性)publicObjectgetValueAt(introwIndex,intcolumnIndex){Classc=arrget()getClass()arr类型Fieldfs=cgetDeclaredFields()Fieldf=fscolumnIndex按索引返回属性列表中某个属性Objecto=fget(obj)返回指定对象(obj)上此Field表示的字段的值oObjecto=arrget(rowIndex)返回数组中索引处的对象设置所有访问属性for(inti=i<fslengthi){fsisetAccessible(true)}try{Fieldf=fscolumnIndexObjecto=arrget(rowIndex)Objectcol=fget(o)属性字段的对象if(col==)return""if(colgetClass()==javautilGregorianCalendarclass){Calendarcal=(Calendar)colStringBuffersb=newStringBuffer()sbappend(calget(CalendarYEAR)"年")sbappend(calget(CalendarMONTH)"月")sbappend(calget(CalendarDAYOFMONTH)"日")returnsb}else{把值转化为string内蒙古农业大学学士学位论文returnfget(arrget(rowIndex))""}}catch(IllegalArgumentExceptione){eprintStackTrace()}catch(IllegalAccessExceptione){eprintStackTrace()}return}}Hibernate映射关系、构建pojo(PlainOldJavaObjects)对象用JDBC储存数据时涉及多个表格的修改查找。工作难度较大。所以考虑用hibernate实现数据储存。首先把模型改写为标准pojo。()添加Long类型的oid属性。()为保存每个属性添加gettersetter方法。()添加无参构造函数。()写hibernate映射文件。、Hibernate储存原理当储存数据时hibernate自动调用getter方法把属性存入相应字段。当读取数据时hibernate自动调用无参构造方法创建对象然后调用setter方法给对象赋值从而产生和原来对象相等(equals)的对象。当增、删、改操作时hibernate会自动把与原数据相关联的表的字段修改(必须设置级联)。、映射关系分析()航班计划和飞机型号是多对一关系:每个航班计划都包含飞机型号属性各飞机型号会被多个航班计划引用。()航班和航班计划是多对一的关系:每个航班都属于某个航班计划因此每个航班都包含一个航班计划属性而每个航班表都有一个外间指向航班计划的id子段。()定单与航班是多对一关系:一个定单包含的航班信息有它包含的航班属性得到通过航班属性还可以得到航班计划和飞机型号的信息。每个定单只能有一个航班每个航班可以包含在多个定单中因此定单与航班是多对一关系。()定单和网点是多对一的关系:原理同定单和航班的关系。Java航空订票系统总结航空订票系统使用软件分层结构利用面向对象的设计方法并把学到的知识应用于实践。实现了稳定、可维护、可扩展性的软件并且完成业务需求。如做以下改进会使系统更加完善:、初始化配置参数:程序是直接读配置文件来读取初始化参数的如下所示:ServerIP=ServerPort=可以将此参数放入程序中由用户或管理员输入来选侧不同的服务器。客户端的参数设置及重新连接功能有待实现。、服务器掉线:默认是实现是客户端先退出通知服务器服务器从内存中删掉此客户端然后客户端关闭连接。privatevoidquitHandle(Requestreq){StringcurrentUserName=(String)reqgetData("currentUser")for(Objecto:onlineAgent){Brancha=(Branch)oif(agetName()equals(currentUserName)){onlineAgentremove(a)}}try{sclose()}catch(IOExceptione){eprintStackTrace()}}但是当服务器由于网络故障或者系统维修时临时断开没有通知客户端当客户端此时向服务器发请求时便会出现想不到的错误。一个有效的解决方法是:利用观察者模式。在服务器推出方法中遍历在线客户端socket发送等待信息。Privatevoidquit(){For(Sockets:Currentsockets){封装等待信号给客户端}}内蒙古农业大学学士学位论文客户端受到等待信号后执行waitServer()方法并禁止操作。、请求响应对象:现在的request对象封装了String类型的Type变量代表请求类型。Response对象包装了Object类型的Date变量作为相应。可以把请求对象作为枚举类型更安全不易出错。、数据显示的轮动更新:服务器端显示航班信息网点信息出现一张表该表不能滚动和更新。可以利用可滚动、可更新的结果集以及Swing的某些特性实现excel中的实时修改数据功能。实现此功能较为复杂。Java航空订票系统致谢经过了近两个月的毕业设计~使我学到了很多~首先巩固了基础知识~我衷心的感谢我的指导老师李建荣~和计算机学院的各位老师及领导对我的关心支持和帮助。感谢我在达内实训公司的唐亮老师和项目经理张翠的指导与帮助。感谢在二学位的学习过程中同学的帮助~特别是张成功同学的帮助。感谢父母和家人对我的物质和精神的支持。内蒙古农业大学学士学位论文参考文献BruceEckeljava编程思想,第四版,M机械工业出版社~CaysHostmannGaryComelljava核心技术M机械工业出版社~孙卫琴java面向对象编程M电子工业出版社~KathySierraBertBates深入浅出JavaM东南大学出版社~Java优化编程M电子工业出版社~林胜利王坤茹ChristianBauerGavinKinghibernate实战M人民邮电出版社~吴建郑潮UML基础与ROSE建摸案例M人民邮电出版社~ElliotteRustyHaroldjava网络变成(第三版)M中国电力出版社~黄小林java图形组件JTable在JDBC中的引用J徐州工学院学报~,:谢飞ava平台下数据库持久化技术介绍C第十届中国java技术应用大会~温君波基于Socket的网络会议系统D吉林大学~周树峰基于java的多层系统模型研究C电脑知识与技术~()

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/29

java毕业论文-航空订票系统

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利