東川印記

一本東川,笑看爭龍斗虎;寰茫兦者,度橫佰昧人生。

2的笔记--BW2【BW】

2010年2月3日星期三



第一章           框架技术概述

“框架技术”帮我们更快更好的构建程序:

     是一个应用程序的半成品

     提供可重用的公共结构

     按一定规则组织的一组组件

优势:

     不用再考虑公共问题

     专心在业务实现上

     结构统一,易于学习、维护

     新手也可写出好程序

概念分析:

       技术:解决某一类问题的方法

       组件:应用程序里可重用的“零件”

       框架:一系列组件,按照一定的结构组合在一起。作为系统开发的平台。

       系统:实现完整功能的应用程序。

SSH

       Struts

     MVC设计模式的实现

     接收用户请求,调用业务逻辑代码,转发到正确界面

     控制器

Spring

     依赖注入容器/AOP实现

     声明式事务

     简化Java EE应用

     粘合剂,将大家组装到一起

HIBERNATE

     ORM,简化数据库操作

     DAO

分层原则:  各层职责明确,上一层调下一层

       数据访问层/DAO                     数据访问 JDBC/Hibernate

       业务逻辑层/BIZ/服务层/Service     :   业务逻辑 普通Java

表示层/WEB/表现层/页面层   :与用户交互,获得输入,展示输出JSP/Taglib/Servlet/JavaScript/CSS

MVC含义:

M-Model—处理业务逻辑

V-View—展示数据,获得用户输入

C-Controllor—接收用户输入,调用业务代码(M),返回数据到视图(V)

  目的:

       将模型(业务逻辑)和视图(页面展示)分离

Struts是一个成熟的MVC实现:

       第一个开源的Java Web框架

       Java Web框架的事实标准

       利于快速开发稳健的Web应用

 

第二章           Struts原理(一)

使用Struts开发的4个步骤:

     给项目添加Struts支持:

选中项目,右键 MyEclipseAdd Struts Capabilities

     实现业务类

     添加Struts组件:

a)         ActionForm

b)        Action

c)         添加JSP页面

d)        配置struts-config.xml

     调试运行

