基于SSH的web开发及JAVA技术选型

Download Report

Transcript 基于SSH的web开发及JAVA技术选型

导师:王千祥
姓名:吴凌
邮箱:[email protected]


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
VS servlet实例
MVC
 Struts的MVC实现
 Struts的核心技术
 显示层Web框架选型

 Login.jsp
 Login_success.jsp
 Login_error.jsp
 Servlet
实现
 Struts的实现
 Action
 ActionForm
 Struts-config.xml
 Struts

VS servlet实例
MVC
Struts的MVC实现
 Struts的核心技术
 显示层Web框架选型

Http Request
(Get, Post)
Browser
Http Response
Controller
调用
Forward
View
Model
获取
 Struts
VS servlet实例
 MVC
Struts的MVC实现
 Struts的核心技术
 显示层Web框架选型

 Struts
VS servlet实例
 MVC
Struts的MVC实现
 Struts的核心技术
 显示层Web框架选型

 ActionForm
 Action
 Strut-config.xml
 Struts
 JSTL
 I18N
Taglib
类
 线程模式
 Servlet 依赖
 可测性
 捕获输入
 表达式语言
 绑定值到页面(view)
 类型转换
 校验
 Action执行的控制
 Action
 Struts
VS servlet实例
 MVC
Struts的MVC实现
 Struts的核心技术
 显示层Web框架选型

JSF
 Spring MVC
 Stripes
 Sturts1.x
 Struts2.0
 Tapestry
 Wicket
 Flex
 GWT
 Seam
 Extjs

 Ajax支持
 维护性
 可测试性
 你项目的特性
 国际化支持
 社区和支持
 可用的现成工具
 就业机会
VS Hibernate实例对比
 Hibernate 概念及其优势
 Hibernate 核心知识
 Hibernate注意事项
 非Hibernate
 非Hibernate
 LogMessage.java
 LogMessage.hbm.xml
 hibernate.cfg.xml
 LogMessageDAOImpl.java
VS Hibernate实例对比
 Hibernate 概念及其优势
 Hibernate 核心知识
 Hibernate注意事项
 非Hibernate
 优势:
完全屏蔽sql,你操作的都是对象,面向对象的思想
得到了很好体现
 对象中的继承等各种关系都可以表示出来,生成数
据库时候自动生成,数据库可以最后才有
 通过hibernate层你可以进行很多优化,比如缓存,
懒加载等等
结论:Hibernate给我们提供了利用面向对象的思想
来操作关系型数据的接口,简单说就是一个O/R映
射框架

VS Hibernate实例对比
 Hibernate 概念及其优势
 Hibernate 核心知识
 Hibernate注意事项
 非Hibernate



Hibernate的对象生命周期
Hibernate基本映射
Hibernate高级映射












一对多
一对一
多对一
多对多
组合主键
集合映射
Hibernate的lazy和级联
Hibernate的继承策略
Hibernate悲观锁和乐观锁
HQL
Hibernate的缓存策略
Hibernate的Fetch策略
VS Hibernate实例对比
 Hibernate 概念及其优势
 Hibernate 核心知识
 Hibernate注意事项
 非Hibernate
 千万注意对象化编程思想,先有对象,数据库
最后才有
 SessionFactory的创建非常消耗资源,整个应
用一般只要一个SessionFactory就够了,只有
多个数据库的时候才会使用多SessionFactory。
 在整个应用中,Session和事务应该能够统一管
理。(Spring为Hibernate提供了非常好的支持)
 将所有的集合属性配置设置为懒加载
(lazy=”true”)。在hibernate2.x版本中,
lazy默认值是“false”,但hibernate3.x已经将
lazy的默认改为“true”了。
 在定义关联关系时,集合首选Set,如果集合中
的实体存在重复,则选择List(在定义配置文
件时,可以将List定义为bag),数组的性能最
差。
 HQL子句本身大小写无关,但是其中出现的类
名和属性名必须注意大小写区分。
 如果要精通Hibernate,熟练掌握关系数据库理
论和SQL是前提条件
 不用Spring
和使用Spring实例对比
 Spring AOP和IOC DI
 Spring 主要用途
 在配置文件中配置一下,所有dao的实现中都
可以省略掉一些相同代码
 Crossing
cutting concern
 Aspect
 Advice
 JoinPoint
 pointcut
 IUserManager.java
 IMySecurityManager.java
 MySecurityManagerImpl.java
 利用Spring来创建对象(JavaBean工厂)
 利用Spring构建业务逻辑层


管理依赖关系
适应需求变更
 利用Spring进行事务处理
 几点技巧:


包结构
增删改查的改进
Web 新技术带来另类开发体验
(一个企业级的web系统您还需要以下技术)
 Extjs、Jquery、Struts
 Velocity
& Freemaker
 Oscache
 DWR
 Hibernate
& Ibatis
 Spring
 JBPM
 Lucene
& Compass
 Junit
 第三方库
 演示:Sample与实际系统演示
 优点:




css样式不用自己写,其界面美观程度,一直在榜首
, UI组件非常丰富,直接使用即可
跨浏览器支持好,基本上所有浏览器都支持
分层分得好,后台代码可以是Java,C#,PHP
动画效果非常不错
 缺点:

速度性能调优需要丰富经验
 适用:OA,ERP,CRM,MIS(北大很多系统都
用它)
 不适用于:门户,内容页面
及 页面缓存
 OSCACHE:主要做缓存,常应用于一些不变的
页面,或者变化非常少的页面
 Freemaker:思想是:模板+数据=输出,常用
于静态化页面或者一些邮件等群发的内容。
 例子:邮件群发
 演示:Online
IDE & 反向Ajax演示
 特点:



直接可以在Javascript中调用后台java代码
无刷新页面切换
反向Ajax
 缺点:

配置文件增多
 演示:实际系统中的JBPM应用
 优点:
 解耦系统流程:以往编写web
程序只能有一个
流程,现在流程可以自己定义(最终是一个
xml文件),具体流程处理可以写相应模块完
成。
 适用范围:


项目流程比较多,流程复杂的项目
系统运行和维护、升级时,流程可能需要修改、调
整和跟踪、控制的项目
 代码展示
 优点:


JDK规范
底层ORM框架自由切换
 缺点:

有些ORM框架特性不支持
 Lucene主要用于做搜索引擎:文本解析、分词
、索引、搜索、高亮
 Lucene+Compass:主要用于全文检索
 演示:搜索引擎&Eclipse Help
 演示:自主开发的一个辅助工具,目前还在完
善功能中。
 优点:




项目规范化
加速项目开发
不容易出错
减少一些黏贴复制操作
 缺点:

需要为每个项目特别定制
 集成了框架:Hibernate、Struts、Spring、
DBUnit、Ant、Log4J、Struts Menu、Xdoclet
、SiteMesh、Velocity、JUnit、JSTL、
WebWork
 优势:无需自己去配置集成,初学者可以阅读
 缺点:可控性差,一般企业自己的项目不可能
采用其开发
云计算和手机3G网络的提出使得越来越多程序软
件开始迁移到web中去,web中拥有无限的学术价
值和商业价值,掌握好web技术,您的机会也无限。