J2SE
java系统平台标准版,提供了核心的java API、 JVM和一些开发工具。
了解更多:百度百科上关于J2SE的介绍
官方网站:http://java.sun.com/j2se/1.5.0/
J2ME
Java ME 以往称作J2ME(Java Platform, Micro Edition )是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。它和Java SE、Java EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订的。
了解更多:维基百科上对于J2ME的介绍
J2EE
答:J2EE(Java 2 Enterprise Edition)是建立在Java 2平台上的企业级应用的解决方案。J2EE技术的基础便是Java 2平台,不但有J2SE平台的所有功能,同时还提供了对EJB,Servlet,JSP,XML等技术的全面支持,其最终目标是成为一个支持企业级应用开发的体系结构,简化企业解决方案的开发,部署和管理等复杂问题。事实上,J2EE已经成为企业级开发的工业标准和首选平台。
了解更多:维基百科上对于J2EE的介绍
Servlet
servlet是一些Java类,用来动态的处理请求以及动态的构造响应信息。Servlet可以被认为是服务器段的applet。servlet被Web服务器加载和执行。
servlet的生命周期
1、当第一次被请求时载入一个servlet
2、调用servlet的init()方法
3、调用servlet的service()方法处理任意数目的请求
4、当程序停止时,调用每个servlet的destroy()方法
SOAP
SOAP的全称是Simple Object Access Protocol,即简单对象访问协议。SOAP是在分散或分布的环境中交换信息的简单协议,他以XML作为数据传送的方式。SOAP对于实现基于Web的无缝集成系统发挥着非常重要的作用。SOAP有助于实现松散耦合的、跨平台的、于语言无关的、与特定接口无关的分布式系统。
延伸阅读:
http://www0.ccidnet.com/tech/app/2001/09/21/58_3322.html
http://www.huihoo.org/openweb/soap/soap12.html
Web service
通俗的讲,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。要调用这个ASP页面,客户端需要发送下面的这个HTTP GET请求:
http://host.company.com/weather.asp?zipcode=20171
返回的数据就应该是这样:
21,晴
这个ASP页面就应该可以算作是Web service 了。因为它基于HTTP GET请求,暴露出了一个可以通过Web调用的API。当然,Web service 还有更多的东西。
下面是对Web service 更精确的解释: Web services是建立可互操作的分布式应用程序的新平台。Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
延伸阅读:
http://www0.ccidnet.com/tech/guide/2001/11/01/58_3584.html
http://www.ibm.com/developerworks/cn/webservices/
Portal
JCP-JSR168规范对Portal的描述为:Portal是一个基于Web的应用,通常它提供个性化、单点登录、内容集成和显示等功能。Portal技术包括三个方面:
1、Portal服务器(Portal Server)
2、Portlet容器;(Portlet Container)
3、Portlet
1) Portal Server 的定义是
一个 Portal(门户网站)就是指一个 Web-based 的系统,通常都会提供个人化设置、单一登陆、以及由各种不同来源或不同网站取得各式各样的信息,并且将这些信息放在网页之中组合而成的呈现平台,门户网站会有精巧的个人化设置去提供定制的网页,当不同等级的使用者来浏览该页面将获得不同的信息内容。
2) Portlet Container 的定义是
portlet container 是提供 portlets 执行的环境,包含了许多 portlets 并且管理他们的生命周期,他也会永远保存着 portlets 的喜好设置,一个 portlet container 接收到来自 portal 的请求后,接着将这个请求传递给存在 container 的 portlet 执行。portlet container 没有义务去组合 portlets 产生的信息內容,这个工作必须由 portal 来处理。portal 和 portlet container 可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。
3) Portlet 的定义是
一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。Portlets 为可插式 ( pluggable ) 的客户界面组件,提供呈现层成为一个信息系统。这些由 portlet 产生的内容也被称为片段 (fragment),而片段是具有一些规则的Markup( HTML、XHTML、WML ),而且可以和其他的片段组合而成一个复杂的文件。而 Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。客户端和 portlets 的互动是由 portal 通过典型的 request/response 方式实现,正常来说,客户会和 portlets 所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet 的动作,将这个处理状况转向到目标 portlet。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个 portlet 的设置。
工作原理
portlet的生命周期由portlet容器管理。web端通过由Portal执行的请求/应答机制与portlet进行交互。通常,用户与由portlet产生的内容进行交互,比如通过单击按钮或链接,Portal接收到portlet窗口的动作,随后将portlet产生的内容送至用户操作的portlet窗口。对不同的用户,一个portlet产生的内容可能会大不一样,这与用户对portlet的设置有关。portlet容器接收来自Portal的请求并运行它管理的portlet执行请求。portlet容器并不负责聚集portlet产生的内容,处理内容聚集是Portal的职责。Portal和Portlet容器能够被作为单一的应用组件组合在一起,也可以作为一个Portal应用的2个分离的组件。Portal服务器是建立在Http服务器的基础上的。
关于JSR168
由于越来越多的公司开发了各自的Portal组件和基于其的Portal产品(如Bea, IBM, Oracle, Sun, Sybase, Novell, SAP, Jetspeed, Vignette 等.这种互不兼容的接口实现不断带给程序提供商各种问题和麻烦, 为了解决这种问题, JCP发布了JSP168 (Java Specification Request), Portlet Specification, 用以提供不同Portal和Portlets之间的互用性。
applet
Applets是一种贮存于WWW服务器的用Java编程语言编写的程序,它通常由浏览器下载到客户系统中,并通过浏览器运行。Applets通常较小,以减少下载时间,它由超文本标识语言(HTML)的Web页来调用。
JVM
Java虚拟机规范为Java虚拟机(JVM)作了如下定义:
在真实机器中用软件模拟实现的一种想象机器。Java虚拟机代码被存储在 .class文件中;每个文件都包含最多一个public类。
Java虚拟机规范为不同的硬件平台提供了一种编译Java技术代码的规范,该规范使Java软件独立于平台,因为编译是针对作为虚拟机的“一般机器”而做,这个“一般机器”可用软件模拟并运行于各种现存的计算机系统,也可用硬件来实现。
Sorry, the comment form is closed at this time.
PO(persistant object) 持久化对象
与O/R映射同时期出现的概念,如果没有O/R映射,没有这个概念存在。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
在分层软件结构中,PO位于持久层和数据库层之间。
VO(value object) 值对象
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要,个人觉得同DTO(数据传输对象),在web上传递。
在分层软件结构中,VO可以在各层之间进行传递。
DAO(data access object) 数据访问对象
是一个sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,它负持久层的操作。为业务层提供接口。此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。配合VO, 提供数据库的CRUD操作。
http://www.wikipedia.org上的解释:
http://en.wikipedia.org/wiki/Data_access_object
DTO (Data Transfer Object) 数据传输对象
DTO主要负责client(WEB层)和业务层的数据传递。DTO简单的就是一些Java类型,比如:String、Integer,甚至List,Map等,更多就是POJO了,用属性承载数据。虽然只有属性的DTO被一些大师如Martin Fowler认为是“贫血的”,但我认为DTO很好的履行了它的职责:描述业务接口,传输业务数据。
http://www.wikipedia.org上的解释:
http://en.wikipedia.org/wiki/Data_transfer_object
ORM(Object Relational Mapping) 对象关系映射
ORM是一种用于实现从对象数据到关系数据的存储映射的程序设计技术。面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。
简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。
MSDN中对ORM的解释:
ORM的全称是Object Relational Mapping,即对象关系映射。它的实质就是将关系数据(库)中的业务数据用对象的形式表示出来,并通过面向对象(Object-Oriented)的方式将这些对象组织起来,实现系统业务逻辑的过程。在ORM过程中最重要的概念是映射(Mapping),通过这种映射可以使业务对象与数据库分离。从面向对象来说,数据库不应该和业务逻辑绑定到一起,ORM则起到这样的分离作用,使数据库层透明,开发人员真正的面向对象。
来源:http://www.microsoft.com/china/MSDN/library/netFramework/netframework/Grove.mspx?mfr=true
http://www.wikipedia.org上的解释:
http://en.wikipedia.org/wiki/Object-relational_mapping
BO(business object) 业务对象
从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。
POJO(plain ordinary java object) 简单无规则java对象
纯的传统意义的java对象。就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。我的理解就是最基本的Java Bean,只有属性字段及setter和getter方法,没有具体业务逻辑的java类。
它的产生源于Bussiness Ojbect的实现,相对应的技术有Entity Bean。可以作为一种轻量级的业务对象模型。这个在Hibernate当中得到应用,并且EJB3.0的规范里也增加POJO作为相应的部分。
Java
Java是一门易于变成的跨平台编程语言,同时又是一个开发、应用、执行和部署平台。Java包括Java编程语言,开发工具和环境、Java类库等。Java语言是由美国Sun公司开发的一种完全面向对象的程序设计语言。Java语言由C++语言发展起来,但比C++语言简单。Java语言具有简单、与平台无关、高效、健壮、安全、多线程等特点,它是当前网络编程的首选语言。
JVM
JVM 是 Java Virtual Machine 的缩写,即 Java 虚拟机,是一个逻辑的操作系统,它屏蔽了硬件和平台信息,JVM能将字节码文件(*.class)解释并执行。正是这种独立执行的方式,使得Java具有与平台无关的特性。
对象
Java中最基本的编程单元是对象。所有的对象都有对象和行为。在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数据类型的关系一样。
类
类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。类是对象的蓝图,是复杂数据的表示。当你从某类创建一个对象的时候,可以说你已经创建了该类的一个实例。
类的核心特性如下:
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。
继承性:
类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。
多态性:
类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
方法
对象中的方法表达了对象所具有的行为。方法实际上就是函数。
属性
一个对象的属性是能够被外界或对象所处的环境所感知或操纵的数据或状态。
包
Java用包来描述相关类的集合。
打包(packaging)
J2EE可以让开发者将他们应用程序的不同部分创建为可重用的组件,将组件装配进模块和将模块装配进企业应用程序的过程,称为打包(packaging)。
部署(deployment)
可重用的组件可以被定制到操作的环境,在操作环境中安装和定制应用程序的过程,被称为部署(deployment)。
部署描述符(Deployment Descriptors 简称DD)
部署描述符是一个基于XML的文本文件,他的元素描述了如何将一个单元装配和部署进一个特定的环境,每一个元素由一个tag和一个value组成。
J2EE平台提供了简化打包和部署的工具,对于模块和应用程序,它使用JAR文件作为标准的包,使用部署描述符来定制组件和应用程序。其中,ejb-jar.xml描述了Enterprise JavaBean的主要属性,web.xml描述了Web应用程序的主要属性,在任何J2EE应用程序服务器中,这两个文件都是相同的,也是必须的。
通常部署描述符由部署工具自动生成,我们无需直接管理它们。部署描述符元素含有行为信息,这些信息没有直接包含在代码中,他们的目的是告诉部署者如何部署一个应用程序,而不是告诉服务器在何时如何管理组件。
Web模块
Web模块是最小的可部署和使用的Web资源单元,Web模块被作为一个Web Archive(WAR)文件打包和部署,文件的扩展名为.war。它含有:
1、servlet的java类文件及其依赖文件,可以打包为一个库JAR文件。
2、jsp页及其helper Java类
3、静态文档(例如,HTML,图片,声音文件等等)
4、Applet及其类文件
5、Web部署描述符
注:WAR文件没有遵照JAR文件格式的所有要求。
持久化
持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。
Java中有5种实现持久化的办法:
1.对象序列化:
这是最简单的使java对象持久化的方法。
2.通过JDBC使用数据库
将程序中的运行状态保存到数据库中,这是我们最经常 最容易想到的办法。
3.Bean的持久化
EJB中的CMP,这是容器自动实现持久化
4.JDO
当对象序列化太简单, JDBC太凌乱, CMP又太沉重时,JDO架构提供了查询 能够编写出干净的代码,而且不再依赖应用服务器。
5.JAXB
如果说JDO是围绕Java对象,那么JAXB就是围绕XML schemata,其实我认为JAXB就类似Castor的XML机制,将对象序列化成XML文件格式,使用marshal
和unmarshal在xml和Java class之间转换。
持久层
持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。
对象数据映射(ORM)
ORM-Object/Relational Mapper,即“对象-关系型数据映射组件”。对于O/R,即 Object(对象)和 Relational(关系型数据),表示必须同时使用面向对象和关系型数据进行开发。
备注:建模领域中的 ORM 为 Object/Role Modeling(对象角色建模)。另外这里是“O/R Mapper”而非“O/R Mapping”。相对来讲,O/R Mapping 描述的是一种设计思想或者实现机制,而 O/R Mapper指以O/R原理设计的持久化框架(Framework),包括 O/R机制还有 SQL自生成,事务处理,Cache管理等。