第十七章 Struts+Spring+Hibernate构建电子商务系统

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

——Windows98与Office2000(第二版) 林卓然编著 中山大学出版社
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
基于SSH的web开发 AND 企业级WEB应用开发新技术
J2EE Struts 和Spring 的区别.
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
基于R和pentaho的全套开源BI平台的实现
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
SVN的基本概念 柳峰
第二讲 搭建Java Web开发环境 主讲人:孙娜
面向对象建模技术 软件工程系 林 琳.
SVN服务器的搭建(Windows) 柳峰
SQL Injection.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Visual Studio Team System 简介
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第17章 网站发布.
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
PaPaPa项目架构 By:Listen 我在这.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
供应商登录CJLR SRM系统入口 CJLR供应商仅可以在互联网上访问SRM系统,无法在CJLR内网登录SRM系统.
DevDays ’99 The aim of this mission is knowledge..
任务1-3 使用Dreamweaver创建ASP网页
产品防伪防窜管理系统 运营中心操作指引 信息管理部.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
SOA – Experiment 2: Query Classification Web Service
编程作业3:网页正文抽取 (10分).
SDA(Standard development architecture)框架介绍
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
基于struts和hibernate的网上新 闻发布系统
Web安全基础教程
第四章 团队音乐会序幕: 团队协作平台的快速创建
PRESENTED BY OfficePLUS
VisComposer 2019/4/17.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
商业分析平台-语义元数据 用友集团技术中心 边传猛 2013年 11月 06日.
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
Web安全基础教程
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
Logo 思维 力量 商务展示·企业内训.
第十四章 Spring应用详解 在本章的内容中,首先介绍Spring核心技术控制 反转和面向切面编程的基本知识,在Web方面,详 细介绍了如何使用Spring实现MVC,然后对Spring 中的数据库操作进行简单的介绍,在本章的最后, 展示了如何在Spring中进行事务处理,通过本章 内容的学习,读者可以从整体上了解Spring的基.
Chapter 18 使用GRASP的对象设计示例.
Touch Github = Touch the World
WEB321 使用ASP.NET2.0快速开发电子商务网站
OpenStack vs CloudStack
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 UNIX文件系统.
第十七讲 密码执行(1).
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
《NIOS II那些事儿》视频教程(三) -- NIOS II开发初探
LOGO HERE 单击此处添加 您的标题标题标题 PRESENTED BY JANE DOE
第十三章 Struts应用详解 在本章的内容中,将主要介绍Struts的基本知识, 对Struts处理用户请求过程的各个环节进行了详 细的介绍,并且还介绍在Struts中使用Validator、 Tiles等其他框架的基本方法,通过本章内容的学 习,读者可以掌握Struts的基本知识,具备.
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
百万行、千万行数据查询教程 老黄牛.
Presentation transcript:

第十七章 Struts+Spring+Hibernate构建电子商务系统 在本章内容中,将以Hibernate Jpetstore为基础, 详细介绍在实际的开发过程中,如何综合使用 Struts、Spring、Hibernate这三种技术,对于开 发过程中的主要步骤,在接下来的内容中将会详 细介绍。

17.1 电子商务简介 在互联网日益发达的今天,电子商务的应用也得 到了日益广泛的应用,例如目前比较知名的电子 商务网站卓越、易趣、阿里巴巴等,这些电子商 务网站都取得了巨大的成功,消费者也逐渐接收 了网上购物的方式,这都促使电子商务应用的快 速发展。在本节的内容中,将简单电子商务应用 系统的基本知识。

17.1.1 电子商务简介 电子商务(Electronic Business)就是基于互联 网的商业活动,它不仅包括基于互联网的商品服 务交易,而且还包括将企业内外部关系转化为创 造价值和开发市场的机会,包括通过互联网实现 原料采购、产品生产、产品展示、物流、销售等 各个生产的环节。电子商务的物理基础包括计算 机互联网、金融电子系统、物流配送系统、安全 保障系统等,电子商务通过信息流、资金流和物 流来实现。可以划分为企业间的电子商务和企业 对消费者的电子商务等。

17.1.2 电子商务应用范围 目前电子商务主要应用于金融、证券、保险、制 造业、服务行业以及IT行业等。在这些行业中已 经能够很好的通过互联网辅助业务的处理,尤其 是在金融证券等行业,电子商务已经涉及的日常 工作的每个方面。

17.2 Hibernate Jpetstore简介 在本章的内容中,将以Hibernate Jpetstore为基 础介绍使用Struts、Spring、Hibernate开发电子 商务网站的基本流程,接下来将简单介绍 Hibernate Jpetstore的基本情况。

