




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业论文(设计)题目基于J2EE的旅游网站后台管理系统设计学院计算机学院蛛俩糟首专肢瓜违业行名揪蛛见计算弃机科席学与绵技术隙理盲旷盼诸蹲仙穿东学椅生姓毁名水XX窝XX今避茄株学酒捡芝号排XX勺XX拾XX意XX姨XX崭年级迷享闻20死09东级岗笑固春腊指止导教蛮师姜XX劫XX什XX微XX巡X弱教务阻处制啊表恢二保Ο疲一三葱年吵五容月黎二友十凉日TITLE此处填写论文题目仔基于革J2张EE念的旅彻游网屑站后筛台管辨理系史统设矩计扰计算穴机科辞学与俩技术富学生疗:X导XX饭X匙指导呢老师检:X租XX编XX兆[摘击要]衔定随着帽计算耀机技介术的额发展赚,许剂多行觉业对婆计算坦机的专应用久日益阶广泛观,尤介其以胸JA罩VA缘语言渠为基稿础的滥开发歌项目咐,比展如软膀件开沃发,皮系统五开发挑等,垫当前胜JA厅VA蛇语言袄使用汪量几期乎稳深居世们界第第一。伍与J惠AV喝A相说关框阻架层驼出不歇穷,浙基于戚JA联VA故语言幻的优旺势,导对其搅的研妥究应虚该更耽为广淹泛。夸本文控对基号于J羊2E刺E的补旅游息网站相后台愁管理缓系统溪开发艇详细史进行熊介绍级,其漏中按庸层次兆划分倡,需漫求分学析层打包括嘴用户异需求违、功惑能需粒求、压非功哪能需烈求、享配置江需求桌,在尊这四少个方颗法进外行了亲详细额的介会绍;助系统缎结构慢层,般对本韵系统藏开发步框架赔进行贴了详理细介知绍,宰包括躲类模色型设都计和众数据铅表设衣计以眯及类纸之间厘方法碎调用努关系鲁,过映程有喷相应锅的图势据以深参考萝。本俱文对兰技术焰性知胞识,皮主要糟是J更2E桂E开依源框聚架,外据权红威人蠢士分雅析,衫J2雾EE懒技术炎当前舌发展葵普及租全球敏并会徒继续喘发展难,其明技术愉会对争于将进会投龟入到滤软件杰开发山方向峡上的竖人员棕来说浊,重睛要性莲毫无猜疑问横,其坑将会煤带来择的机加会可邪想而块知,吓所以三本文堆也就扒使用啄到的容J2谎EE色框架代进行傻介绍凯。主所要是营对S偿tr汗ut黑s2卵、S吴pr技in卖g、壳Hi精be衫rn除at欠e三民大开堡源框济架的确基本锈功能狱特性后和原认理进匀行分柔析,咏同时广也对袄Aj尖ax既交互叔技术跃进行河有效红分析叼,最颗后总萝结本神次开骨发项勺目收悬获。怕[关猾键字滔]胳缩维系统缩J2岭EE桃惕Aj亿ax借强框架狭Tr埋av效el纠w侧eb佣si打te温b值ac证ks候ta位ge丈m逝an数ag庄em皇en盈t娱sy愁st拢em宅b翁as誉ed副o守n才J2戚EE顷i由s猛de纠si扶gn碑ed队Co凶mp店ut老er宁s酸ci浸en后ce制侨&直te厉ch嗓no滑lo汁gy杀St炭ud量en风t:扯理ZH计AN皂G获筒Xx断x留Ad急vi牵se珍r:贷撑CH献EN愧貌Xx盘x机-股xx生x[Abstract]迁Wi迹th势t瓶he朱d运ev榨el拘op捉me佛nt傅o鹿f便co洋mp充ut锈er稻t升ec蹈hn发ol涛og稿y,含Ma政ny琴i荒nd骄us末tr工y羞in滋cr盗ea茄si蹲ng港ly外e抛xt防en唯si浮ve斜a挪pp羽li搭ca脸ti我on何o喊f测co宏mp徒ut红er奴,宴es亏pe穗ci债al窃ly谦b楼as概ed凉o援n揉JA牙VA冠d臂ev祸el茄op移me冬nt株p助ro务je联ct涉s,鞋s筹uc鞠h铃as规s承of悬tw揉ar诞e碰de冷ve势lo惭pm后en等t,担s椅ys霉te谎m俘de主ve刚lo涝pm铲en槐t,捡s护uc歼h巧as斤t可he饱J藏AV惊A先la参ng楚ua爱ge焦u倘sa贞ge鄙a稳lm排os私t塌ra茂nk怒s霉fi向rs颂t武in秒t绳he炊w半or武ld隙.两As页so爪ci隔at兼ed态w屋it浑h庆th甲e假JA越VA哪f波ra含me男wo你rk待s钉em摩er骄ge鸟i唯n返en叨dl甜es胁sl倍y,膀b伙as曾ed照o孙n垄th升e叹ad碑va炕nt迫ag衣es烦o堡f震JA仆VA番l仁an嗓gu卫ag精e,居t舞he更r雕es狡ea寻rc饭h坊sh撇ou呜ld扎b叛e阴mo旺re西w托id客el锅y.罗I姓n级th谊is汤p率ap杏er界,谋th凭e敲tr庄av松el望w慕eb街si判te评b霉ac诞ks寸ta累ge鸦m宏an浑ag夏em台en性t耳sy捎st择em醒b露as迫ed值o敲n谜J2啄EE坟d宇ev废el饺op滩me清nt怨i挥s窗de至sc滴ri抱be稳d栏in甩d窃et关ai辩l,呼w稻hi质ch油a鼻cc脑or覆di涌ng母t挑o般le齐ve置l塌cl当as扶si谎fi氏ca篇ti汤on勒,就re吼qu慕ir蠢em爪en反t丝an严al挣ys衬is舱l架ay贷er棕i滤nc榨lu器di励ng咏u雀se逐r赶ne斑ed帖s,窜f灯un避ct挺io竹na群l怨re合qu粘ir贵em虫en蓬ts补,采no似n-蹦fu梦nc吹ti据on远al穗r马eq末ui愤re索me贩nt家s,骆c西on鼻fi全gu醒ra出ti运on命r运eq见ui等re蚂me存nt爹s,秧t换he给f躬ou钞r忘me衰th蛙od秒s胳is颈i客nt跨ro捉du壳ce享d丰in秃d浆et升ai毕l;棒S表ys气te提m妻st挨ru飞ct膝ur峡e垃la久ye杠r,叼t骄hi吴s柿fr蒜am裙ew三or袭k雀sy摘st呆em驰d兽ev柏el厦op育me争nt帝a成re看i贩nt铜ro各du傍ce王d品in苦d忘et枝ai鬼l,法i盟nc膛lu汪di茅ng呼m躬od载el宪d变es地ig炉n摸an瞎d匠da队ta员t预ab蓄le贤d鸦es腥ig奸n镜an亮d诞cl弊as感s友re刻la医ti地on头sh姻ip零s爬be彻tw鞭ee匠n烘me窑th竞od治c松al残ls键,压wh用ic授h风pr罩oc顽es油s项ha心ve迎c针or杠re亩sp临on乞di依ng拒f题ig猛ur夏e泛re擦fe丹re奥nc永e.过I里n妥th敞is美p似ap茫er麦,最th微e膊te呈ch呈ni具ca糊l笛kn狗ow恨le酸dg阴e,佩m扣ai往nl榴y祝is会t耻he裂J陷2E绣E王op云en箩s牢ou更rc派e圾fr曾am柴ew那or茶k,钱a盲cc登or锻di蜡ng径t洞o疤au近th膛or上it平ie淘s,卷J败2E葡E狗te徐ch考no咐lo福gy筒d寻ev族el鼓op向me臭nt催c钥ur糕re明nt袄g攀lo缩ba葬l贱po乓pu纯la创ri怀ty漂a梦nd钩w睡il隐l蛾co白nt蔽in老ue无t宁o宇de尘ve兴lo底p,贪t愁he上t极ec丛hn谈ol削og抄y窑fo慌r斑th醉e慌pe表rs钞on喂ne俩l筑wi身ll诵b改e防in且vo淹lv失ed何i牢n典so常ft康wa迅re纲d播ev棋el乎op融me嘱nt链d戴ir院ec骨ti耀on探,槽im侵po摩rt肯an巡ce骂a彩nd割t乳he茶re夸i齐s虹no勤d艘ou气bt帅t壳ha踪t技it城w确il余l酸br兴in闻g潜th前e板op阳po笛rt掀un品it预y,熄s略o共th枪is饼p表ap慕er色a避ls热o碑in劈tr债od察uc贴es师t充he邻J伞2E贵E凯fr傻am坛ew瓜or掘k停is喊u唐se弓d垂to历.工Ma屿in令ly遗t草o产th但e适th朽re职e铸op难en虹s么ou跪rc里e搭fr杀am些ew艳or渐k培st胳ru搜ts章2延,劲Sp桌ri巾ng拾,唤Hi糖be宽rn斗at嗓e,隙t蓄he距b涂as种ic液f义ea塘tu让re夸a徐nd委p闸ri弟nc象ip呈le呆w爆er太e史an锣al耀yz题ed食,宁an陪d上at剑t擦he喷s寨am迟e登ti怖me份a薄ls千o泽to顷A原ja痛x匪in拿te领ra助ct佛io澡n哭te急ch驾ni放qu弊es黎f慎or究e个ff港ec笨ti正ve窜a杰na遍ly弦si痒s,献f碰in高al斧ly傻s呈um展ma旁ri榜ze繁s瞧th负e小de厨ve护lo朵pm弯en厕t转pr注oj炮ec喉t.[KeyWords]SystemJ2EEAjaxframwork目录TOC\o"1-3"\f\h\z\u1综述52旅游网站后台管理系统设计72.1旅游网站管理系统介绍72.2旅游网站后台管理系统需求分析82.2.1用户需求82.2.2功能需求82.2.3非功能需求102.2.4配置需求102.3系统框架结构设计112.3.1系统整体框架概述112.3.2数据表设计122.3.3系统的基本类模型设计142.4系统的基本功能实现182.4.1配置文件182.4.2添加功能212.4.3查询功能232.4.4更新功能242.4.5删除功能273操作界面展示293.1功能界面293.2详细操作界面304主要使用技术介绍334.1Ajax技术334.2SSH技术335总结36参考文献37声明38致谢39附录401综述随着计算机技术的发展,许多行业对计算机的应用日益广泛,尤其以JAVA为基础的开发项目,比如软件开发,系统开发等,当前JAVA语言使用量几乎稳居世界第一。与JAVA相关框架层出不穷,基于JAVA语言的优势,对其的研究应该更为广泛。作为一名大学计算机专业毕业的并且对JAVA尤其是J2EE方向的技术充满浓厚兴趣的的学生,更应该学习掌握先前的技术(Struts2,Spring,Hibernate),并进行实际项目开发,获得更多的开发经验,从而对编程尤其是JAVA方向的编程思想更深刻透彻,为自己以后在JAVA方向的开发研究奠定基础。本次开发的旅游网站后台管理系统基于J2EE,目的就是学习J2EE的Struts2、Hibernate、Spring三大开源框的使用,希望通过此次课题设计不断提高自己对J2EE的掌握程度,积累更多的实践经验。对于J2EE的发展现状及前景,在旧金山举行的2023年JavaOne大会上,甲骨文公司展示了其推动Java平台企业版(JavaEE)发展的最新成果,JavaEE继续大受欢迎,并有越来越多的开发人员采用,包括OracleGlassFishServer在内的JavaEE组件获得了4000万次下载,自2023年12月推出以来,6个主要IT厂商已经推出了经过认证、开源和商业实施的JavaEE6,使其成为迄今为止最迅速获得采用的平台产品,作为下一代JavaEE,JavaEE7进展顺利,其中,有超过20个的不同参与企业和数百名工程师通过Java社区(JCP)对10个活跃的Java规范要求(JSRs)进行了开发处理,JavaEE7JSRs包括:JavaEE7平台,JavaPersistenceAPI2.1,JAX-RS2.0,用于RESTful网络服务的JavaAPI,Servlet3.1,表达语言3.0,Java信息服务2.0,JavaServerFaces2.2,EnterpriseJavaBeans3.2,面向JavaEE1.1的ContextsandDependencyInjection,BeanValidation1.1.等,JavaEE7专家组也在寻求把其他JSRs加入到JavaEE7的可能性,这些JSRs包括JCache1.0–JavaTemporaryCachingAPI,ConcurrencyUtilities1.0,Java状态管理1.0和JavaIdentityAPI1.0。JavaEE7旨在进一步增强JavaEE平台的云环境,因此,基于JavaEE-7的应用和产品将能够在私有云和公有云中更方便地操作,并通过支持多用户租用和弹性使用(如平行扩展)等功能来实现功能即服务,作为JavaEE的参考实施,GlassFish服务器不仅仅是全面的JavaEE6实施,(开源版是GlassFish服务器开源版,商业版是OracleGlassFish服务器),还为即将推出的JavaEE7提供了坚实的基础,OracleGlassFish服务器完善了OracleWebLogic服务器11g,后者是一款专门为运行Oracle融合中间件11g的广泛产品组合以及可内部部署和云部署的大规模企业应用而设计的服务器,甲骨文在2023年JavaOne大会的136个联合研讨会、BOF和动手实验室,以及JavaOne展览馆中对JavaEE及相关技术进行了展示。J2EE技术当前发展普及全球并会继续发展[1]。本文的主要工作是对基于J2EE的旅游网站后台管理系统开发详细进行介绍,其中按层次划分,需求分析层包括用户需求、功能需求、非功能需求、配置需求,在这四个方法进行了详细的介绍;系统结构层,对本系统开发框架进行了详细介绍,包括类模型设计和数据表设计以及类之间方法调用关系,过程有相应的图据以参考。本文对技术性知识,主要是J2EE开源框架,据权威人士分析,J2EE技术当前发展普及全球并会继续发展,其技术会对于将会投入到软件开发方向上的人员来说,重要性毫无疑问,其将会带来的机会可想而知,所以本文也就使用到的J2EE框架进行介绍。主要是对Struts2、Spring、Hibernate三大开源框架的基本功能特性和原理进行分析.系统性的学习软件开发流程,并在此过程中对J2EE开源框架的使用以及软件开发思想进行深一步理解。熟练项目开发全套工具及软件的配套使用。2旅游网站后台管理系统设计2.1旅游网站管理系统介绍一个强大的旅游网站应该具有的功能有:景区景点展示、景点导航、诗词游记管理、风景图片展示、精彩视频管理、交通信息查询、自助游。天气预报、在线咨询、在线帮助、在线调查、旅客评论、旅客投诉反馈、门票预定、酒店预定、餐饮预定、车位预定、导游预定、旅客论坛、旅客博客、特产购物管理、旅客流量统计、网站流量统计等。以上功能是旅游网站全方位描述,写过项目的人都知道,一个系统的不同功能所用技术大致相同,本次设计着重学习,特此主要是在新闻管理也就是景区基本信息管理,以及线路管理两大功能及相关的的基础上,对其几个问题实现的具体功能进行介绍分析。在景点基本信息功能一栏:以地区为总类别区分,对总类别可以添加、查看、更新、删除,总类别只记录类别名称和形象图片。在此基础上,添加景点信息类别和景点详细信息,景点类别只设名称一列,详细信息则包括名称、热度、形象图片等。在景区图片管理功能一栏:针对图片类别设立类别CRUD功能,图片添加在此基础上进行,对于图片模块,自定义图片无限分类形式,对于图片的大小,格式,展示效果进行显示控制。在景点视频管理功能一栏:在总类别的基础上,上传自定义的格式视频,其格式可以是avi,mpg,mp4,mv等常用格式,旅客可以将自己在旅游过程中拍摄的视频在一定容量范围内上传,后台也可以上传些对于景点的宣传视频。在旅游线路功能一栏:管理员可以对线路类别及线路详细信息进行CRUD操作,比如记录线路出发城市、出发时间、持续时间、价钱、热度等信息,方便旅客查询,购票等。对于用户信息管理、用户订单管理分别对用户的基本信息,和订单信息进行对应的操作,旅客评论上可以对旅客曾经对景点视频等做过的评论进行管理,旅客可以对旅游过的景点进行点评,交互意见等。另外附加功能一还有针对游客流量统预测计功能:在根据系统中存储的历史游客数据,参考导游、门票、餐饮、酒店、停车位的预定量,结合天气预报、游客流量走势、景区接待量、民俗节日、国家法定节假日、宗教节日、景区节日等方面,通过一定的推测原理推测出未来某月、某周、某日、某地的游客流量记录。附加功能二便是针对当前网站流量统计:统计分析分别以年、月、日、时段为单位对网站整体访问量,统计分析全球来访IP的区域,统计分析网站各主要频道的访问量,统计分析各主要搜索引擎对网站的搜索频率,可以把结果用饼状图或柱状图展现出来。下面对本次的设计进行详细传述。2.2旅游网站后台管理系统需求分析2.2.1用户需求时代在进步,人们生活水平不断提高,从而变得不仅对物质生活的要求高,而且越来越注重精神上的享受。旅游是人们寻求精神上的愉快感受的一种形式,让人们对此兴趣日益高升,所以旅游业的发展是社会发展人们生活水平提高的必然趋势。当今世道,计算机互联网的不断发展为旅游提供了方便,跃然旅游信息量越来越大,涉及全国各地乃至世界,其业务操作中设计的各种路线信息,客户情况,各旅游协作部门越来越复杂多变,人们对信息的撑握重要性越来越高,为满足人们对旅游信息收集,方便人们快捷办理门票、交通、餐用等手续,旅游网站的发展也就在情理之中了。所以,从网站开发的角度考虑出发,网站按功能模块进行分割,然后将旅游各种信息通过网站建设发布到网络上,对于旅客来说,这无疑提供了无上方便快捷,给有心出门旅行的人们以快捷,在家中就可以轻松做好旅行规划。网站的内容以唯美的图片、生动形象的FLASH展示、拍摄的精美视频,优美的音乐,详细的信息,清晰的线路等吸引越来越多的旅客,并可以使旅客通过访问网站的方式了解旅行目的地的相关情况以及线路策划与安排等等。目前旅游网络门户类型主要有三种类型,门户网站旅游频道的综合信息服务类、传统类旅行社网站、第三方旅游中介服务网站。随着中国人民生活水平的的不断提高,旅游业的发展有望得到进一步的突破。因此,具有现代化的互联网多媒体信息技术的旅游网站的建设具有不可估量的意义。2.2.2功能需求如下是该系统的一个基本的用例图:图2-1系统用例图下面以本次开发的功能划分,分为添加、读取、更新、删除四个主要功能。从功能层面上来划分的话,四个功能操作的数据以及中间涉及的方法调用流程大体相似。本旅游网站的后台管理基本功能如下:基本信息的添加:包括景点基本信息、图片基本作息、视频基本信息、线路基本信息添加。主要是用户或者管理员通过JSP页面进行数据录入并提交页面,由Struts2的filter拦截进入Struts2的action对应方法进行算是,然后调用Hibernate相关方法直接在数据库里进行插入并将结果返回到相应的JSP页面。图2-2用例图基本信息的读取:包括景点基本信息、图片基本信息、视频基本信息、线路基本信息、用户相关信息等。主要是用户或者管理员通过JSP页面进行数据录入并提交页面,由Struts2的filter拦截进入Struts2的action对应方法进行算是,然后调用Hibernate相关方法直接在数据库里进行插入并将结果返回到相应的JSP页面。图2-3用例图基本信息的更新:包括景点基本信息、图片基本作息、视频基本信息、线路基本信息更新。主要是用户或者管理员通过JSP页面进行数据录入并提交页面,由Struts2的filter拦截进入Struts2的action对应方法进行算是,然后调用Hibernate相关方法直接在数据库里进行插入并将结果返回到相应的JSP页面。图2-4用例图基本信息的删除:包括景点基本信息、图片基本作息、视频基本信息、线路基本信息删除。主要是用户或者管理员通过JSP页面进行数据录入并提交页面,由Struts2的filter拦截进入Struts2的action对应方法进行算是,然后调用Hibernate相关方法直接在数据库里进行插入并将结果返回到相应的JSP页面。图2-5用例图2.2.3非功能需求功能性:在功能上要满足旅游网站的常规操作,对于客户来说,客户可以浏览查询自己需要的数据,可以下订单,可以将当前查询或者是收录的信息存储到自己的比如收藏夹,用记可以对自己的个人信息进行录入更改,还有进行一些自己数据的删除。对于管理员来说,管理员有对旅游信息的添加查询更新删除的权限,还有对客户的部分信息进行管理,比如查看,甚者可以是删除,管理员也可以对自己的基本信息进行管理。安全性:该系统功能上应具有较高的安全性,关键是要防止非法用户进入系统修改、删除后台数据,黑客切取用户资料,用户对景点信息的操作权限等。为防止这些情况的发生,可在用户数据传输过程中用MD5算法对用户数据加密存储,在后台操作数据进行身份验证。c.可靠性:该系统应具备较好的稳定性,能存储较大的数据量,在多用户并发访问环境下可以保重系统正常运行,不会产生干扰操作,在数据数据库的选取以及表的设计方面应注意效率,比如给需要经常访问的属性列建立索引,适当增加服务器内存等。d.易用性:由于本系统将采用B/S三层架构,客户使用的浏览器类型以及版本多种多样,在对页面展示方面要处理好不同浏览器的显示效果,要让用户有较好的浏览体验。e.易维护性:该系统以J2EE三大框架为支撑,在开发过程中尽量采用面向接口编程,避免将程序直接写死的情况,遵循低耦合的设计原则,增加系统的可扩展性和可维护性。2.2.4配置需求本次旅游网站后台管理系统采用B/S架构,服务器使用Tomcat,数据库采用MySQL,开发工具MyEclipse,操作系统Windows7。2.3系统框架结构设计2.3.1系统整体框架概述该旅游网站后台管理系统的整体框架如图:图2-6系统框架图该系统采用J2EE的Struts2,Spring,Hibernate框架对过程进行控制并对站内数据进行操作,前台提交页面数据到后台,通过Struts2的filter进行拦截,将数据提交到Struts2的action操作里进行处理,action方法则通过Hibernate操作数据库数据,Spring贯穿在Strust2和Hibernate的整个过程,主动创建程序过程需要的对象。整个过程主要采用面向接口编程,Jsp页面的数据交互技术运用Ajax。主要数据操作功能有create、read、update、delete也就是数据的增删改查。该系统的基本时序如图:图2-7系统时序图该时序图说明:程序执行流程,从客户端提交JSP页面请求开始,通过tomcat服务器,页面请求数据被Struts2的Filter拦截,数据传送至Struts2的action里,action调用model进行对应数据的获取,具体数据操作,由action调用上层管理接口manageDAO,上层管理接口调用自己的特定实现manageDAOImp去进行操作,manageDAOImp再调用模型操作上级接口modelDAO,再由该接口调用自己的实现modelDAOimp去直接操作数据库Database,最后操作结果由action返回至JSP结果页面,而Spring的DI功能贯穿整个过程,主要是Struts2和Hibernate相互操作的过程的创建对象。2.3.2数据表设计该系统存储信息类型较多,主要应用数据表及结构如下:admininfo_class:information:line_class:line_info:picture_class:picture_info:top_belong:video:2.3.3系统的基本类模型设计本项目以action,service,dao,daoimp,model方式分层,其类调用关系如下:图2-8层次调用关系根据此分层开发思想,该项目的开发包图如下:图2-9系统包图在以上的基础上,设计的类与包的关系图如下:action包:service包:dao包:daoimp包:model包:根据本项目的需求,对各类内部进行设计,由调用的关系图2-8可知,每一层的方法相同以满足调用,这里只写出action包中主要类的方法:管理员类:信息类别类:信息详细类:线路类别类:线路详细类:图片类别类:图片详细类:总属类:视频类:以Information类create方法调用为例,关系如下:图2-10方法调用详细2.4系统的基本功能实现2.4.1配置文件配置文件主要有两个beans.xml和struts.xml。其中beans.xml配置,主要实现数据源链接,SessionFactory以及HibernareTemplate的bean生成,代码如下:<beanid="dataSource"class="org.apachemons.dbcp.BasicDataSource"destroy-method="close"><propertyname="driverClassName"value="com.mysql.jdbc.Driver"/><propertyname="url"value="jdbc:mysql://localhost:3306/travel"/><propertyname="username"value="root"/><propertyname="password"value="root"/></bean><beanid="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><propertyname="dataSource"ref="dataSource"/><propertyname="packagesToScan"><list><value>.model</value></list></property><propertyname="hibernateProperties"><props><propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><propkey="hibernate.show_sql">true</prop><propkey="hibernate.format_sql">true</prop><propkey="hibernate.hbm2ddl.auto">update</prop></props></property></bean><beanid="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><propertyname="sessionFactory"ref="sessionFactory"></property></bean>其中struts.xml配置,实现页面跳转映射,主要代码如下:<actionname="basePage"><result>/back/basepage.jsp</result></action><actionname="adminLoginPage"class=".action.AdminAction"></action>Action"><result>/back/top_belong_create.jsp</result><resultname="show">/back/top_belong_show.jsp</result><resultname="update">/back/top_belong_update.jsp</result></action><actionname="infoClass"class=".action.InfoClassAction"><result>/back/info_class_create.jsp</result><resultname="show">/back/info_class_show.jsp</result><resultname="update">/back/info_class_update.jsp</result></action><actionname="information"class=".action.InformationAction"><result>/back/information_create.jsp</result><resultname="show">/back/information_show.jsp</result><resultname="update">/back/information_update.jsp</result></action><actionname="pictureClass"class=".action.PictureClassAction"><result>/back/picture_class_create.jsp</result><resultname="show">/back/picture_class_show.jsp</result><resultname="update">/back/picture_class_update.jsp</result></action><actionname="pictureInfo"class=".action.PictureInfoAction"><result>/back/picture_info_create.jsp</result><resultname="show">/back/picture_info_show.jsp</result><resultname="update">/back/picture_info_update.jsp</result></action><actionname="video"class=".action.VideoAction"><result>/back/video_create.jsp</result><resultname="show">/back/video_show.jsp</result><resultname="update">/back/video_update.jsp</result></action><actionname="lineClass"class=".action.LineClassAction"><result>/back/line_class_create.jsp</result><resultname="show">/back/line_class_show.jsp</result><resultname="update">/back/line_class_update.jsp</result></action><actionname="lineInfo"class=".action.LineInfoAction"><result>/back/line_info_create.jsp</result><resultname="show">/back/line_info_show.jsp</result><resultname="update">/back/line_info_update.jsp</result></action><actionname="undoPage"class=".action.UndoAction"><result>/back/undopage.jsp</result></action>2.4.2添加功能不同数据相同操作方法相似,流程大致相同,这里只例举景点信息的功能方法。景点详细信息的添加实现:(InformationAction)publicStringcreate()throwsIOException{HttpServletResponseresponse=ServletActionContext.getResponse();PrintWriterpw=response.getWriter();if(informationService.exists(this.getTitle())){pw.write(title+"isalreadyexists");returnnull;}TopBelongtb=newTopBelong();tb.setId(this.getTopId());InfoClassic=newInfoClass();ic.setId(this.getClassId());Informationi=newInformation();i.setTitle(this.getTitle());i.setAuthor(this.getAuthor());i.setContent(this.getContent());i.setResource(this.getResource());i.setTopId(tb);i.setClassId(ic);i.setClicks(0);Dated=newDate();Stringsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(d);i.setAddTime(sdf);if(image!=null){Stringupload="\\upLoadImages";Stringrealpath=ServletActionContext.getServletContext().getRealPath(upload);uploadImage(realpath,pw);i.setImagePath(upload+"\\"+this.getImage());}informationService.create(i);pw.write("informationaddsuccess");returnnull;}图2-11信息创建方法调用图该create()方法,封装Information对象调用InformationService的create()方法:(InformationService)publicvoidcreate(Informationi){informationDao.create(i);}该create()方法又调用InformationDao接口的create()方法InformationDao的抽象方法publicvoidcreate(Informationi);该方法又由子类InformationDaoImp的create()方法去实现publicvoidcreate(Informationi){hibernateTemplate.save(i);}最后由HibernateTemplate的save()方法,操作数据库并保存。2.4.3查询功能景点信息的查询主要实现:(InforamtionAction)publicStringreadAll(){this.setInforamtions(informationService.readAll());return"show";}在当前类里用一对象informations来存储查询结果信息,该方法调用InformationService的readAll()(InformationService)publicList<Information>readAll(){returninformationDao.readAll();}此处用一集合来存储返回的对象,该方法调用InformationDao上级接口的readAll()方法,然后InformationDao用其子类的InformationDaoImp的实现(InformationDaoImp)publicList<Information>readAll(){returnhibernateTemplate.find("fromInformation");}此方法用HQL语言直接操作数据库进行查询。流程如图2-12.图2-12信息查询调用2.4.4更新功能景点信息的更新主要实现:(InformationAction)publicStringupdate()throwsIOException{HttpServletResponseresponse=ServletActionContext.getResponse();PrintWriterpw=response.getWriter();booleanalreadyExists=false;if(informationService.exists(this.getTitle())){alreadyExists=true;}TopBelongtb=newTopBelong();tb.setId(this.getTopId());InfoClassic=newInfoClass();ic.setId(this.getClassId());Informationi=newInformation();i.setId(this.getId());i.setTitle(this.getTitle());i.setAuthor(this.getAuthor());i.setContent(this.getContent());i.setResource(this.getResource());i.setTopId(tb);i.setClassId(ic);Dated=newDate();Stringsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(d);i.setAddTime(sdf);if(image!=null){Stringupload="\\upLoadImages";Stringrealpath=ServletActionContext.getServletContext().getRealPath(upload);uploadImage(realpath,pw);i.setImagePath(upload+"\\"+this.getImage());}Stringresult=informationService.update(i,alreadyExists);pw.write(result);returnnull;}此方法同create()方法一样先封装Information对象,再调用InformationService的update方法(InformationService)publicStringupdate(Informationi,booleanalreadyExists){returninformationDao.update(i,alreadyExists);}然后接着调用InformationDao上级接口,用InformationDao的实现InformationDaoImp的update方法(InformationDaoImp)publicStringupdate(Informationi,booleanalreadyExists){Informationinfo=(Information)hibernateTemplate.get(Information.class,i.getId());if(alreadyExists&&i.getId()!=info.getId()){return"the"+i.getTitle()+"alreadyexists";}if(i.getTitle().length()>0)info.setTitle(i.getTitle());if(i.getAuthor().length()>0)info.setAuthor(i.getAuthor());if(i.getContent().length()>0)info.setContent(i.getContent());if(i.getResource().length()>0)info.setResource(i.getResource());info.setClassId(i.getClassId());info.setTopId(i.getTopId());info.setAddTime(i.getAddTime());hibernateTemplate.saveOrUpdate(info);return"number"+i.getId()+":updatesuccess";}该update方法中,选通过传来的Information对象进行Load操作,将load出来的对象与当前对象比较,对数据变化了的进行更新操作,没变化的则不用更新。流程如图2-13:图2-13信息更新调用图2.4.5删除功能景点信息的删除主要实现:(InformationAction)publicStringdelete()throwsIOException{HttpServletResponseresponse=ServletActionContext.getResponse();PrintWriterpw=response.getWriter();if(!informationService.existsById(this.getId())){pw.write("theobjectalreadydelete");returnnull;}Informationi=newInformation();i.setId(this.getId());informationService.delete(i);pw.write("deletesuccess");returnnull;}该方法封装一个由前后提交的具有id的Information对象,调用InformationService的delete()(InformationService)publicvoiddelete(Informationi){informationDao.delete(i);}该方法调用InformationDao上级接口,用其子类InformationDaoImp的delete()方法实现publicvoiddelete(Informationi){hibernateTemplate.delete(i);}该方法里调用HibernateTemplate的delete()方法实现最后数据库数据的删除。流程如下2-14:图2-14信息删除调用图3操作界面展示3.1功能界面功能栏目界面:分为图中8个模块其中景点基本信息栏目详细如图所示,管理员可以对总类别、信息类别、信息详细进行CRUD操作其中景区图片栏目详细如图所示,管理员可以对图片类别及图片详细进行CRUD操作景点视频管理栏目,相对简单,仅对视频进行相关操作其中旅游线路栏目如图,则对线路类别和线路详细进行CRUD操作以下是用户相关的操作3.2详细操作界面操作界面多,些处只举几个界面以观成效。管理员登录界面:后面的红星代表必输选项总类别添加界面:红色部分是用Ajax提交过后,交互的显示结果,表示添加成功查看总类别界面:其查看列表分页显示,后面的更新、删除操作可以直接对当前对象进行如更新总类别界面:当提交更新的资料后,在后台会先load与之相应的目标对象出来,再与之比较,对于变化了的属性进行更新,没变化的则不更新。删除总类别界面:当点击删除时,会弹出提示窗口,是否真的要删除,点击确定则删除,点击取消则返回原来的界面。4主要使用技术介绍4.1Ajax技术AJAX即“AsynchronousJavaScriptandXML”(异步JavaScript和XML),主要包含了以下几种技术:a.基于web标准(standards-basedpresentation)XHTML+CSS的表示;b.使用DOM(DocumentObjectModel)进行动态显示及交互;c.使用XML和XSLT进行数据交换及相关操作;d.使用XMLHttpRequest进行异步数据查询、检索;传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求,服务器接收并处理传来的表单,然後返回一个新的网页,这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的,由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间,这导致了用户界面的响应比本地应用慢得多,与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的webservice接口,并在客户端采用JavaScript处理来自服务器的响应,因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用,同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了,使用Ajax的最大优点,就是也动态刷新部分数据,能在不更新整个页面的前提下维护数据,这样写出的Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息,交互感更强,Ajax技术的运用不需要浏览器插件的协助,只要用的的浏览器能执行JavaScript就行,当然我想一般的浏览器都能,就像DHTML应用程序那样,Ajax应用程序是在众多不同的浏览器和平台上经过严格的测试的,现在Ajax技术的成熟越来越成熟,一些简化Ajax使用方法的程序库也相继问世,同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能[2]。4.2SSH技术Struts2:Struts2是Struts1的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架,其实技术上来说,Struts2的技术几乎完全继续WebWork的技术,只是名字看似在Struts1的基础上发展,实际两版本完全不同,因为当时Struts1应用量很广,比WebWork牛,但技术不比WebWork好,为长期发展,所以Struts1与WebWork合作出了Struts2。下面以WebWork为核心,采用拦截器的机制来处理用户的请求。其原理图如下:图3-1Spring:Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来,它是为了解决企业应用开发的复杂性而创建的,其功能是使用基本的JavaBean代替EJB,提供多种企业级应用,其主要有两大核心功能:其是IoC,Spring通过一种称作控制反转(IoC)的技术促进了松耦合,当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象,你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它;其二是AOP,Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州房屋租赁合同范例
- 个人间借贷合同样本
- 2025年化肥农药项目可行性分析报告
- 惠州标准劳动合同
- 2025年工业工程实习报告5
- 农村社会实践报告(二)2025
- 消防工程合同风险控制策略2025
- 2025-2030年中国电力自动化行业发展态势与供需前景预测报告
- 2025年中国血鹦鹉养殖行业现状分析及赢利性研究预测报告
- 新能源汽车销售与维护合同
- 比例的意义公开课省公开课一等奖全国示范课微课金奖课件
- 仓库管理员培训考试试题-含答案-
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 水库巡查方案
- 植物生理学课件(王小菁-第8版)-第五章-植物同化物的运输
- 小学科学湘科版四年级下册全册同步练习含答案
- 小红书种草计划书
- 吉林油田公司管理手册
- 象与骑象人-读书笔记课件
- 甲状腺炎-桥本氏甲状腺炎
- 私募基金管理人登记备案资料表(批注版)
评论
0/150
提交评论