使用Struts开发的步骤:

     添加Struts支持

     开发业务逻辑类(模型 Model

     开发ActionForm组件(视图组件,View

     开发Action组件(控制组件,Controller

     开发JSP页面

     修改配置文件struts-config.xml,配置ActionFormAction

     调试运行

控制器组件:

       ActionServlet

     Struts提供:org.apache.struts.action.ActionServlet

     是一个Servlet,需要在web.xml中配置

Action – Aciton Bean

     封装一类客户操作

     继承自org.apache.struts.action.Action,实现execute方法

     需要在struts-config.xml中配置

视图组件:

       ActionForm  -- Form Bean

     封装页面提交的数据

     继承自org.apache.struts.action.ActionForm

     需要在struts-config.xml中配置

     JSP的交互

A.从页面获得输入

B. 发送数据到页面

其他视图组件:JSPJSTLEL、自定义标签

模型组件:

     Struts对模型组件的实现没有任何限制

     一般为:[User]Biz接口、[User]BizImpl类、[User]DAO接口、[User]DAOJdbcImpl

struts-config.xml

Struts运行过程:

     HTTP请求②请求填充Form Bean③将HTTP请求分发至Action处理

④调用JavaBean⑤转发HTTP请求⑥HTTP响应

第三章           Struts原理(二)

DynaActionForm(动态) DispatchActionForm、实体对象做ActionForm的属性

第四章           Struts标签库

几个常用的标签:

       html :texthtml :selecthtml :optionhtml :optionCollection

       logic:emptylogic:equallogic:iterate

       bean:writebean:definebean:size

通用属性

       id : 自定义标签创建的脚本变量名

name :指出对应Bean的名字。如果给出了scope属性,则仅仅在scope中查找。否则,根据规定的顺序(pagerequestsessionapplication)在各个scope中查找

property:指出Bean中的某个属性,可以在其中检索值。如果没有标明,则使用对象本身的值。

scope :定义了Bean在哪个范围(pagerequestsessionapplication)中被查找。脚本变量将在相同范围创建。

第五章           使用Hibernate完成对象持久化

Hibernate 是一个优秀的持久化框架

       瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了

       持久化:  将程序数据在瞬时状态和持久状态之间转换的机制

       持久状态:保存在磁盘上的程序数据,程序退出后依然存在

Hibernate是一个主流的ORM框架:

       ORM(对象-关系映射):

              完成对象数据到关系型数据映射的机制称为对象-关系映射,简称ORM

使用Hibernate的“3个准备,7个步骤” :

       三个准备:

1:导入Hibernate库(jar包)

              2:添加配置文件 – hibernate.cfg.xml

              3:添加对应表的实体类和映射文件

       七个步骤:

1、  Configuration

2、  创建SessionFactory

3、  打开Session

4、  开始一个事务

5、  持久化操作 save/update/delete/find

6、  提交事务

7、  关闭Session

第六章           Hibernate的关联映射

多对一 <many-to-one>、一对多 <one-to -many>[单向、双向]

       set 节点上 的属性:

              inverse : 反转;表示关联关系的控制权

                       true  表示由对方负责关联关系的添加和删除

                       false  表示由自己负责维护关联关系

                     cascade : 级联

                                   all :对所有操作都进行级联;  none :对所有操作都不进行级联

                                   save-update :执行更新操作时级联

                                   delete   执行删除操作时级联

      多对多<many-to-many>

第七章           Hibernate查询

HQL :  Hibernate Query Language  :   Hibernate查询语言

       使用HQL 四步:

               ①、得到Session   ②、编写HQL语句

              ③、创建Query   ④执行查询

       HQL 是面向对象的查询语言,from  类名【不是表名】

       参数查询: 

pstmt的参数查询:

query设置参数的数目 == hql语句中占位符的数目

②占位符 下表从 0开始

可以使用 命名参数 “:参数名”的格式在hql语句定义;query.setXX(参数名,值)

第八章           使用Spring容器管理对象

Spring :轻量级框架,Java EE的春天,当前主流框架

目标:使现有技术更加易用,推进编码最佳实践

内容:依赖注入容器,AOP实现(声明式事务),DAO/ORM支持,Web集成

好莱坞原则(Hollywood Principle) :不要调用我,让我来调用你

耦合的坏处:如果改变程序的一个模块要求另一个模块同时发生变化,就认为两个模块发生了耦合

目的:组件的构建和使用分开

IoC Inversion of Control  控制反转

DIDependency Injection  依赖注入 :编写程序时不用关心其依赖的组件

AOP:面向方面编程  将程序中涉及的公共问题集中解决

Advice:通知,定义一个 “方面”要实现的功能。分前置通知、后置通知、环绕通知和异常通知等类型。

AOP目标:专心做事

       原理:将散布在系统中的公共功能集中解决

       实现:采用一个机制:

①将复杂的需求分解出不同的方面②专心做事③组装起来运行

SpringAOP机制:

              在方法调用前、后、环绕或抛出异常时,“织入”方面代码

              通过代理访问被代理的类

总结:Spring包含:依赖注入容器、AOP实现、DAO/ORM支持、Web集成

              依赖注入的好处:分离组件的使用和实现

              Spring怎么实现依赖注入:添加getter/setter方法,使用配置文件组装

              “面向方面编程”好处:将“方面”分离出来,写代码时只需关注当前业务逻辑

              Spring怎么实现AOP:在方法调用前、后或抛出异常时“织入”方面代码

第九章           SpringStrutsHibernate的集成

依赖注入顺序:dataSource sessionFactory DAOBizAction

Spring Hibernate集成:
        XXXDAOHibImpl  extends HibernateDaoSupport  implements  XXXDAO

        配置数据源dataSource、配置SessionFactory

              使用 Spring重新组装Web程序,管理依赖关系

Spring Struts集成:

     struts-config.xml中配置插件

     修改 ActionBean type=”org.springframework.web.struts.DelegatingActionProxy”

     Spring配置文件中配置Action Bean Biz注入

声明式事务:

       事务管理:在业务逻辑层控制事务、采用AOP的方式实现声明式事务

第十章           使用Ajax改进用户体验

Web 2.0特点:内容聚合:RSS;用户贡献内容;社会化网络

       Ajax:只刷新局部页面的技术

              AjaxAsynchronous And XML  Asynchronous异步的、JavaScript And XML

              异步:发送请求后不等返回结果,由回调函数处理结果

              JavaScript:向服务器发起请求,获得返回结果,更新页面

              XML:封装数据

       用途:使用JavaScript从服务器获取数据而不必刷新整个页面

使用Ajax

①编写服务器端代码(out.print(布尔类型的值))

       ②使用xmlHttpRequest组件发送请求(1、判断浏览器;2、发送请求到服务器,判断)

       ③编写回调函数(

xmlHttpRequest.readyState:0[未初始化];1[初始化];2[发送请求];3[开始接受结果];4[接受结果完毕]

xmlHttpRequest.status:HTML返回码:200OK404Not Found500:服务器端出错

)

DWR – Drect  Web Remoting

     开源,免费的Ajax框架

     Java类发布为JavaScript可调用的脚本对象

     提供JavaScript工具类,简化页面编码

使用DWR

①、准备工作:下载dwr.jar,添加包;配置/WEB-INF/dwr.xml;在web.xml中配置;

②、 发布Java

③、页面代码配置

id: 588663070
title: 2的笔记--BW2【BW】
publishTime: 1265190321393
classId: 88735822
moveForm: NONE

没有评论 :

发表评论