43
第第第 SSH 第 第第

第九讲 SSH 整体结构

Embed Size (px)

DESCRIPTION

第九讲 SSH 整体结构. 主要内容. SSH 整体结构 STRUTS Servlet VS Struts 实例 MVC Struts 的 MVC 实现 Struts 的核心技术 显示层 Web 框架选型 HIBERNATE 非 Hibernate VS Hibernate 实例对比 Hibernate 概念及其优势 Hibernate 核心知识 Hibernate 注意事项 SPRING 不用 Spring 和实用 Spring 实例对比 Spring AOP 实现 Spring 主要用途 - PowerPoint PPT Presentation

Citation preview

Page 1: 第九讲  SSH 整体结构

第九讲 SSH 整体结构

Page 2: 第九讲  SSH 整体结构

• SSH 整体结构• STRUTS

– Servlet VS Struts 实例 – MVC– Struts 的 MVC 实现– Struts 的核心技术– 显示层 Web 框架选型

• HIBERNATE– 非 Hibernate VS Hibernate 实例对比– Hibernate 概念及其优势– Hibernate 核心知识– Hibernate 注意事项

• SPRING– 不用 Spring 和实用 Spring 实例对比– Spring AOP 实现– Spring 主要用途

• Demo 类似淘宝电子商务网站的后台的一个产品分类功能模块

主要内容

Page 3: 第九讲  SSH 整体结构

SSH 整体结构

Page 4: 第九讲  SSH 整体结构

• Struts VS servlet 实例 • MVC

• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型

Struts 简介

Page 5: 第九讲  SSH 整体结构

• Login.jsp

Struts VS. Servlet( 一 )

Page 6: 第九讲  SSH 整体结构

• Login_success.jsp

• Login_error.jsp

Struts VS. Servlet( 二 )

Page 7: 第九讲  SSH 整体结构

• Servlet 实现

Struts VS. Servlet( 三 )

Page 8: 第九讲  SSH 整体结构

• Struts 的实现• Action

• ActionForm

Page 9: 第九讲  SSH 整体结构

• Struts-config.xml

Struts VS. Servlet( 四 )

Page 10: 第九讲  SSH 整体结构

• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型

Page 11: 第九讲  SSH 整体结构

Browser

Controller

Model

View

Http Request(Get, Post)

调用

Forward

获取Http Response

MVC

Page 12: 第九讲  SSH 整体结构

• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型

Struts 简介

Page 13: 第九讲  SSH 整体结构

Struts 的 MVC

Page 14: 第九讲  SSH 整体结构

• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型

Struts 简介

Page 15: 第九讲  SSH 整体结构

• ActionForm

• Action

• Strut-config.xml

• Struts Taglib

• JSTL

• I18N

Struts 核心技术

Page 16: 第九讲  SSH 整体结构

• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型

Struts 简介

Page 17: 第九讲  SSH 整体结构

• JSF• Spring MVC• Stripes• Sturts1.x• Struts2.0• Tapestry• Wicket• Flex• GWT• Seam• Ext

显示层 Web 框架选型

Page 18: 第九讲  SSH 整体结构
Page 19: 第九讲  SSH 整体结构

• Ajax 支持• 维护性• 可测试性• 你项目的特性• 国际化支持• 社区和支持• 可用的现成工具• 就业机会

选择因素

Page 20: 第九讲  SSH 整体结构

• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项

Hibernate 简介

Page 21: 第九讲  SSH 整体结构

• 非 Hibernate

Page 22: 第九讲  SSH 整体结构

• LogMessage.java

Hibernate 实例 ( 一 )

Page 23: 第九讲  SSH 整体结构

• LogMessage.hbm.xml

Hibernate 实例 ( 二 )

Page 24: 第九讲  SSH 整体结构

• hibernate.cfg.xml

Hibernate 实例 ( 三 )

Page 25: 第九讲  SSH 整体结构

• LogMessageDAOImpl.java

Page 26: 第九讲  SSH 整体结构

• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项

Hibernate 简介

Page 27: 第九讲  SSH 整体结构

• 优势:– 完全屏蔽 sql ,你操作的都是对象,面向对象的

思想得到了很好体现– 对象中的继承等各种关系都可以表示出来,生成

数据库时候自动生成,数据库可以最后才有– 通过 hibernate 层你可以进行很多优化,比如缓

存,懒加载等等结论: Hibernate 给我们提供了利用面向对象的思

想来操作关系型数据的接口,简单说就是一个O/R 映射框架

Hibernate 概念及其优势

Page 28: 第九讲  SSH 整体结构

• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项

Hibernate 简介

Page 29: 第九讲  SSH 整体结构

Hibernate 核心知识(一)

Page 30: 第九讲  SSH 整体结构

• Hibernate 的对象生命周期• Hibernate 基本映射• Hibernate 高级映射

– 一对多– 一对一– 多对一– 多对多– 组合主键– 集合映射

• Hibernate 的 lazy 和级联• Hibernate 的继承策略• Hibernate 悲观锁和乐观锁• HQL• Hibernate 的缓存策略• Hibernate 的 Fetch 策略

Hibernate 核心知识(二)

Page 31: 第九讲  SSH 整体结构

• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项

Hibernate 简介

Page 32: 第九讲  SSH 整体结构

• 千万注意对象化编程思想,先有对象,数据库最后才有• SessionFactory 的创建非常消耗资源,整个应用一般

只要一个 SessionFactory 就够了,只有多个数据库的时候才会使用多 SessionFactory 。

• 在整个应用中, Session 和事务应该能够统一管理。( Spring 为 Hibernate 提供了非常好的支持)

• 将所有的集合属性配置设置为懒加载( lazy=”true” )。在 hibernate2.x 版本中, lazy 默认值是“ false”, 但hibernate3.x 已经将 lazy 的默认改为“ true” 了。

Hibernate 注意事项(一)

Page 33: 第九讲  SSH 整体结构

• 在定义关联关系时,集合首选 Set ,如果集合中的实体存在重复,则选择 List (在定义配置文件时,可以将 List 定义为 bag ),数组的性能最差。

• HQL 子句本身大小写无关,但是其中出现的类名和属性名必须注意大小写区分。

• 如果要精通 Hibernate ,熟练掌握关系数据库理论和 SQL 是前提条件

Hibernate 注意事项(二)

Page 34: 第九讲  SSH 整体结构

• 不用 Spring 和使用 Spring 实例对比• Spring AOP 和 IOC DI

• Spring 主要用途

Spring 简介

Page 35: 第九讲  SSH 整体结构

不用 Spring 和使用 Spring 实例对比

Page 36: 第九讲  SSH 整体结构

• 在配置文件中配置一下,所有 dao 的实现中都可以省略掉一些相同代码

加 Spring 进行改进 ( 一)

Page 37: 第九讲  SSH 整体结构

不用 Spring( 一 )

Page 38: 第九讲  SSH 整体结构

不用 Spring( 二 )

Page 39: 第九讲  SSH 整体结构

• Crossing cutting concern

• Aspect

• Advice

• JoinPoint

• pointcut

Spring 的 AOP 实现(一)

Page 40: 第九讲  SSH 整体结构

• IUserManager.java

• IMySecurityManager.java

Spring 的 AOP 实现(二)

Page 41: 第九讲  SSH 整体结构

• MySecurityManagerImpl.java

Spring 的 AOP 实现(三)

Page 42: 第九讲  SSH 整体结构

• 利用 Spring 来创建对象( JavaBean 工厂)

• 利用 Spring 构建业务逻辑层– 管理依赖关系–适应需求变更

• 利用 Spring 进行事务处理

Spring 的主要用途

Page 43: 第九讲  SSH 整体结构

• 基于 ssh 框架能带来很多好处• 总之,在 web开发中你会感觉到无穷无尽

的乐趣的

SSH 架构总结