当前页面位置: » 丰搜网 » 文档中心 » 详细内容
正确利用j2ee的各种工具
正确利用j2ee的各种工具--------------------------------------------------------------------------------
作者: builder.com
由于遵从mvc(著名的模型-
视图-控制器软件架构)整合了若干编程措施,
java 2 enterprise edition(
j2ee)为高度复杂和可伸缩的因特网应用程序提供了基于组件的的强大开发功能。同时,
j2ee开发层次的不同满足了各个方面的需要:某些开发者采用enterprise
javabean实现软件的模型;某些企业则利用
jsp实现软件的
视图;还有些开发商则专门通过
java servlet实现软件中的控制器。一切都层次分明,井井有条。不是吗?
但是层次划分的技术复杂性却在实际开发中给开发人员带来了不小的压力和负担。多层开发
模式有时会令
j2ee成为庞大的、难以超越的技术集合。了解各类层次技术的特性是要花时间的,而且
j2ee项目还过分要求小型开发团队的技能资源。充分理解现有
j2ee应用程序的体系结构和实现令开发人员的学习曲线非常尖锐,尤其是在考虑到开发周期的时间限制这一方面上更是如此了。结果就会导致技术开发团队试图“躲避”合理的
j2ee实现,很有可能在将来的开发或维护中引发问题。
为了避免出现以上问题,开发者们可以根据自己的实际需要分别采用不同的
j2ee技术,这样可以更好地利用开发者的技能并让他们更关注于任务本身。
jsp 首要的而且也可能是最早单独运用的
j2ee技术恐怕该算是
jsp了。开发者们采用
jsp可以创建具有
html的表示页面和脚本小程序、
javabean 乃至定制标签等功能。这种联合多种技术的
jsp编程建议似乎是对单纯编程技术的诅咒;
j2ee教义上说的是应用程序的逻辑和显示层从来都不应该混合起来。
然而,在有的时候,合理地唯一采用
jsp会给项目开发带来莫大的好处。鼓吹表示层和功能层分离的争论观点实际上会给编程带来更大的负担,尤其是在单一
jsp用在超过两个显示页面的情况下。但是体积更小更单纯的
jsp项目却可能工作得更好。为了达到适度的工作量,像简单时钟这样的编码任务就变得非常容易了(参看程序清单a)。
这个例子说明了若干问题。以上程序中的代码提供了一个用户界面(虽然很基础),这个界面接受用户输入并做出动态响应,而这就是因特网应用程序所有的基本要素了,该程序连同注释在内只有33行代码。要编写一个
jsp时钟程序的更有用实现所需要的代码就更少了:
〈%
date d = new date();
simpledateformat sdf = new simpledateformat("d mmmm yyyy, h:mm:ss a");
timezone zone = timezone.getdefault();
sdf.settimezone( zone );
%〉
current date and time in the 〈b〉〈%= zone.getid() %〉〈/b〉 time zone: 〈b〉〈%= sdf.format( d ) %〉〈/b〉
只用
jsp开发项目的另一优点是:
jsp的学习和使用都相当方便。
jsp采用了
java的语法,但在上下文环境中则完全可以用于其他
服务器端开发环境??例如
asp或coldfusion等。这样在没有多大技术变迁的情况下就可以充分利用
jsp了。
servlets 只用到
java servlets的应用程序开发是另一种区分对待
j2ee模型的方式。事实上,
servlets完全具有它们自己的信息记录。许多人都没有认识到这一点,几年前,
servlets还不过是
服务器端
java开发技术的唯一选择。
cgi风格的直观api大大减少了软件开发的周期。采用进程内内存管理最大化
服务器性能的能力赢得了开发者和系统管理员的注目。链式
servlets的集中对功能的提高更增加了这一技术的优势。同样的优点使得
servlets成为当前相当受到欢迎的开发平台。集成其他的
java技术,比如通过jdbc的数据源等以及针对中小型项目的稳固解决方案也出现了。
传统思想较重的人可能对在
servlet中包括数据连接不感冒;按照
j2ee规范的说法,这种复杂设计应该驻留在enterprise
java beans(
ejb)上。当然,这种观点对大型项目而言是正确的,但是,对那些简单的
servlet,比如显示报告产品可用性图表的纲要程序(示例见程序清单b)却并不需要额外的处理。虽然以上示例访问
数据库并动态创建图表,但是,
数据库连接池的使用和开发者设计的资源管理却给给予了
servlet以出众的运算速度和稳定性。产生同样结果的完整
j2ee实现在计算上的成本却大得多。
非
web浏览器式的应用程序采用
servlets自有其优点。象
tomcat这样的
servlet容器在这种情况下可以实现低成本乃至免费的开发舞台,供开发人员营建和部署最新的
无线信息平台。
servlets通过输出
xml并且即时应用风格表单保证了用户能在他们的移动电话或传呼机上收到正确的格式信息。
ejb ejb被认为
j2ee应用程序中对业务逻辑的编程实现,
ejb最为复杂。从表面上看,
ejb代表了实体bean形式的
数据库存储信息或者会话bean形式的服务请求。这种简单的定义却恰恰掩盖了特别需要注意的幕后众多方面;陡峭的学习曲线使得
ejb项目开发进展缓慢。开发者们必须小心对付
ejb容器的怪癖特性。另外,代码的微小变化或调试经常会转变为特别耗费精力的任务。
然而,
ejb在应对大型项目开发的时候却绝对是个好东西。由
j2ee所保证的
ejb容器所具有的内存管理、
线程模型和交易能力允许开发者把更多的时间花在业务逻辑与代码处理的映射上。大多数
ejb容器都允许经由
xml文档对编译后的代码进行简单修正。根据uml图表为
ejb产生
java源代码的工具也有,从而简化了从概念到实现的转变过程。
在单独采用
ejb的时候,客户环境的选择也会发生变化。浏览器将不起作用,由于已经脱离了
j2ee上下文环境,
ejb此时不能引导基于
web通讯。而且客户程序也变得更丰富:应用程序、
java和非
java、企业信息系统甚至其他的
ejb。在受控环境下的项目部署??便于更新客户应用程序的环境,比如公司内部网??是单独采用
ejb的最佳条件。