基于J2EE的旅游网站后台管理系统设计论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科生毕业论文(设计)
题目基于J2EE的旅游网站后台管理系统设计
学院计算机学院
专业计算机科学与技术
学生姓名 XX XX
学号 XXXXXXXXXX 年级 2009级
指导教师 XXXXXXXXX
教务处制表
二Ο一三年五月二十日
基于J2EE的旅游网站后台管理系统设计
计算机科学与技术
学生:XXXX 指导老师:XXXXX
[摘要] 随着计算机技术的发展,许多行业对计算机的应用日益广泛,尤其以JAVA语言为基础的开发项目,比如软件开发,系统开发等,当前JAVA语言使用量几乎稳居世界第一。

与JAVA 相关框架层出不穷,基于JAVA语言的优势,对其的研究应该更为广泛。

本文对基于J2EE的旅游网站后台管理系统开发详细进行介绍,其中按层次划分,需求分析层包括用户需求、功能需求、非功能需求、配置需求,在这四个方法进行了详细的介绍;系统结构层,对本系统开发框架进行了详细介绍,包括类模型设计和数据表设计以及类之间方法调用关系,过程有相应的图据以参考。

本文对技术性知识,主要是J2EE开源框架,据权威人士分析,J2EE技术当前发展普及全球并会继续发展,其技术会对于将会投入到软件开发方向上的人员来说,重要性毫无疑问,其将会带来的机会可想而知,所以本文也就使用到的J2EE框架进行介绍。

主要是对Struts2、Spring、Hibernate三大开源框架的基本功能特性和原理进行分析,同时也对Ajax 交互技术进行有效分析,最后总结本次开发项目收获。

[关键字] 系统J2EE Ajax 框架
Travel website backstage management system based on J2EE
is designed
Computer science & technology
Student: ZHANG Xxx Adviser: CHEN Xxx-xxx
[Abstract] With the development of computer technology,Many industry increasingly extensive application of computer, especially based on JA V A development projects, such as software development, system development, such as the JA V A language usage almost ranks first in the world. Associated with the JA V A frameworks emerge in endlessly, based on the advantages of JA V A language,
the research should be more widely. In this paper, the travel website backstage management system based on J2EE development is described in detail, which according to level classification, requirement analysis layer including user needs, functional requirements, non-functional requirements, configuration requirements, the four methods is introduced in detail; System structure layer, this framework system development are introduced in detail, including model design and data table design
and class relationships between method calls, which process have corresponding figure reference. In
this paper, the technical knowledge, mainly is the J2EE open source framework, according to authorities, J2EE technology development current global popularity and will continue to develop, the technology for the personnel will be involved in software development direction, importance and there
is no doubt that it will bring the opportunity, so this paper also introduces the J2EE framework is used to. Mainly to the three open source framework struts 2, Spring, Hibernate, the basic feature and principle were analyzed, and at the same time also to Ajax interaction techniques for effective analysis, finally summarizes the development project.
[Key Words]System J2EE Ajax framwork
目录
1 综述 (4)
2 旅游网站后台管理系统设计 (6)
2.1 旅游网站管理系统介绍 (6)
2.2 旅游网站后台管理系统需求分析 (8)
2.2.1 用户需求 (8)
2.2.2 功能需求 (8)
2.2.3 非功能需求 (10)
2.2.4 配置需求 (10)
2.3 系统框架结构设计 (10)
2.3.1 系统整体框架概述 (10)
2.3.2 数据表设计 (12)
2.3.3 系统的基本类模型设计 (14)
2.4 系统的基本功能实现 (18)
2.4.1 配置文件 (18)
2.4.2 添加功能 (21)
2.4.3 查询功能 (23)
2.4.4 更新功能 (24)
2.4.5 删除功能 (27)
3 操作界面展示 (29)
3.1 功能界面 (29)
3.2 详细操作界面 (30)
4 主要使用技术介绍 (33)
4.1 Ajax技术 (33)
4.2 SSH技术 (33)
5 总结 (36)
参考文献 (37)
声明 (38)
致谢 (39)
附录..................................................................................... 错误!未定义书签。

1 综述
随着计算机技术的发展,许多行业对计算机的应用日益广泛,尤其以JAVA为基础的开发项目,比如软件开发,系统开发等,当前JAVA语言使用量几乎稳居世界第一。

与JAVA 相关框架层出不穷,基于JAVA语言的优势,对其的研究应该更为广泛。

作为一名大学计算机专业毕业的并且对JAVA尤其是J2EE方向的技术充满浓厚兴趣的的学生,更应该学习掌握先前的技术(Struts2,Spring,Hibernate),并进行实际项目开发,获得更多的开发经验,从而对编程尤其是JAVA方向的编程思想更深刻透彻,为自己以后在JAVA方向的开发研究奠定基础。