17.2.1 Hibernate Jpetstore简介 Jpetstore是Spring开发包中的一个示例程序,在 这个示例程序中采用了Struts、Spring、iBatis 实现了一个简单的电子商务系统,在Java开发者 社区中,使用Hibernate替换了Jpetstore中的持 久层iBatis,这个改造以后的项目就是Hibernate Jpetstore系统,Hibernate Jpetstore成为Java 开发者社区中的一个开源项目,项目的具体信息 可以在https://hjpetstore.dev.java.net/查看。

17.2.2 获取Hibernate Jpetstore示例代码 Hibernate Jpetstore是一个开源项目,系统的源 代码可以在项目的CVS服务器中获取。这个项目使 用的开发工具是NetBeans,在本书介绍的内容中, 使用的开发工具是Eclipse,这两种工具的工程信 息文件是不同的,项目文件组织方式也有所不同, 其中Eclipse中的WebRoot目录对应着NetBeans中 的Web目录,其他的部分是没有区别的。

17.3 Hibernate Jpetstore系统总体设计

17.3.1 功能分析 Hibernate Jpetstore系统是一个宠物商店的示例 程序,在这个示例项目中,展示各种类型的宠物, 用户可以在查询、浏览系统中提供的宠物,挑选 并定购喜欢的宠物。(具体内容请参照书。)

17.3.2 系统整体架构--表示层 表示层也叫视图层,在Hibernate Jpetstore这个 系统中,表示层是用JSP、JSTL标签库和Struts实 现的。在这个系统中,表示层的文件包括 hibernateJpetstore/web/WEB-INF/jsp/struts/ 目录下的所有文件,这个目录下是系统中用到的 所有JSP页面,同时 hibernateJpetstore/web/index.jsp这个页面是 Hibernate Jpetstore这个系统中的前端跳转首页, 用户可以通过这个页面跳转到JSP文件所在的目录。 (具体内容请参照书。)

17.3.3 系统整体架构--控制层 控制层出于表示层和数据层之间,它的功能是把 表示层和数据层联系起来,降低表示层和数据层 的联系。这也正是MVC开发模式中一直强调的一点。 在Hibernate Jpetstore中,控制层主要由以下几 个部分组成。(具体内容请参照书。)

17.3.4 系统整体架构--数据层 在这个示例系统中,数据层由以下几部分构成。 17.3.4 系统整体架构--数据层 在这个示例系统中,数据层由以下几部分构成。 hibernateJpetstore/src/org.springframework/samples/ jpetstore/dao/下的所有文件。 hibernateJpetstore/src/org.springframework/samples/ jpetstore/domain/下的所有文件 hibernateJpetstore/web/WEB-INF/目录下的 dataAccessContext-hibernate.xml、jdbc.properties和 applicationContext.xml这三个文件。(具体内容请参照 书。)

17.4 Hibernate Jpetstore系统数据层设计

17.4.1 数据库ER图 如图17.4所示就是这个示例系统中的数据库ER图。 其中,account描述了用户账号的信息,orders描 述了用户订单的信息,lineitem描述了订单中每 一项的信息,item描述了宠物的详细信息, supplier描述了供应商的信息,inventory描述了 库存信息。

17.4.2 数据库SQL脚本 完成了数据库关系的设计以后,就需要提供对应 的数据库SQL脚本,下面就是这个示例系统中数据 库所对应的SQL脚本,通过这些脚本可以创建系统 所需要的基本的数据库表结构。(具体内容请参 照书。)

17.4.3 Hibernate数据库映射 在Hibernate中,可以把对数据库的操作模拟成对 对象的操作,所有的数据库操作都可以通过对象 操作实现,在Hibernate中,之所以能实现这样的 功能,最关键的部分就是Hibernate可以把数据库 的表结构和Java对象映射起来,用Java对象的属 性描述数据库表中的字段,用Java对象之间的关 系描述数据库表之间的关系,下面以用户表 account为例,展示Hibernate中数据库映射的基 本方法。(具体内容请参照书。)

17.4.4 DAO调用序列 在Hibernate Jpetstore这个示例项目中,对数据 库的操作全都集中在各个DAO中,在程序中可以调 用这些DAO进行数据库的操作,(具体内容请参照 书。)

