旅游网站后台管理毕设论文论文_第1页
旅游网站后台管理毕设论文论文_第2页
旅游网站后台管理毕设论文论文_第3页
旅游网站后台管理毕设论文论文_第4页
旅游网站后台管理毕设论文论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川大学本科毕业论文基于JCR的内容管理系统设计四川大学本科毕业论文基于J2EE的旅游网站后台管理系统基于J2EE的旅游网站后台管理系统设计计算机科学与技术学生:XXXX指导老师:XXXXX[摘要]随着计算机技术的发展,许多行业对计算机的应用日益广泛,尤其以JAVA语言为基础的开发项目,比如软件开发,系统开发等,当前JAVA语言使用量几乎稳居世界第一。与JAVA相关框架层出不穷,基于JAVA语言的优势,对其的研究应该更为广泛。本文对基于J2EE的旅游网站后台管理系统开发详细进行介绍,其中按层次划分,需求分析层包括用户需求、功能需求、非功能需求、配置需求,在这四个方法进行了详细的介绍;系统结构层,对本系统开发框架进行了详细介绍,包括类模型设计和数据表设计以及类之间方法调用关系,过程有相应的图据以参考。本文对技术性知识,主要是J2EE开源框架,据权威人士分析,J2EE技术当前发展普及全球并会继续发展,其技术会对于将会投入到软件开发方向上的人员来说,重要性毫无疑问,其将会带来的机会可想而知,所以本文也就使用到的J2EE框架进行介绍。主要是对Struts2、Spring、Hibernate三大开源框架的基本功能特性和原理进行分析,同时也对Ajax交互技术进行有效分析,最后总结本次开发项目收获。[关键字] 系统 J2EE Ajax 框架TravelwebsitebackstagemanagementsystembasedonJ2EEisdesignedComputerscience&technologyStudent: ZHANG Xxx Adviser: CHEN Xxx-xxx[Abstract]Withthedevelopmentofcomputertechnology,Manyindustryincreasinglyextensiveapplicationofcomputer,especiallybasedonJAVAdevelopmentprojects,suchassoftwaredevelopment,systemdevelopment,suchastheJAVAlanguageusagealmostranksfirstintheworld.AssociatedwiththeJAVAframeworksemergeinendlessly,basedontheadvantagesofJAVAlanguage,theresearchshouldbemorewidely.Inthispaper,thetravelwebsitebackstagemanagementsystembasedonJ2EEdevelopmentisdescribedindetail,whichaccordingtolevelclassification,requirementanalysislayerincludinguserneeds,functionalrequirements,non-functionalrequirements,configurationrequirements,thefourmethodsisintroducedindetail;Systemstructurelayer,thisframeworksystemdevelopmentareintroducedindetail,includingmodeldesignanddatatabledesignandclassrelationshipsbetweenmethodcalls,whichprocesshavecorrespondingfigurereference.Inthispaper,thetechnicalknowledge,mainlyistheJ2EEopensourceframework,accordingtoauthorities,J2EEtechnologydevelopmentcurrentglobalpopularityandwillcontinuetodevelop,thetechnologyforthepersonnelwillbeinvolvedinsoftwaredevelopmentdirection,importanceandthereisnodoubtthatitwillbringtheopportunity,sothispaperalsointroducestheJ2EEframeworkisusedto.Mainlytothethreeopensourceframeworkstruts2,Spring,Hibernate,thebasicfeatureandprinciplewereanalyzed,andatthesametimealsotoAjaxinteractiontechniquesforeffectiveanalysis,finallysummarizesthedevelopmentproject.[KeyWords] System J2EE Ajax framwork目录TOC\o"1-3"\f\h\z\u233111综述 5131982旅游网站后台管理系统设计 776302.1旅游网站管理系统介绍 7203522.2旅游网站后台管理系统需求分析 8179232.2.1用户需求 8268502.2.2功能需求 8126732.2.3非功能需求 10139822.2.4配置需求 10292582.3系统框架结构设计 11262182.3.1系统整体框架概述 11153782.3.2数据表设计 12283422.3.3系统的基本类模型设计 1479092.4系统的基本功能实现 18197642.4.1配置文件 18352.4.2添加功能 21323682.4.3查询功能 2331132.4.4更新功能 2480162.4.5删除功能 27282473操作界面展示 29285363.1功能界面 29190443.2详细操作界面 30255714主要使用技术介绍 3323224.1Ajax技术 33131044.2SSH技术 33234915总结 3620855参考文献 3713697声明 3816290致谢 3911635附录 401综述随着计算机技术的发展,许多行业对计算机的应用日益广泛,尤其以JAVA为基础的开发项目,比如软件开发,系统开发等,当前JAVA语言使用量几乎稳居世界第一。与JAVA相关框架层出不穷,基于JAVA语言的优势,对其的研究应该更为广泛。作为一名大学计算机专业毕业的并且对JAVA尤其是J2EE方向的技术充满浓厚兴趣的的学生,更应该学习掌握先前的技术(Struts2,Spring,Hibernate),并进行实际项目开发,获得更多的开发经验,从而对编程尤其是JAVA方向的编程思想更深刻透彻,为自己以后在JAVA方向的开发研究奠定基础。本次开发的旅游网站后台管理系统基于J2EE,目的就是学习J2EE的Struts2、Hibernate、Spring三大开源框的使用,希望通过此次课题设计不断提高自己对J2EE的掌握程度,积累更多的实践经验。对于J2EE的发展现状及前景,在旧金山举行的2011年JavaOne大会上,甲骨文公司展示了其推动Java平台企业版(JavaEE)发展的最新成果,JavaEE继续大受欢迎,并有越来越多的开发人员采用,包括OracleGlassFishServer在内的JavaEE组件获得了4000万次下载,自2009年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的广泛产品组合以及可内部部署和云部署的大规模企业应用而设计的服务器,甲骨文在2011年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="mons.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> <prop key="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><actionname="topBelong"class=".action.TopBelongAction"> <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){ StringuploadFileName="\\upLoadImages"; Stringrealpath=ServletActionContext.getServletContext().getRealPath( uploadFileName); uploadImage(realpath,pw); i.setImagePath(uploadFileName+"\\"+this.getImageFileName()); } 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){ StringuploadFileName="\\upLoadImages"; Stringrealpath=ServletActionContext.getServletContext().getRealPath( uploadFileName); uploadImage(realpath,pw); i.setImagePath(uploadFileName+"\\"+this.getImageFileName()); } 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)和事务(transaction)管理)进行内聚性的开发,应用对象只实现它们应该做的——完成业务逻辑——仅此而已,它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持[3]。Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库,Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任[4]。其核心接口:图3-2SSH整合:集成SSH框架的系统从职责上分为四层,表示层、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论