随着电子商务和信息技术的快速发展以及对他们的需求给应用程序开发人员带来了新的压力。怎样用更少的资金、更少的时间、更少的资源来更快地设计、开发企业应用程序呢?
J2EE为此带来光明。J2EE平台提供了一个支持简化的、基于组建的方法来设计、开发、装配及部署企业应用程序。由于组件技术的使用,开发人员可以进行合理的分工,许多工作可以同时进行,提高了开发的效率。并且这些组件在EJB中都是严格分离的,我们在进行组件的组装或是更新替换就非常的方便,这就使得软件有很好的重用性和可维护性。
J2EE(Java Platform Enterprise Edition)是java的一种企业版用于企业级开发的应用服务程序,基于J2EE编程语言和J2SE。所以在学习j2ee之前,还是先学习j2se,不管怎样j2ee底层的操作依然还会调用很到j2se。另外,对j2se掌握好,才能使我们在后面走的顺风顺水。
因为刚开始接触java,有人给我说java完全和c#完全不是一回事。但自己在接触j2se时,发现java和c#的语法和编程思想都是差不多的,为什么就是完全不是一回事?现在本人的理解是如java中的j2ee中应用了组件+容器这种核心技术,推出了不少核心的框架,我们在应用时要进行搭架,配置文件,减少了代码的编写。这是和c#不一样的地方吗?可是又想,自己没用过.net中的框架去编写过东西,并不代表它不存在,java中有的东西c#中也应该是有的,不然也不会这两种语言会对立这么久,而不知谁优谁劣。不管怎么随着后面的深入学习,可能这个问题自是水到渠成。
J2EE使用多层分布式的应用模型,最著名的是MVC三层模型。在一个大的工程或项目中,为了让嵌套和后台各个模块的编程人员能够同时进行工作提高开发效率,最重要的就是实现层与层之间的耦合关系。在j2ee中的这个多层分布模型,是通过三层或四层来实现的:
(1) 客户层:客户前端的操作层
(2) Web层:为我们前端提供服务的一个容器,动态的给我们的客户端提供一些需求,根据客户的需求做出不同的响应。
(3) 业务层:对业务处理的逻辑,进行后台的操作。
(4) 企业信息系统:企业后端,运行在EIS服务器上的软件系统。
上面的这个层次也是三层应用,因为分布在三个不同的位置上:客户计算机、j2ee服务器以及后台的数据库或过去遗留的系统。
J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持。针对接口我想是j2ee学习之路必备的思想。为什么这么说呢?j2ee api 有这样一个特点,大家比较熟悉的几个包java.jms、javax.servlet.heep、javax.ebj等都是以interface居多,实现类较少。j2ee旨在通过interface的声明来规范实现的行为,任何第三方的厂商想要提供自己品牌的实现前提也是遵循这些我接口定义的规则。任何脱离这一规则的程序,我想都会麻烦连连。我想J2EE中的13种技术规范也都是针对接口的吧。下面我们就来看看这13种技术规范。
是一种用于执行SQL语句的java API,可以为多重数据库提供统一访问,它由一组用java语言编写的类和接口组成。
个人理解:JDBC是连接数据库用的准没有错,因为是一个接口嘛,则我们必须要重写了,它可向数据库发送SQL语句,并且它可以在任何平台上运行,这也是Java“编写一次,随处运行”的体现,这里用到了驱动程序帮忙解决这个问题,具体怎么解决我也不太清楚,以前看过文章说与java虚拟机有关系,针对这个问题我会在会面仔细的研究一下,找到运行机理。
被用来执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源DNS和LDAP,本地文件系统或应用服务器中的对象。
个人理解:既然同样是接口,则他就可以像JDBC能运行在不同的数据库上一样,它通过写一个程序由此来达到访问各种各样的目录。我知道在操作系统上我们可以通过搜索一个文件名字,找到这个文件对象;那么这个JNDI自然也是通过名字找到所对应的对象,那么它用在企业开发的什么情况下需要用名字找到对象呢?这一点有待解决。
是一个组件结构,用于开发和部署面向对象的、分布式的企业级的应用程序,使用EJB结构编写的应用程序是可扩展的、事务的和多用户安全的。
个人理解:EJB这个内容应该很重要,是j2ee的核心。它位于应用服务器,属于业务逻辑层的内容,它与客户端进行了隔离,并且与后端的数据库进行交互,使其系统的业务逻辑都集中在应用服务层,这样也可以减少客户机和后端数据库的负担。
是允许运行在一个Java虚拟机上的对象调用运行在另一个Java虚拟机上的对象的方法。这两个Java虚拟机可以是运行在相同计算机上的不同进程中,也可以使运行在通过TCP/IP链接的不同计算机上。
个人理解:他它就是为远程通信服务提供服务的。我想这也就是为了实现j2ee分布式服务的吧,也就是为服务器和客户端进行消息传递而有的一种机制。
在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA中展开,或者他们可以创建Java类并和其它ORB一起展开的CORBA对象客户。后一种方法提供了另一种途径,通过它Java可以被用于将新的应用程序和旧的系统集合在一起。
个人理解:这个和上面的RMI很像,都可以用客户机调用任何地方的服务器。但是CORBA的实现却更加复杂,RMI调用远程对象的方法时,客户机将对象作为参数传递,而CORBA不支持对象序列化,只能通过引用来完成。不是很理解啊,问题继续保留。
页面由HTML页面和嵌入其中的Java代码组成,它可以接受客户端的请求并动态地生成HTML响应页面。
个人理解:它在应用服务器中的表示层,与客户端进行打交道。它是编程技术基于web的脚本,与ASP很像,只不过后台运用的是java语言。对于我们学习过BS的来说,这块我觉得应该好理解。
是用Java编写的、协议和平台都独立的服务器端的组件,它们使用“请求/响应”模式,提供了一个局域Java的Web服务器的解决方案,可以动态地支持Java的Web服务器。由于Servlet运行服务器内部,不需要图形用户接口。
个人理解:Servlet提供的功能大多和JSP类似,不过实现的方式不同。JSP通常是大多数的HTML代码嵌入少量的Java代码,而servlet是由java写成并且生成HTML。
在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。Servlet跟微软的一般处理程序很像。
是一种可以用来定义其他标记语言的语言,它通常用来在不同的系统或商务过程之间共享数据。XML和java是相互独立的,但是它们具有的目标是平台独立性。
个人理解:也就是说通过Java和XML的组合,可以得到一个独立性的企业系统集成方案。
是用来和面向消息的中间件相互通信的应用程序接口。它即支持点对点类型的域,又支持“发布、订阅”类型的域,并且提供对下列类型的支持:经认可的消息传递,事务性消息的传递,一致性消息和对持久性订阅者的支持。
个人理解:他是Java组件之间通讯的方式,我现在想到的是和QQ的通讯机制是不是有些相同。
定义了一种标准的API,应用系统可以利用它来访问和实现各种事务。
个人理解:这个规范是指定了事务管理器和分布式事务系统所涉及各方的本地Java接口
是CORBA OTS事务监控的基本实现,它规定了事务管理器的实现方式。该事务管 理器在高层支持JavaTransaction API规范,并且在较低层实现OMG OTS Spcification的Java映像。JTS事务管理器向应用服务器、资源管理器、独立的应用以及通信资源管理提供了事务服务。
个人理解:JTS要依靠JTA。
是用于存取邮件服务器的API,它提供了一套邮件服务器饿抽象类。不仅支持SMTP服务,也支持IMAP服务器。
个人理解:它是应用系统向用户发送消息的一种方式,用它我们也可以编写像outlook那样的邮件收发程序。
Javamail是利用jaf来处理MIME编码的邮件附件。MIME的字节流可以被转换成java 对象,大多数应用都不需要直接使用JAF。
小结:
本人理解在这十三个标准当中,可以划分为三部分:JSP、Servlet、XML这三个标准是在描述web层的应用开发,而EJB这个标准是对企业内的业务逻辑进行整合,达到企业所需,而其它的标准都是在保证J2EE这个三层或四层体系之间可以进行安全、快捷、高效的通信和链接。
J2EE想要实现的宗旨是“一次编译,到处执行”,从这13个标准想要达到的效果就显而易见了,也不难看出想要达到这一目的方法就是“接口编程”。J2EE这个技术框架在现在是非常受欢迎和认可的,所以我们学好,学透它是无可厚非的。