J2EE的13种规范

时间:2022-09-27 09:10:39

 

         看完了Java的十三中技术规范,感觉这个概念还是模糊,因为没有运用到真正的Java技术应用中去,所以运用好了java的十三种技术也是一种艺术,其实十三中技术规范本身就是一种艺术。只不过对这种艺术的理解还处于低级阶段。

 

         J2EE的13种规范

         下面写一下对十三中技术中一些熟悉的技术规范书写一下。

Enterprise Java Beans (EJB)

 

J2EE技术之所以赢得某体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。 

EJB规范定义了3中基本的bean类型:  

        1.Stateless session beans: 提供某种单一的服务,不维持任何状态,在服务器故障发生时无法继续存在,生命期相对较短。例如,一个stateless session bean可能被用于执行温度转换计算。  

        2.Stateful session bean: T提供了与客户端的会话交互,可以存储状态从而代表一个客户。典型例子是购物车。Stateful session bean在服务器故障时无法继续生存,生命气相对较短。每一个实例只用于一个单个的线程。  

        3.Entity beans: 提供了一致性数据的表示-- 通常存放在数据库中 -- 在服务器故障发生后能继续存在。多用户情况下可以使用EJB来表示相同的数据。entity EJB的一个典型例子是客户的帐号信息。

 

        尽管有以上的区别,所有的EJB还是有许多的共同之处。它们都处理home interface。它定义了一个客户端是如何创建与消亡EJB的。可以在bean中对定义了客户端方法的远程接口进行调用;bean类则执行了主要的商务逻辑。  

描述EJB的开发已经超出了本文的范围。但是,如果一个EJB已经被开发了或者从第三方进行了购买,它就必须在应用服务器中进行发布。WebLogic Server 5.1带有一个EJB Deployer Tool来协助处理EJB的发布。当你使用EJB Deployer Tool的时候,你要定义客户端所用的JNDI名字来定位EJB。Deployer Tool将生成wrapper类来处理和容器的通信以及在一个jar文件中把被请求的Java类绑定在一起。 

一旦EJB被发布,客户端就可以使用它的JNDI名字来定位EJB。首先,它必须得到一个到home接口的reference。然后,客户端可以使用该接口,调用一个 create() 方法来得到服务器上运行的某个bean实例的句柄;最后,客户端可以使用该句柄在bean中调用方法。

JavaServer Pages (JSPs)                    

我们中间可能已经有许多人已经熟悉Microsoft的Active Server Pages (ASP)技术了。JSP和ASP相对应的,但更具有平台对立性。他们被设计用以帮助Web内容开发人员创建动态网页,并且只需要相对较少的代码。 即使Web设计师不懂得如何编程也可以使用JSP,因为JSP应用是很方便的。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。 

下面我们来看一个JSP的简单实例。它只显示了服务器的当前日期和时间。虽然,对语法的具体解释已经超出了本文的范围,但我们还是可以很直观地看到,Java代码被放在符号的中间,而Java的表达式则放在符号之间。  

Date JSP sample  

The current date is .  

您可能有时候听说过JHTML。这是JSP以前的一种较老的标准。WebLogic服务器既可支持JSP,又可支持JHTML。请注意,在缺省状况下,JSP在WebLogic服务器中并没有处于有效状态。要使之有效,你可以编辑weblogic.properties文件。如果Web服务器还没有处于有效状态,则要先使之有效。Servlet的情况和JSP是一样的。

Java servlets  

servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。 

servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlets和CGI脚本的一个很大的区别是:每一个CGI在开始的时候都要求开始一个新的进程 -- 而servlets是在servlet引擎中以分离的线程来运行的。因此servlets在可伸缩性上提供了很好的改进。  

在开发servlets的时候,您常常需要扩展javax.servlet.http.HttpServlet 类,并且override一些它的方法,其中包括:  

service(): 作为dispatcher来实现命令-定义方法  

doGet(): 处理客户端的HTTP GET请求。  

doPost(): 进行HTTP POST操作  

其它的方法还包括处理不同类型的HTTP请求 -- 可以参考HttpServlet API文档。  

以上描述的是标准J2EE Servlet API的各种方法。WebLogic服务器提供了一个该API完整的实现途径。一旦你开发了一个servlet,你就可以在weblogic.properties 中加以注册并由此可以在WebLogic服务器中对它进行配置。  

通过Java servlets,我们已经到达了J2EE主要技术的末尾了。但J2EE所提供的并不止于这些。下面的段落中我们将简要地看一下现存的一些技术,包括RMI, Java IDL和CORBA, JTA, 以及XML,等等。

 

至于别的规范,等着自己有了深刻的体会自己在慢慢填充这部分知识。