Java EE 组件 容器 服务器
一、组件(Component):
组件可以定义为一种自治的、提供外部公共接口的、动态可用的事物处理过程,组件可以用来构建其它组件或者应用程序。简言之,组件就是能完成一定功能的封装体,小到一个类,大到一个系统。
组件是满足某种规范的代码,只要满足这个规范,你的代码就可以部署到特定的容器(下边有阐述),容器就可以运行它了,我们可以把组件看成容器的增值服务。
举个例子,我们平常使用的JVM也可以认为是一种容器,你只要把你写的程序交给jvm运行就可以了,我们可以把我们的程序看作一个组件,但是我们这个组件有个特征有个特征那就是它必定有个main方法。
二、容器(Container):
详细:
Java EE的组件是不能独立运行的,必须要为它提供相应的运行环境,为组件提供运行环境的就是容器。
这里特别讲下Servlet容器(Container),它是一个Java撰写而成的程序,负责管理JSP/Servlet运行过程中所需要的各种资源,并负责与 Web服务器进行沟通,管理JSP/Servlet中所有对象的产生与消灭。Servlet容器的实作必须符合JSP/Servlet的规范,这个规范是由Sun Microsystems Inc.
例如,当使用者请求来到Web服务器时,Servlet容器会将请求、响应等讯息包装为各种Java对象(像是HttpRequest、 HttpResponse、Cookies等),对象中包括了客户端的相关讯息,像是请求参数,session、cookie等讯息,当您使用 JSP/Servlet的对象,例如HttpResponse发送讯息时, Servlet容器将之转换为HTTP讯息,然后由服务器将讯息发回客户端。以JSP来说,容器负责将JSP转换为Servlet程序代码,然后编译Servlet程序代码,将之加载执行环境并执行,容器也提供了许多资源,除了基本的 Servlet加载与执行之外,例如Web环境设定、使用者认证、session追踪等等,JSP/Servlet事实上与容器之间的依赖日渐深厚,要想 真正发挥JSP/Servlet的功能,正确的设计出良好架构与功能的Web应用程序,了解容器的特性是不可少的。
三、服务器(Server):
容器也是不能直接运行的,容器必须要运行在服务器之上,一个服务器可以同时运行多个不同的容器。 Java EE容器是底层服务器的组成部分。Java EE产品供应商通常使用现有的事务处理框架结合Java SE技术来实现Java EE服务器端功能。Java EE客户端功能通常构建于Java SE技术。
在现有的Java web开发中,关于应用服务器,大家最熟知的开源的有:Tomcat、Jboss、Resin,目前看来这三个开源应用服务器用的相当广泛,主要原因以我来看有下面几点:
1、 Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。
2、 Jboss作为Java EE应用服务器,它不但是Servlet容器,而且是EJB容器,从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。
3、 Resin也仅仅是一个Servlet容器,然而由于它优秀的运行速度,使得它在轻量级Java Web领域备受喜爱,特别是在互联网Web服务领域,众多知名公司都采用其作为他们的Java Web应用服务器,譬如163、ku6等。
在商用应用服务器里主要有:Weblogic、Websphere,对于Weblogic,有些开发者也只用其当Servlet容器,然而就在同等条件下,在性能及易用性等方面,要比Tomcat优秀很多。
还有一款由大名鼎鼎的Sun公司推出的Glassfilsh的Java EE服务器,Glassfish是一个免费、开放源代码的应用服务,它实现了Java EE 5,Java EE 5 平台包括了以下最新技术:EJB 3.0、JSF 1.2、Servlet 2.5、JSP 2.1、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等。
四、组件,容器及服务器三者的功能:
1、组件主要由应用开发人员完成,用来实现应用系统的功能
2、容器有两个主要的功能:一是提供组件运行环境,二是控制组件生命周期
3、服务器也有两个主要的功能:一是提供容器运行环境,二是实现JEE中的技术对应的规范
五、组件体系结构(如图所示):
Java EE 组件 容器 服务器
六、Java EE相关开发步骤:
1、开发组件
1.1、实现容器提供的接口类
1.2、实现接口类中的回调方法
2、部署描述,让容器认识组件
3、把组件放到相应容器中并部署到服务器上
4、测试