本次开发的旅游网站后台管理系统基于J2EE,目的就是学习J2EE的Struts2、Hibernate、Spring三大开源框的使用,希望通过此次课题设计不断提高自己对J2EE的掌握程度,积累更多的实践经验。

对于J2EE的发展现状及前景,在旧金山举行的2011年JavaOne大会上,甲骨文公司展示了其推动Java 平台企业版(Java EE)发展的最新成果,Java EE 继续大受欢迎,并有越来越多的开发人员采用,包括Oracle GlassFish Server在内的Java EE组件获得了4000万次下载,自2009年12月推出以来,6个主要IT厂商已经推出了经过认证、开源和商业实施的Java EE 6,使其成为迄今为止最迅速获得采用的平台产品,作为下一代Java EE, Java EE 7进展顺利,其中,有超过20个的不同参与企业和数百名工程师通过Java 社区(JCP)对10个活跃的Java规范要求(JSRs)进行了开发处理,Java EE 7 JSRs 包括:Java EE 7 平台, Java Persistence API 2.1, JAX-RS 2.0, 用于RESTful网络服务的 Java API, Servlet 3.1, 表达语言 3.0, Java 信息服务 2.0, JavaServer Faces 2.2, Enterprise JavaBeans 3.2, 面向Java EE 1.1的Contexts and Dependency Injection , Bean Validation 1.1.等,Java EE 7专家组也在寻求把其他JSRs加入到Java EE 7的可能性,这些JSRs包括JCache 1.0 – Java Temporary Caching API, Concurrency Utilities 1.0, Java 状态管理1.0 和Java Identity API 1.0。

Java EE 7旨在进一步增强Java EE 平台的云环境,因此,基于Java EE-7的应用和产品将能够在私有云和公有云中更方便地操作,并通过支持多用户租用和弹性使用(如平行扩展)等功能来实现功能即服务,作为Java EE的参考实施,GlassFish服务器不仅仅是全面的Java EE 6实施,(开源版是GlassFish 服务器开源版,商业版是Oracle GlassFish服务器),还为即将推出的Java EE 7提供了坚实的基础,Oracle GlassFish服务器完善了Oracle WebLogic 服务器 11g,后者是一款专门为运行Oracle 融合中间件11g的广泛产品组合以及可内部部署和云部署的大规模企业应用而设计的服务器,甲骨文在2011 年JavaOne大会的136个联合研讨会、BOF和动手实验室,以及JavaOne展览馆中对Java EE及相关技术进行了展示。

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 系统用例图
下面以本次开发的功能划分,分为添加、读取、更新、删除四个主要功能。

从功能层面上来划分的话,四个功能操作的数据以及中间涉及的方法调用流程大体相似。

本旅游网站的后台管理基本功能如下:
A.基本信息的添加:包括景点基本信息、图片基本作息、视频基本信息、线路基本信息添
加。

主要是用户或者管理员通过JSP页面进行数据录入并提交页面,由
Struts2的filter拦截进入Struts2的action对应方法进行算是,然后
调用Hibernate相关方法直接在数据库里进行插入并将结果返回到相应的
J SP页面。

图2-2用例图
B.基本信息的读取:包括景点基本信息、图片基本信息、视频基本信息、线路基本信息、
用户相关信息等。

主要是用户或者管理员通过JSP页面进行数据录入并提
交页面,由Struts2的filter拦截进入Struts2的action对应方法进行
算是,然后调用Hibernate相关方法直接在数据库里进行插入并将结果返
回到相应的JSP页面。

图2-3用例图
C.基本信息的更新:包括景点基本信息、图片基本作息、视频基本信息、线路基本信息更
新。

主要是用户或者管理员通过JSP页面进行数据录入并提交页面,由
Struts2的filter拦截进入Struts2的action对应方法进行算是,然后
调用Hibernate相关方法直接在数据库里进行插入并将结果返回到相应的
J SP页面。

图2-4用例图
D.基本信息的删除:包括景点基本信息、图片基本作息、视频基本信息、线路基本信息删
除。

主要是用户或者管理员通过JSP页面进行数据录入并提交页面,由
Struts2的filter拦截进入Struts2的action对应方法进行算是,然后
调用Hibernate相关方法直接在数据库里进行插入并将结果返回到相应的
J SP页面。

图2-5用例图
2.2.3 非功能需求
a.功能性:在功能上要满足旅游网站的常规操作,对于客户来说,客户可以浏览查询自己需要的数据,可以下订单,可以将当前查询或者是收录的信息存储到自己的比如收藏夹,用记可以对自己的个人信息进行录入更改,还有进行一些自己数据的删除。

