sturct是一个遵循mvc模式框架得一个具体解决方案,它在MVC模式中作为一个很好的控制器,又很好用。但是表现和业务则可以用其他来完成。其他具体框架可以和他组合使用。
hibernate是一个持久层中间件,O/R Mapping (对象关系映射框架),,它也可以和其他框架组合使用。而DAO框架,用于数据存取,类似于工厂模式。O/R Mapping (对象关系映射框架)其远比DAO的思想复杂.可以实现Hibernate模板存取数据,作为Dao接口的一种实现方式.
j2ee是一系列标准,很多具体框架标准(ejb,spring,struct,jsp,servlet等等),都用来支持它。ejb和spring主要支持j2ee得业务层,而struts,jsp,servlet主要支持web层。它还有些其他得框架用来支持其他层。(j2ee没有spring,j2ee标准就是主要针对ejb技术的,ejb和spirng都是一个业务层框架,一个具体应用在选择自己的业务层时可以根据具体轻重量级情况选择使用哪个框架,但若使用j2ee标准的话,就要使用ejb,而spring应该也遵循了部分j2ee的标准)
而jboss,weblogic,websphere等是应用服务器,它们实现了j2ee得一系列标准,并根据自己得特点实现了具体得某些j2ee得api,对于这些服务器他们还支持其他的标准,以及其他各个层次的框架,如spring,hibernate等。
而j2ee整个工程,其实是分为一些通用功能(例如事务机制、安全机制以及对象池或线程池等性能优化机制)和专业功能(具体得商业逻辑),这些通用功能就由j2ee容器完成(基于aop的思想),而专用功能则由编程人员根据某一规范来完成。业务层容器可以有多种,如ejb容器(j2ee,重量级),spring容易(轻量级),spring容易不支持集群分布式功能。他们都是由应用服务器提供得。所以说jboss,weblogic,websphere等是应用服务器它应该是一个,集成了j2ee的一些api得特定实现和应用服务器功能实现得一个混合体。我们通常仅提到它得应用服务器得功能实现,不太提起它得j2ee得一些api得特定实现。
j2ee是一系列标准,满足他的工程都分为三层,表示层(web层),业务层,数据资源层。j2ee的各种标准都是针对各个层的,有的是这层有的是其他层的。而他没层都有相对独立的实现。例如,在实现web层中我们可以使用比较基础的jsp,servlet或是一些基于这些基础的半成品框架,如struct等等其他web框架。而在业务层中我们可以根据需要选择合适的ejb或是spring等业务层框架,(有的ejb是轻型的,有的ejb是重型的,spring则是轻型的)。而数据资源层,通常是数据库,这时我们可以选用比较基本的jdbc或是基于它的框架如hibernate等等。j2ee是基于组件的各个层里的实现,他利用框架产生的各个具体代码,都是它的组件是可复用的。(这种三层结构只是一个简单的应用系统,它可以采用j2ee标准来实现,也可以不使用任何公用标准,而是自己模糊认识的一种标准,也可以在任意一层不使用任何框架,而是用各种基础java相关技术来完成,对于一个j2ee框架,它一般分三层,客户端,服务器端,eis端,服务器端是我们开发的重点,它包括web层,业务层,而业务层包括业务数据域-实体bean-实体bean采用域主动方式访问数据,它的bmp可以使用持久层框架,或是采用基础java技术实现,cmp是服务器实现对象关系映射,而业务过程域-会话bean,它负责开发j2ee环境下的业务,对于部分业务放在非j2ee环境中如eis等,我们可以通过jca,jms,web servies来访问,如果是普通bean访问的话就算j2ee环境下的业务了,但是普通bean通常做的业务操作比较简单,复杂的需要其他资源支持的通常要在非j2ee环境下实现或是已经实现了并且在非j2ee环境下,现在要集成,而对于这种情况我们根据同步异步来具体选择使用jca,j'ms,webservices哪个来完成。)
而象turbine它是一个轻量级web应用完全框架(注意它不是web框架,它包括mvc的全部,而structs这种web框架仅仅有vc,它的m是由其他来实现的如bean,ejb,spring等)它不是j2ee,它不满足j2ee的标准。在j2ee可能包括分布式处理等等,而turbine'没有,它仅仅是一个简单的web应用,它不满足j2ee的标准。此外由ststruts+spring+hibernate不是j2ee,它是一个轻量级的具体应用,而structs+bean则更不是j2ee,更轻量级的应用。
2、EJB与JAVABEAN的区别?
答: Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建 ( 如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 实际上相当于微软 COM 模型中的本地进程内 COM 组件,它是不能被跨进程访问的。 Enterprise Java Bean 相当于 DCOM ,即分布式组件。它是基于 Java 的远程方法调用 (RMI) 技术的,所以 EJB 可以被远程访问 ( 跨进程、跨计算机 ) 。但 EJB 必须被布署在诸如 Webspere 、 WebLogic 这样的容器中, EJB 客户从不直接访问真正的 EJB 组件,而是通过其容器访问。 EJB 容器是 EJB 组件的代理, EJB 组件由容器所创建和管理。客户通过容器来访问真正的 EJB 组件Struts
、
Hibernate
和
Spring
是我们
Java
开发中的常用关键,
他们分别针对不同的应用场景给
出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的
?
我们知道,
传统的
Java Web
应用程序是采用
JSP+Servlet+Javabean
来实现的,
这种模式实现
了最基本的
MVC
分层,使的程序结构分为几层,有负责前台展示的
JSP
、负责流程逻辑控
制的
Servlet
以及负责数据封装的
Javabean
。但是这种结构仍然存在问题:如
JSP
页面中需
要使用符号嵌入很多的
Java
代码,造成页面结构混乱,
Servlet
和
Javabean
负责了大量的跳
转和运算工作,耦合紧密,程序复用度低等等。
Struts
为了解决这些问题,出现了
Struts
框架,它是一个完美的
MVC
实现,它有一个中央控制类
(
一个
Servlet)
,针对不同的业务,我们需要一个
Action
类负责页面跳转和后台逻辑运算,
一个或几个
JSP
页面负责数据的输入和输出显示,
还有一个
Form
类负责传递
Action
和
JSP
中间的数据。
JSP
中可以使用
Struts
框架提供的一组标签,就像使用
HTML
标签一样简单,
但是可以完成非常复杂的逻辑。从此
JSP
页面中不需要出现一行包围的
Java
代码了。
可是所有的运算逻辑都放在
Struts
的
Action
里将使得
Action
类复用度低和逻辑混乱,所以
通常人们会把整个
Web
应用程序分为三层,
Struts
负责显示层,
它调用业务层完成运算逻辑,
业务层再调用持久层完成数据库的读写。
使用
JDBC
连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的
SQL
语句
进行读写、
关闭连接,
获得的数据又需要转换或封装后往外传,
这是一个非常烦琐的过程。
Hibernate
这时出现了
Hibernate
框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的
看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。
当我们需要相关操作是,
不用再关注数据库表。
我们不用再去一行行的查询数据库,
只需要
持久化类就可以完成增删改查的功能。
使我们的软件开发真正面向对象,
而不是面向混乱的
代码。我的感受是,使用
Hibernate
比
JDBC
方式减少了
80%
的编程量。
现在我们有三个层了,可是每层之间的调用是怎样的呢
?
比如显示层的
Struts
需要调用一个
业务类,就需要
new
一个业务类出来,然后使用
;
业务层需要调用持久层的类,也需要
new
一个持久层类出来用。通过这种
new
的方式互相调用就是软件开发中最糟糕设计的体现。
简单的说,
就是调用者依赖被调用者,
它们之间形成了强耦合,
如果我想在其他地方复用某
个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,
复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。
为此,出现
Spring
框架。
Spring
Spring
的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。
至于如何实现这个接口,
这都不重要了。
只要拿到一个实现了这个接口的类,
就可以轻松的
通过
xml
配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完
全通过配置文件的方式替代了。
所以
Spring
框架最核心的就是所谓的依赖注射和控制反转。
现在的结构是,
Struts
负责显示层(表示层或web层),
Hibernate
负责持久层(数据层),
Spring和ejb
负责中间的业务层,这个
结构是目前国内最流行的
Java Web
应用程序架构了。另外,由于
Spring
使用的依赖注射以
及
AOP(
面向方面编程
)
,所以它的这种内部模式非常优秀,以至于
Spring
自己也实现了一
个使用依赖注射的
MVC
框架,叫做
Spring
MVC
,同时为了很好的处理事物,
Spring
集成
了
Hibernate
,使事物管理从
Hibernate
的持久层提升到了业务层,使用更加方便和强大。
Struts
框架是
2000
年就开始起步了,
到目前已经发展了
5
年,
技术相当成熟,
目前全球
Java
开发中
Struts
框架是显示层技术中当之无愧的王者。它拥有大量的用户群和很好的开发团
队。这也是国内大部分
Java
软件公司对新进员工的基本要求。
其他
Java
这个名词似乎注定和开源紧密联系在一起了,在
Java
界,每天都有大量的开源技术出
现,
由于是开放源代码的,
技术中存在的问题和不足很快就会被人发现,
开源软件提供者会
很快的修正或扩展这些技术,因此版本更新很快,几个星期或者几天就有一个新版本出来。
当我们在技术线路中选择了
Java
,
也就选择了你必须持续学习,
经常关注最新的技术,
了解
它们,看是否适合你的需要,然后学习使用它们。
你应该掌握的
Java
技术
Java
基础:
◆
Java
原理和使用,包括基本的语言、语法知识和
API
◆
JSP+Servlet
,
Java Web
开发的基础
服务器:
◆
WebLogic
的原理、使用和配置
◆
Tomcat
:轻量的
JavaWeb
容器,和
WebLogic
功能类似,使用简单、方便、免费、开源,
但不支持
EJB
◆
JBoss
:类似于
Tomcat
,功能更强,支持
EJB
这三种应用服务器至少掌握其中的一种是很必要的。
框架:
◆
Struts
、
Spring
、
Hibernate
◆
Tapestry
:这是一个新的
MVC
框架,使用组件式开发,是显示层技术的发展趋势。
◆
Flex
和
Laszlo
:新的显示层技术,支持富客户端应用,是目前的较前沿的显示技术。
◆
EJB
:
EJB
的全称是
Enterprise JavaBeans
,是
Java
中的商业应用组件技术。
Java Web
开发周边技术:
◆
HTML
、
Javascript
、
CSS
、
XML
、
XSLT
,这些是开发中经常使用到的,应该熟练掌握。
开发工具:
◆
Dreamweaver
、
sturct
是一个遵循
mvc
模式框架得一个具体解决方案,
它
在
MVC
模式中作为一个很好的控制器,
又很好用。但是表现和业务则可以用其他来完成
。其他具体框架可以和他组合使用。
hibernate
是一个持久层中间件,
O/R
Mapping
(
对象关系映射框架
)
,,它也可以和其
他框架组合使用。而
DAO
框架
,
用于数据存取
,
类似于工厂模式。
O/R
Mapping
(
对象关
系映射框架
)
其远比
DAO
的思想复杂
.
可以实现
Hibernate
模板存取数据
,
作为
Dao
接口的一
种实现方式
.
j2ee
是一系列标准,很多具体框架标准(
ejb
,
spring
,
struct
,
jsp
,
servlet
等等),都用
来支持它。
ejb
和
spring
主要支持
j2ee
得业务层,
而
struts
,
jsp
,
servlet
主要支持
web
层。
它还有些其他得框架用来支持其他层。(
j2ee
没有
spring
,
j2ee
标准就是主要针对
ejb
技
术的,
ejb
和
spirng
都是一个业务层框架,
一个具体应用在选择自己的业务层时可以根据具
体轻重量级情况选择使用哪个框架,但若使用
j2ee
标准的话,就要使用
ejb
,而
spring
应
该也遵循了部分
j2ee
的标准)
sturct
是一个遵循
mvc
模式框架得一个具体解决方案,
它
在
MVC
模式中作为一个很好的控制器,
又很好用。但是表现和业务则可以用其他来完成
。其他具体框架可以和他组合使用。
hibernate
是一个持久层中间件,
O/R
Mapping
(
对象关系映射框架
)
,,它也可以和其
他框架组合使用。而
DAO
框架
,
用于数据存取
,
类似于工厂模式。
O/R
Mapping
(
对象关
系映射框架
)
其远比
DAO
的思想复杂
.
可以实现
Hibernate
模板存取数据
,
作为
Dao
接口的一
种实现方式
.
j2ee
是一系列标准,很多具体框架标准(
ejb
,
spring
,
struct
,
jsp
,
servlet
等等),都用
来支持它。
ejb
和
spring
主要支持
j2ee
得业务层,
而
struts
,
jsp
,
servlet
主要支持
web
层。
它还有些其他得框架用来支持其他层。(
j2ee
没有
spring
,
j2ee
标准就是主要针对
ejb
技
术的,
ejb
和
spirng
都是一个业务层框架,
一个具体应用在选择自己的业务层时可以根据具
体轻重量级情况选择使用哪个框架,但若使用
j2ee
标准的话,就要使用
ejb
,而
spring
应
该也遵循了部分
j2ee
的标准)
sturct是一个遵循mvc模式框架得一个具体解决方案,它在MVC模式中作为一个很好的控制器,又很好用。但是表现和业务则可以用其他来完成。其他具体框架可以和他组合使用。
hibernate是一个持久层中间件,O/R Mapping (对象关系映射框架),,它也可以和其他框架组合使用。而DAO框架,用于数据存取,类似于工厂模式。O/R Mapping (对象关系映射框架)其远比DAO的思想复杂.可以实现Hibernate模板存取数据,作为Dao接口的一种实现方式.
j2ee是一系列标准,很多具体框架标准(ejb,spring,struct,jsp,servlet等等),都用来支持它。ejb和spring主要支持j2ee得业务层,而struts,jsp,servlet主要支持web层。它还有些其他得框架用来支持其他层。(j2ee没有spring,j2ee标准就是主要针对ejb技术的,ejb和spirng都是一个业务层框架,一个具体应用在选择自己的业务层时可以根据具体轻重量级情况选择使用哪个框架,但若使用j2ee标准的话,就要使用ejb,而spring应该也遵循了部分j2ee的标准)
而jboss,weblogic,websphere等是应用服务器,它们实现了j2ee得一系列标准,并根据自己得特点实现了具体得某些j2ee得api,对于这些服务器他们还支持其他的标准,以及其他各个层次的框架,如spring,hibernate等。
而j2ee整个工程,其实是分为一些通用功能(例如事务机制、安全机制以及对象池或线程池等性能优化机制)和专业功能(具体得商业逻辑),这些通用功能就由j2ee容器完成(基于aop的思想),而专用功能则由编程人员根据某一规范来完成。业务层容器可以有多种,如ejb容器(j2ee,重量级),spring容易(轻量级),spring容易不支持集群分布式功能。他们都是由应用服务器提供得。所以说jboss,weblogic,websphere等是应用服务器它应该是一个,集成了j2ee的一些api得特定实现和应用服务器功能实现得一个混合体。我们通常仅提到它得应用服务器得功能实现,不太提起它得j2ee得一些api得特定实现。
j2ee是一系列标准,满足他的工程都分为三层,表示层(web层),业务层,数据资源层。j2ee的各种标准都是针对各个层的,有的是这层有的是其他层的。而他没层都有相对独立的实现。例如,在实现web层中我们可以使用比较基础的jsp,servlet或是一些基于这些基础的半成品框架,如struct等等其他web框架。而在业务层中我们可以根据需要选择合适的ejb或是spring等业务层框架,(有的ejb是轻型的,有的ejb是重型的,spring则是轻型的)。而数据资源层,通常是数据库,这时我们可以选用比较基本的jdbc或是基于它的框架如hibernate等等。j2ee是基于组件的各个层里的实现,他利用框架产生的各个具体代码,都是它的组件是可复用的。(这种三层结构只是一个简单的应用系统,它可以采用j2ee标准来实现,也可以不使用任何公用标准,而是自己模糊认识的一种标准,也可以在任意一层不使用任何框架,而是用各种基础java相关技术来完成,对于一个j2ee框架,它一般分三层,客户端,服务器端,eis端,服务器端是我们开发的重点,它包括web层,业务层,而业务层包括业务数据域-实体bean-实体bean采用域主动方式访问数据,它的bmp可以使用持久层框架,或是采用基础java技术实现,cmp是服务器实现对象关系映射,而业务过程域-会话bean,它负责开发j2ee环境下的业务,对于部分业务放在非j2ee环境中如eis等,我们可以通过jca,jms,web servies来访问,如果是普通bean访问的话就算j2ee环境下的业务了,但是普通bean通常做的业务操作比较简单,复杂的需要其他资源支持的通常要在非j2ee环境下实现或是已经实现了并且在非j2ee环境下,现在要集成,而对于这种情况我们根据同步异步来具体选择使用jca,j'ms,webservices哪个来完成。)
而象turbine它是一个轻量级web应用完全框架(注意它不是web框架,它包括mvc的全部,而structs这种web框架仅仅有vc,它的m是由其他来实现的如bean,ejb,spring等)它不是j2ee,它不满足j2ee的标准。在j2ee可能包括分布式处理等等,而turbine'没有,它仅仅是一个简单的web应用,它不满足j2ee的标准。此外由ststruts+spring+hibernate不是j2ee,它是一个轻量级的具体应用,而structs+bean则更不是j2ee,更轻量级的应用。
2、EJB与JAVABEAN的区别?
答:Java Bean是可复用的组件,对JavaBean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于JavaBean是被容器所创建(如Tomcat)的,所以JavaBean应具有一个无参的构造器,另外,通常JavaBean还要实现Serializable接口用于实现Bean的持久性。JavaBean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的。EnterpriseJava Bean 相当于DCOM,即分布式组件。它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是EJB组件的代理,EJB组件由容器所创建和管理。客户通过容器来访问真正的EJB组件
Eclipse
或
Jbuilder
、
PL/SQL
数据库:
◆
Oracle
必须会用、
SQLServer
掌握、
MySQL
可以在自己学习时使用。
DB2
那种东西就不
要学了,国内太少使用了。
软件工程:
◆可以理解
UML
设计和使用
UML
进行简单设计。