17.4.5 DAO接口设计及Hibernate DAO 实现 对于DAO的实际,一般情况来说,每个DAO都会包 含所有的CRUD(即增删改查操作),利用这些基 本功能就可以组成各种复杂的数据库操作,但是 在实际的开发过程中,除了基本的CRUD以外,为 了使用上层的要求,需要根据需求提供更多其他 的方法,在这些方法中可以执行比基本CRUD更多 的操作。(具体内容请参照书。)

17.5 Hibernate Jpetstore系统控制层设计 在传统Struts应用中,控制层组件一般情况下指 的是Action,而ActionForm只是用来收集表示层 的数据,并把这些数据传递给Action。在这个示 例程序中,引入了Spring,所以就可以使用 Spring的依赖注入、AOP以及声明式的事务管理机 制。在本节接下来的内容中,将介绍Spring的这 些特性和常规的Struts的功能。

17.5.1 通过Spring AOP实现邮件发送 Spring AOP的内容在本书的14.3小节中已经做了 详细的介绍,在Hibernate Jpetstore这个示例系 统中,有两个地方用到了AOP的知识,一个是邮件 发送操作中用到,另一个用到AOP的地方是声明式 的事务处理,事务处理在接下来的小节中将详细 介绍,在这里介绍Hibernate Jpetstore中使用 AOP进行邮件发送功能的具体实现方法。(具体内 容请参照书。)

17.5.2 Spring的声明式事务管理 在Hibernate Jpetstore这个示例项目中,还有一 个地方使用到了AOP的知识,这就是在Spring中的 声明式事务管理,在这个示例项目中就使用了 Spring中的声明式事务管理机制。在Spring中使 用声明式事务管理的方法非常简单,仅仅通过 Spring上下文的配置即可。下面就是这个示例项 目中的声明式事务管理的具体配置信息。

17.5.3 Struts在控制层的功能 Aciton是Struts的核心组件,它负责这Struts控 制层的基本操作,在Action中可以调用业务层或 者是DAO完成具体的逻辑操作。在页面上的每一个 链接或者是表单都会对应这一个Action,在 Struts中每个Action都是 org.apache.struts.action.Action的子类,并且 需要重写execute()方法,在这个方法中调用业 务层或者是DAO来处理用户的请求。

17.6 Hibernate Jpetstore系统表示层设计 在Hibernate Jpetstore这个示例程序中,表示层 采用了Struts标签、JSTL和JSP页面相结合的处理 方法,采用JSTL的原因就是减少JSP页面上的Java 代码,而Struts的标签是执行某些Struts操作中 必不可少的,在本节内容中,将介绍这个示例程 序中表示层的实现方法。

17.6.1 Struts 表示层组件 FormBean 在Struts中,FormBean充当了表示层的组件,它 可以接收用户的表单输入,并且把表单的内容传 递给Action处理,FormBean和我们熟悉的 JavaBean非常类似,不同之处在于这些FormBean 都需要继承 org.apache.struts.action.ActionForm这个类, 而且在需要的时候还得重写其中的validate() 和reset()方法。

17.6.2 FormBean 类层次 于Aciton中的BaseAction类似,FormBean也提供 了一个基类,所有的FormBean只需要实现 BaseActionForm这个基类的指定约束,既可以复 用这个基类中的功能。这个基类ActionForm的具 体代码如下。

17.6.3 JSP+JSTL+Struts标签库实现信息展示 在Hibernate Jpetstore中,使用传统的JSP表态 包含指令,来包含进公共部分,如页眉,页脚及 导航区域等。所有以 Include 前缀命名的JSP都 用来被其他JSP页面包含的页面块。在这个示例程 序中,所有的页面结构如下所示。

17.6.4 在Struts中防止重复提交 在Struts中可以采用事务Token来放置用户表单的 重复提交,在Hibernate Jpetstore这个示例系统 中,用户提交订单的例子中就使用了事务Token来 放置用户的重复提交。在这个用户提交表单的时 候,要把用户输入的表单展示在确认页面中,如 果点 'Continue' 按钮,才会将订单插入到数据 库中,在这个处理过程中采用事务Token来避免用 户的重复提交。

17.7 小结 在本章中,以Hibernate Jpetstore为基础介绍了 综合使用Struts、Spring、hibernate进行电子商 务网站开发的基本方法。在这个示例项目中,不 仅综合使用了这三种技术,而且还使用了其他的 技术,在这个章节中仅仅是通过这个示例程序说 明开发电子商务应用系统的基本方法,读者可以 通过这个项目仔细揣摩,也可以到Hibernate Jpetstore项目的官方网站 https://hjpetstore.dev.java.net/查看关于这 个项目更多的信息。