对于管理员来说,管理员有对旅游信息的添加查询更新删除的权限,还有对客户的部分信息进行管理,比如查看,甚者可以是删除,管理员也可以对自己的基本信息进行管理。

b.安全性:该系统功能上应具有较高的安全性,关键是要防止非法用户进入系统修改、删除后台数据,黑客切取用户资料,用户对景点信息的操作权限等。

为防止这些情况的发生,可在用户数据传输过程中用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 数据表设计
该系统存储信息类型较多,主要应用数据表及结构如下:
admin
info_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 系统包图
在以上的基础上,设计的类与包的关系图如下:
b.service包:
c.dao包:
d.daoimp包:
根据本项目的需求,对各类内部进行设计,由调用的关系图2-8可知,每一层的方法相同以满足调用,这里只写出action包中主要类的方法:
管理员类:
信息类别类:
信息详细类:
线路类别类:
线路详细类:
图片类别类:
图片详细类:
总属类:
视频类:
以Information类create方法调用为例,关系如下:
图2-10 方法调用详细
2.4 系统的基本功能实现
2.4.1 配置文件
配置文件主要有两个beans.xml和struts.xml。

其中beans.xml配置,主要实现数据源链接,SessionFactory以及HibernareTemplate的bean生成,代码如下:<bean id="dataSource" class="mons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/travel" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" />
<property name="packagesToScan">
<list>
<value>com.zhang.travel.model</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property> </bean>
其中struts.xml配置,实现页面跳转映射,主要代码如下:
<action name="basePage">
<result>/back/basepage.jsp</result>
</action>
<action name="adminLoginPage" class="com.zhang.travel.action.AdminAction">
</action>
<action name="topBelong" class="com.zhang.travel.action.TopBelongAction">
<result>/back/top_belong_create.jsp</result>
<result name="show">/back/top_belong_show.jsp</result>
<result name="update">/back/top_belong_update.jsp</result>
</action>
<action name="infoClass" class="ClassAction"> <result>/back/info_class_create.jsp</result>
<result name="show">/back/info_class_show.jsp</result>
<result name="update">/back/info_class_update.jsp</result>
</action>
<action name="information" class="rmationAction"> <result>/back/information_create.jsp</result>
<result name="show">/back/information_show.jsp</result>
<result name="update">/back/information_update.jsp</result>
</action>
<action name="pictureClass" class="com.zhang.travel.action.PictureClassAction"> <result>/back/picture_class_create.jsp</result>
<result name="show">/back/picture_class_show.jsp</result>
<result name="update">/back/picture_class_update.jsp</result>
</action>
<action name="pictureInfo" class="com.zhang.travel.action.PictureInfoAction"> <result>/back/picture_info_create.jsp</result>
<result name="show">/back/picture_info_show.jsp</result>
<result name="update">/back/picture_info_update.jsp</result>
</action>
<action name="video" class="com.zhang.travel.action.VideoAction"> <result>/back/video_create.jsp</result>
<result name="show">/back/video_show.jsp</result>
<result name="update">/back/video_update.jsp</result>
</action>
<action name="lineClass" class="com.zhang.travel.action.LineClassAction"> <result>/back/line_class_create.jsp</result>
<result name="show">/back/line_class_show.jsp</result>
<result name="update">/back/line_class_update.jsp</result>
</action>
<action name="lineInfo" class="com.zhang.travel.action.LineInfoAction">
<result>/back/line_info_create.jsp</result>
<result name="show">/back/line_info_show.jsp</result>
<result name="update">/back/line_info_update.jsp</result>
</action>
<action name="undoPage" class="com.zhang.travel.action.UndoAction">
<result>/back/undopage.jsp</result>
</action>
2.4.2 添加功能
不同数据相同操作方法相似,流程大致相同,这里只例举景点信息的功能方法。

景点详细信息的添加实现:
(InformationAction)
public String create() throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter pw = response.getWriter();
if(informationService.exists(this.getTitle())){
pw.write(title + " is already exists");
return null;
}
TopBelong tb = new TopBelong();
tb.setId(this.getTopId());
InfoClass ic = new InfoClass();
ic.setId(this.getClassId());
Information i = new Information();
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);
Date d = new Date();
String sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d);
i.setAddTime(sdf);
if (image != null) {
String uploadFileName = "\\upLoadImages";
String realpath = ServletActionContext.getServletContext().getRealPath(
uploadFileName);
uploadImage(realpath,pw);
i.setImagePath(uploadFileName + "\\" + this.getImageFileName());
}
informationService.create(i);
pw.write("information add success");
return null;
}
图2-11 信息创建方法调用图
该create()方法,封装Information对象调用InformationService的create()方法:(InformationService)
public void create(Information i){
informationDao.create(i);
}
该create()方法又调用InformationDao接口的create()方法
InformationDao的抽象方法
public void create(Information i);
该方法又由子类InformationDaoImp的create()方法去实现
public void create(Information i) {
hibernateTemplate.save(i);
}
最后由HibernateTemplate的save()方法,操作数据库并保存。

