Upload
lawrence-sanders
View
128
Download
0
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
第九讲 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 类似淘宝电子商务网站的后台的一个产品分类功能模块
主要内容
SSH 整体结构
• Struts VS servlet 实例 • MVC
• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型
Struts 简介
• Login.jsp
Struts VS. Servlet( 一 )
• Login_success.jsp
• Login_error.jsp
Struts VS. Servlet( 二 )
• Servlet 实现
Struts VS. Servlet( 三 )
• Struts 的实现• Action
• ActionForm
• Struts-config.xml
Struts VS. Servlet( 四 )
• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型
Browser
Controller
Model
View
Http Request(Get, Post)
调用
Forward
获取Http Response
MVC
• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型
Struts 简介
Struts 的 MVC
• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型
Struts 简介
• ActionForm
• Action
• Strut-config.xml
• Struts Taglib
• JSTL
• I18N
Struts 核心技术
• Struts VS servlet 实例 • MVC• Struts 的 MVC 实现• Struts 的核心技术• 显示层 Web 框架选型
Struts 简介
• JSF• Spring MVC• Stripes• Sturts1.x• Struts2.0• Tapestry• Wicket• Flex• GWT• Seam• Ext
显示层 Web 框架选型
• Ajax 支持• 维护性• 可测试性• 你项目的特性• 国际化支持• 社区和支持• 可用的现成工具• 就业机会
选择因素
• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项
Hibernate 简介
• 非 Hibernate
• LogMessage.java
Hibernate 实例 ( 一 )
• LogMessage.hbm.xml
Hibernate 实例 ( 二 )
• hibernate.cfg.xml
Hibernate 实例 ( 三 )
• LogMessageDAOImpl.java
• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项
Hibernate 简介
• 优势:– 完全屏蔽 sql ,你操作的都是对象,面向对象的
思想得到了很好体现– 对象中的继承等各种关系都可以表示出来,生成
数据库时候自动生成,数据库可以最后才有– 通过 hibernate 层你可以进行很多优化,比如缓
存,懒加载等等结论: Hibernate 给我们提供了利用面向对象的思
想来操作关系型数据的接口,简单说就是一个O/R 映射框架
Hibernate 概念及其优势
• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项
Hibernate 简介
Hibernate 核心知识(一)
• Hibernate 的对象生命周期• Hibernate 基本映射• Hibernate 高级映射
– 一对多– 一对一– 多对一– 多对多– 组合主键– 集合映射
• Hibernate 的 lazy 和级联• Hibernate 的继承策略• Hibernate 悲观锁和乐观锁• HQL• Hibernate 的缓存策略• Hibernate 的 Fetch 策略
Hibernate 核心知识(二)
• 非 Hibernate VS Hibernate 实例对比• Hibernate 概念及其优势• Hibernate 核心知识• Hibernate 注意事项
Hibernate 简介
• 千万注意对象化编程思想,先有对象,数据库最后才有• SessionFactory 的创建非常消耗资源,整个应用一般
只要一个 SessionFactory 就够了,只有多个数据库的时候才会使用多 SessionFactory 。
• 在整个应用中, Session 和事务应该能够统一管理。( Spring 为 Hibernate 提供了非常好的支持)
• 将所有的集合属性配置设置为懒加载( lazy=”true” )。在 hibernate2.x 版本中, lazy 默认值是“ false”, 但hibernate3.x 已经将 lazy 的默认改为“ true” 了。
Hibernate 注意事项(一)
• 在定义关联关系时,集合首选 Set ,如果集合中的实体存在重复,则选择 List (在定义配置文件时,可以将 List 定义为 bag ),数组的性能最差。
• HQL 子句本身大小写无关,但是其中出现的类名和属性名必须注意大小写区分。
• 如果要精通 Hibernate ,熟练掌握关系数据库理论和 SQL 是前提条件
Hibernate 注意事项(二)
• 不用 Spring 和使用 Spring 实例对比• Spring AOP 和 IOC DI
• Spring 主要用途
Spring 简介
不用 Spring 和使用 Spring 实例对比
• 在配置文件中配置一下,所有 dao 的实现中都可以省略掉一些相同代码
加 Spring 进行改进 ( 一)
不用 Spring( 一 )
不用 Spring( 二 )
• Crossing cutting concern
• Aspect
• Advice
• JoinPoint
• pointcut
Spring 的 AOP 实现(一)
• IUserManager.java
• IMySecurityManager.java
Spring 的 AOP 实现(二)
• MySecurityManagerImpl.java
Spring 的 AOP 实现(三)
• 利用 Spring 来创建对象( JavaBean 工厂)
• 利用 Spring 构建业务逻辑层– 管理依赖关系–适应需求变更
• 利用 Spring 进行事务处理
Spring 的主要用途
• 基于 ssh 框架能带来很多好处• 总之,在 web开发中你会感觉到无穷无尽
的乐趣的
SSH 架构总结