560 likes | 730 Views
基于 SSH 的 web 开发 AND 企业 级 WEB 应用开发新技术. 导师:王千祥 姓名:吴凌 邮箱: wuling07@sei.pku.edu.cn. OUTLIne. SSH 整体结构 STRUTS Servlet VS Struts 实例 MVC Struts 的 MVC 实现 Struts 的核心技术 显示层 Web 框架选型 HIBERNATE 非 Hibernate VS Hibernate 实例对比 Hibernate 概念及其优势 Hibernate 核心知识 Hibernate 注意事项 SPRING
E N D
基于SSH的web开发AND企业级WEB应用开发新技术 导师:王千祥 姓名:吴凌 邮箱:wuling07@sei.pku.edu.cn
OUTLIne • SSH整体结构 • STRUTS • Servlet VS Struts 实例 • MVC • Struts的MVC实现 • Struts的核心技术 • 显示层Web框架选型 • HIBERNATE • 非Hibernate VS Hibernate实例对比 • Hibernate 概念及其优势 • Hibernate 核心知识 • Hibernate注意事项 • SPRING • 不用Spring 和实用Spring实例对比 • Spring AOP实现 • Spring 主要用途 • Demo 类似淘宝电子商务网站的后台的一个产品分类功能模块 • 企业级Web 应用 开发新技术
Struts outline • Struts VS servlet实例 • MVC • Struts的MVC实现 • Struts的核心技术 • 显示层Web框架选型
Struts VS servlet实例 (一) • Login.jsp
Struts VS servlet实例 (二) • Login_success.jsp • Login_error.jsp
Struts VS servlet实例 (三) • Servlet 实现
Struts VS servlet实例 (四) • Struts的实现 • Action • ActionForm
Struts VS servlet实例 (五) • Struts-config.xml
Struts outline • Struts VS servlet实例 • MVC • Struts的MVC实现 • Struts的核心技术 • 显示层Web框架选型
Struts outline • Struts VS servlet实例 • MVC • Struts的MVC实现 • Struts的核心技术 • 显示层Web框架选型
Struts outline • Struts VS servlet实例 • MVC • Struts的MVC实现 • Struts的核心技术 • 显示层Web框架选型
Struts的核心技术 • ActionForm • Action • Strut-config.xml • Struts Taglib • JSTL • I18N
Struts1 VS Struts2的区别 • Action 类 • 线程模式 • Servlet 依赖 • 可测性 • 捕获输入 • 表达式语言 • 绑定值到页面(view) • 类型转换 • 校验 • Action执行的控制
Struts outline • Struts VS servlet实例 • MVC • Struts的MVC实现 • Struts的核心技术 • 显示层Web框架选型
显示层Web框架选型 • JSF • Spring MVC • Stripes • Sturts1.x • Struts2.0 • Tapestry • Wicket • Flex • GWT • Seam • Extjs
选择的因素 • Ajax支持 • 维护性 • 可测试性 • 你项目的特性 • 国际化支持 • 社区和支持 • 可用的现成工具 • 就业机会
HIBERNATE Outline • 非Hibernate VS Hibernate实例对比 • Hibernate 概念及其优势 • Hibernate 核心知识 • Hibernate注意事项
非Hibernate VS Hibernate实例对比 • 非Hibernate
Hibernate实例(一) • LogMessage.java
Hibernate实例(二) • LogMessage.hbm.xml
Hibernate实例(三) • hibernate.cfg.xml
Hibernate实例(四) • LogMessageDAOImpl.java
HIBERNATE Outline • 非Hibernate VS Hibernate实例对比 • Hibernate 概念及其优势 • Hibernate 核心知识 • Hibernate注意事项
Hibernate 概念及其优势 • 优势: • 完全屏蔽sql,你操作的都是对象,面向对象的思想得到了很好体现 • 对象中的继承等各种关系都可以表示出来,生成数据库时候自动生成,数据库可以最后才有 • 通过hibernate层你可以进行很多优化,比如缓存,懒加载等等 结论:Hibernate给我们提供了利用面向对象的思想来操作关系型数据的接口,简单说就是一个O/R映射框架
HIBERNATE Outline • 非Hibernate VS Hibernate实例对比 • Hibernate 概念及其优势 • Hibernate 核心知识 • Hibernate注意事项
Hibernate 核心知识(二) • Hibernate的对象生命周期 • Hibernate基本映射 • Hibernate高级映射 • 一对多 • 一对一 • 多对一 • 多对多 • 组合主键 • 集合映射 • Hibernate的lazy和级联 • Hibernate的继承策略 • Hibernate悲观锁和乐观锁 • HQL • Hibernate的缓存策略 • Hibernate的Fetch策略
HIBERNATE Outline • 非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是前提条件
Spring outline • 不用Spring 和使用Spring实例对比 • Spring AOP和IOC DI • Spring 主要用途
加Spring进行改进(一) • 在配置文件中配置一下,所有dao的实现中都可以省略掉一些相同代码
Spring 的AOP实现(一) • Crossing cutting concern • Aspect • Advice • JoinPoint • pointcut
Spring 的AOP实现(二) • IUserManager.java • IMySecurityManager.java
Spring 的AOP实现(三) • MySecurityManagerImpl.java
Spring 主要用途 • 利用Spring来创建对象(JavaBean工厂) • 利用Spring构建业务逻辑层 • 管理依赖关系 • 适应需求变更 • 利用Spring进行事务处理
Demo 类似淘宝电子商务网站的后台的一个产品分类功能模块 • 几点技巧: • 包结构 • 增删改查的改进
Web 新技术带来另类开发体验 (一个企业级的web系统您还需要以下技术)
做一个企业级开发需要用到的技术 • Extjs、Jquery、Struts • Velocity & Freemaker • Oscache • DWR • Hibernate & Ibatis • Spring • JBPM • Lucene & Compass • Junit • 第三方库
Web 新技术之 Extjs • 演示:Sample与实际系统演示 • 优点: • css样式不用自己写,其界面美观程度,一直在榜首, UI组件非常丰富,直接使用即可 • 跨浏览器支持好,基本上所有浏览器都支持 • 分层分得好,后台代码可以是Java,C#,PHP • 动画效果非常不错 • 缺点: • 速度性能调优需要丰富经验 • 适用:OA,ERP,CRM,MIS(北大很多系统都用它) • 不适用于:门户,内容页面
Web 新技术之 Freemaker & OSCAche • 例子:邮件群发 及 页面缓存 • OSCACHE:主要做缓存,常应用于一些不变的页面,或者变化非常少的页面 • Freemaker:思想是:模板+数据=输出,常用于静态化页面或者一些邮件等群发的内容。
Web 新技术之 DWR • 演示:Online IDE & 反向Ajax演示 • 特点: • 直接可以在Javascript中调用后台java代码 • 无刷新页面切换 • 反向Ajax • 缺点: • 配置文件增多