2.4.3 查询功能
景点信息的查询主要实现:
(InforamtionAction)
public String readAll(){
this.setInforamtions(informationService.readAll());
return "show";
}
在当前类里用一对象informations来存储查询结果信息,该方法调用InformationService的readAll()
(InformationService)
public List<Information> readAll(){
return informationDao.readAll();
}
此处用一集合来存储返回的对象,该方法调用InformationDao上级接口的readAll()方法,然后InformationDao用其子类的InformationDaoImp的实现
(InformationDaoImp)
public List<Information> readAll(){
return hibernateTemplate.find("from Information");
}
此方法用HQL语言直接操作数据库进行查询。

流程如图2-12.
图2-12 信息查询调用
2.4.4 更新功能
景点信息的更新主要实现:
(InformationAction)
public String update() throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter pw = response.getWriter();
boolean alreadyExists = false;
if(informationService.exists(this.getTitle())){
alreadyExists = true;
}
TopBelong tb = new TopBelong();
tb.setId(this.getTopId());
InfoClass ic = new InfoClass();
ic.setId(this.getClassId());
Information i = new Information();
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);
Date d = new Date();
String sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d);
i.setAddTime(sdf);
if (image != null) {
String uploadFileName = "\\upLoadImages";
String realpath = ServletActionContext.getServletContext().getRealPath(
uploadFileName);
uploadImage(realpath,pw);
i.setImagePath(uploadFileName + "\\" + this.getImageFileName());
}
String result = informationService.update(i, alreadyExists);
pw.write(result);
return null;
}
此方法同create()方法一样先封装Information对象,再调用InformationService 的update方法
(InformationService)
public String update(Information i, boolean alreadyExists){
return informationDao.update(i, alreadyExists);
}
然后接着调用InformationDao上级接口,用InformationDao的实现InformationDaoImp的update方法
(InformationDaoImp)
public String update(Information i, boolean alreadyExists){
Information info = (Information)hibernateTemplate.get(Information.class, i.getId());
if(alreadyExists && i.getId()!=info.getId()){
return "the " + i.getTitle() + " already exists";
}
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() + ": update success";
}
该update方法中,选通过传来的Information对象进行Load操作,将load出来的对象与当前对象比较,对数据变化了的进行更新操作,没变化的则不用更新。

流程如图2-13:
图2-13 信息更新调用图
2.4.5 删除功能
景点信息的删除主要实现:
(InformationAction)
public String delete() throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter pw = response.getWriter();
if(!informationService.existsById(this.getId())){
pw.write("the object already delete");
return null;
}
Information i = new Information();
i.setId(this.getId());
informationService.delete(i);
pw.write("delete success");
return null;
}
该方法封装一个由前后提交的具有id的Information对象,调用InformationService 的delete()
(InformationService)
public void delete(Information i){
informationDao.delete(i);
}
该方法调用InformationDao上级接口,用其子类InformationDaoImp的delete()方法实现
public void delete(Information i){
hibernateTemplate.delete(i);
}
该方法里调用HibernateTemplate的delete()方法实现最后数据库数据的删除。

流程如下2-14:
图2-14 信息删除调用图
3 操作界面展示
3.1 功能界面
功能栏目界面:分为图中8个模块
其中景点基本信息栏目详细如图所示,管理员可以对总类别、信息类别、信息详细进行CRUD操作
其中景区图片栏目详细如图所示,管理员可以对图片类别及图片详细进行CRUD操作
景点视频管理栏目,相对简单,仅对视频进行相关操作
其中旅游线路栏目如图,则对线路类别和线路详细进行CRUD操作
以下是用户相关的操作
3.2 详细操作界面
操作界面多,些处只举几个界面以观成效。

管理员登录界面:后面的红星代表必输选项
总类别添加界面:红色部分是用Ajax提交过后,交互的显示结果,表示添加成功
查看总类别界面:其查看列表分页显示,后面的更新、删除操作可以直接对当前对象进行
如更新总类别界面:当提交更新的资料后,在后台会先load与之相应的目标对象出来,再与之比较,对于变化了的属性进行更新,没变化的则不更新。

删除总类别界面:当点击删除时,会弹出提示窗口,是否真的要删除,点击确定则删除,点击取消则返回原来的界面。

相关文档
最新文档