设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1736|回复: 4
收起左侧

经典Java EE应用相关技术

[复制链接]
发表于 2012-4-18 13:49:35 | 显示全部楼层 |阅读模式

经典Java EE应用相关技术

经典Java EE应用的核心技术是EJB 3,前台MVG框架的选择余地其实还是比软大的,当然首选依然是Java EE规范之一的JSF。

JSP、ServIet和JavaBean及替代技术

JSP最草作为J2EE规范之一,Java EE 5规范也包含了JSP2.1。JSP可以说是最经典的Java EE技术之一,直到今天,JSP依然广泛地应用于各种Java EE应用中,充当Java EE应用的表现层角色。JSP具有简单、易用的特点,JSP的学习路线平坦,而且国内有大量JSP学习资料,所以大部分Java学习者学习Java EE开发都会选择从JSP开始。

Servlet和JSP其实是完全统一的,二者在底层的运行原理是完全一样的,实际上,JSP必须被Web服务器编译成Servlet,真正在Web服务器内运行的是Servlet。从这个意义上来看,我们可以把JSP当成一个“草稿”文件,Web服务器根该“草稿”文件来生成Servlet,真正提供HTTP服务的是Servlet,因此广义的Servlet包含了JSP和Servlet。

就目前的Java EE应用来看,纯粹的Servlet已经很少使用了,毕竟Servlet的开发成本太高,而且使月Servlet充当表现层将导致表现层页面难以维护,不利于美工人员参与Servlet开发,所以实际开发中大都使用JSP充当表现层技术。

由于JSP只负责简单的显示逻辑,所以JSP无法直接访问应用的底层状态, Java EE应用会选择使用JavaBean来传输数据,在严格的Java EE应用中,中间层的组件会将应用底层的状态信息封装成JavaBean集,这些JavaBean集也被称为DTO(Data Transfer Object,数据传输对象),并将这些DTO集传输到JSP页面,从而让JSP可以显示应用的底层状态。

在目前阶段,Java EE应用除了可以使用JSP作为表现层技术之外,还可以使用FreeMarker或Velocity充当表现层技术,这些表现层技术更加纯粹,使用更加简洁,完全可作为JSP的替代。

JSF及替代技术

Struts是最早出现、也是目前最流行的MVC框架。现在Struts和WebWork合并成了Struts 2,因此生命了更强、市场占有率更高。

但对于采用EJB 3为核心的Java EE应用来说,采用JSF作为前端MVC框架,显然更加合适,这里笔者不想长篇累牍地对Struts和JSF进行移较,也不想重复诸如JSF是基于组件之类的话。对于经典Java EE应用应该优先选择JSF的理由,笔者认为主要有两个:

1、JSF的managed-bean可以非常方便地接受依赖注入,从而以松耦合的方式来调用容器中的Session Bean(业务逻辑组件)。

2、JSF规范本身就是Java EE靓范之一,拥有纯正的血统。目前JSF拥有两个实现:Sun公司提供的JSF R1实现和Apache提供的MyFaces实现,足以满足开发者的需求。

当然实际开发中除了要考虑技术方便性之外,往往还有更多实际的考虑因素,比如开发团队的技术认知、技术水平等,如果整个开发团队依然对Struts情有独钟,那依然可以迭择Struts作为前端MVC框架。

除此之外,Tapestry也是一个不错的选择Tapestry是Apache组织下的另一个优秀的MVC 框架,Tapestry框架已经完全脱离了传统Servlet API,是一种纯粹的、组件式的MVC框架,Tapestry同时提供了控制器和页面模板的解决方案,使用Tapestry无须使用JSP等其他表现层技术, Tapestry也是非常有吸引力的MVC框架。

EJB组件技术简介

从J2EE开始,EJB一直都是整个J2EE平台的核心之一,Java EE 5规范的核心就是EJB 3,EJB 3充分借鉴了Hibernate、Spring两大开源框架,JPA规范中的Entity(实体)与Hibernate里的PO(持久化对象)非常相似,当应用程序面向Entity(实体)进行编程时,JPA的Entity Manager会将其转换为对底层数据库的访问。

对于Spring框架而言,它的两大核心机制就是:IoC(控制反转)和AOP(面向切面编程),EJB 3干脆提供了更为简捷的IoC支持,这就解决了应用各组件之间的依赖关系;Spring框架中AOP的一个典型应用就是声明式的事务管理,这对于EJB 3来说完全不是问题,从早期的EJB规范开始,EJB已经提供了容器管理事务(CMT)。容器管理事务就是典型的声明式事务管理。

从EJB3开始,Sun公司充分注意了EJB的简单易用性,因此EJB 3学习起来也比较容易,也许正是因为这种简单易用性才让EJB 3真正大规模进入实际开发。(摘自[经典JavaEE企业应用实战])

发表于 2012-4-18 14:25:55 | 显示全部楼层
不错呀。http://www.bjrk120.com/fjyy/ 四季青附近医院
沙发 2012-4-18 14:25:55 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-4-18 16:12:23 | 显示全部楼层
本论坛要是多点java的知识就好了
板凳 2012-4-18 16:12:23 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-4-19 13:55:14 | 显示全部楼层
   教给我吧 你也可以去我的网站看www.fkjava.org
地板 2012-4-19 13:55:14 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-4-19 13:56:19 | 显示全部楼层
你们喜欢就好
5# 2012-4-19 13:56:19 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-5-3 08:35 , Processed in 0.069540 second(s), 7 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表