JavaEE知识整理系列(一)JavaEE概述 .

转载 2013年12月04日 10:27:01

1.        JavaEE基本概念

JavaEE 是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。但那是需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本,因此J2EE改名为Java EE,实际也反映出业界这种共同心声。JavaEE应该是J2EE的延伸。

J2EE是一个标准,这个标准不仅定义了基本的规范和接口,也有一些比较固定的架构模型。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。

       在传统的不分层的软件架构中,客户端担当了过多的角色而显得庞大而且不容易进行维护和修改,扩展性非常差,它使得重用业务逻辑和界面逻辑非常困难。现在JavaEE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层。使得扩展性和重用性得到大大的提高。

2.        JavaEE架构

2.1.        JavaEE架构图

2.2.        JavaEE架构理解

       (1)Client tier客户层,运行在客户端机器上。客户层普遍地支持HTTP协议,也称客户代理。具体表现为Java  Applet程序、Java桌面程序、浏览器等。

    (2)WEB tier WEB应用层,运行在JavaEE服务器上。在JavaEE中,这一层由WEB 容器运行,它包括JSP, SERVLET等WEB部件。这里的WEB容器具体表现为Tomcat等。

    (3)EJB tier 企业组件层,运行在JavaEE服务器上。企业组件层由EJB容器运行,支持EJB等服务和技术。这里的EJB容器具体表现为JBoss等

    (4)EIS tier 企业信息系统(Enterprise information system)层,运行在EIS服务器上。企业信息系统包含企业内传统信息系统如财务,CRM等,特点是有数据库系统的支持。一般中小型系统直接表现为数据库系统。

        JavaEE的整个应用程序是由组件构成的,JavaEE组件是具有独立功能的软件单元。JavaEE的四层模型的每一层都也是对相近功能的组件的封装。下面对这个架构图谈谈个人的理解:

(1)       在C/S架构的客户层、Applet为表现形式的客户层、Web层、EJB层都可能需要J2SE支持。

(2)       在C/S架构的客户层、Web层、EJB层可以调用JavaEE的基本组件和服务,比如JTA、JPA、JNDI、JMS等等。

(3)       如果是C/S架构,那么客户层直接和EJB层或者直接和企业信息系统(最典型的是DB)交互(当然这种直接和DB交互的架构也无所谓分层了),当然这里的EJB层也可以不部署EJB容器,直接为Java服务端,这也是最原始、简单的C/S应用模式。

(4)       如果是B/S架构,那么客户层直接Web层交互,Web层又可以和EJB层交互。

2.3.        JavaEE架构与分层的Web结构

三层结构:在C/S或B/S架构的应用中,为了提供程序的可扩展性,一般需要将表示与业务逻辑分离,业务逻辑和数据处理分离,因此一般分为三层结构:表示层业务逻辑层数据访问层(数据持久)。在java开发过程中一般 将对应的packet分别命名为ui(view),business(service),dao。

MVC模式:然而在B/S的Web程序中(其实C/S的应用程序也是如此),为了进步提高可扩展性、复用性,真正实现表示层和业务逻辑层的分离,一般使用MVC设计模式,将表示层业务逻辑层分为:视图(View)控制(Control)模型(Model)(有人将表示层和业务逻辑层之间的这部分形象的称为灰色地带)。MVC其实是一种设计思想,这种思想强调实现模型(Model)、视图(View)和控制器(Control)的分离。这种思想是如何作用于Web就是在Web开发中引入MVC思想,想要达到的目的是: 实现表示层(UI)和业务逻辑层分离——控制器是为了实现上述目的而存在的!基于这中设计思想的典型框架就是Spring、Strucs框架MVC部分。或许我们会发现,在数据访问层通过持久化技术解决后,我们所说的UI层和MVC中的View是一回事,我们的所说的业务逻辑层和MVC中的Model指的是一回事。MVC提供了让模型和视图相分离的思路——引入控制器。我们把页面跳转关系管理、表单数据的封装及验证、国际化等任务交给控制器处理。因此,也不难理解为什么流行的MVC框架都具有管理页面跳转关系、表单数据的封装及验证、国际化等特性。

对应关系:因此,分层的Web架构和具体组件对应如下:

1)        表示层:Struts-MVC、Spring-MVC、ActionServlet、Struts-Action、JSP、XML、JS等

2)        业务逻辑层:Spring-Ioc、Spring-Transaction等

3)        数据持久层:Hibernate、连接池、JDBC等

Java Web架构:根据技术的发展,Java的Web架构可以有如下选择

1)        JSP(原始社会UI和业务逻辑处理都在里面) 

2)        JSP+JavaBean(UI和业务逻辑相对分离,但是分离不够明显)

3)        JSP+JavaBean+Servlet(使用Servlet进行跳转和事件的分发,逻辑进一步清晰)

4)        JSP+JavaBean+Struts(Struts提供了一个框架处理跳转等等)

5)        JSP+JavaBean+Struts+hibernate(由JDBC改为hibernate持久化)

6)        JSP+JavaBean+Spring(Spring提供了一个框架处理跳转等等)

7)        JSP+JavaBean+ Spring +hibernate(由JDBC改为hibernate持久化)

8)        JSP+JavaBean+ Struts+Spring(Struts处理表示层和相关控制,Spring专门处理业务逻辑)

9)        JSP+JavaBean+ Struts+Spring+Hibernate(Struts处理表示层和相关控制,Spring专门处理业务逻辑,Hibernate负责持久化)

10)     上面的框架中可以使用JS或者JS框架来处理负责的表示层逻辑处理。

注意,这里struts包含了struts1.0和struts2.0,这两字是有差异的。

JavaEE架构和分层的Web结构关系:至于上面的的分层结构和JavaEE的分层关系应该比较清楚了。如果B/S架构中没有EJB这一层,那么上面的分层结构应该都可以部署在JavaEE的Web层,当然如果需要EJB这层,那么业务处理和持久化也可以部署在EJB这层。

 

 

几张图让你彻底了解JAVASE、JAVAEE、JAVAWEB整个的知识体系

几张图让你了解JAVASE、JAVAEE、JAVAWEB整个的知识体系 注:所有图片均来自CSDN知识库。 一、JAVASE:  二、JAVAEE: 三、JAVAW...
  • zouhuu
  • zouhuu
  • 2017年01月11日 22:45
  • 4310

【JAVA秒会技术之秒杀面试官】JavaEE常见面试题(三)

个人结合诸多资料,总结的一些JavaEE常见面试题,主要针对初/中级程序员。想要word完整版下载的,评论里留言留下你的邮箱!...
  • qq296398300
  • qq296398300
  • 2016年12月08日 11:29
  • 3506

JavaEE的核心技术简介

一. JavaEE的架构 二. JavaEE的核心技术简介 三. JavaEE平台中的角色 四. 当前流行的JavaEE平台 五.  JavaEE的应用   一.JavaEE架构: ...
  • youzhouliu
  • youzhouliu
  • 2016年07月04日 15:27
  • 3493

JavaEE知识整理系列(六)JMS

1.         网上典型例子 例1:http://www.verydemo.com/demo_c202_i2146.html 这个例子相对比较详细完整,也是JMS入门级的资料,例子中的JMS消息...
  • ICTCamera
  • ICTCamera
  • 2013年11月09日 10:30
  • 907

JavaEE知识整理系列(八)Web Service

1.        SOAP简介 SOAP(Simple Object Access Protocol)简单对象访问协议,是在分布式环境中交换数据的简单协议,它以XML为数据描述载体。下面的通信协议可...
  • ICTCamera
  • ICTCamera
  • 2013年11月09日 10:38
  • 824

JavaEE知识整理系列(六)JMS .

DIY例子 使用JMS不仅能发送(send)/发布(publish)消息,也能获得(receive)/订阅(subscribe)的消息,消息的发送(send)/发布(publish)和(receiv...
  • sunjia961673278
  • sunjia961673278
  • 2013年12月04日 10:37
  • 368

JavaEE体系架构概述(续)

持久层框架提供透明持久化,业务层应用程序只需要调用持久层框架的API就 可以保存、查询和删除持久对象了。持久层框架会使用O/R(对象/关系)映射 自动生成访问数据库的SQL语句。另外,持久层框架能在服...
  • www19940501a
  • www19940501a
  • 2014年03月10日 23:25
  • 1055

1.1 JavaEE应用概述

1.1 JavaEE应用概述 我所讲的应用规范超出了Sun提出的经典Java EE应用规范,而是一种更广泛的开发规范 经典Java EE应用往往以EJB(企业级Java Bean)为核心,以应用服务器...
  • wolaiye320
  • wolaiye320
  • 2016年05月07日 16:25
  • 1306

JavaEE概述及MVC模型

写这篇文章之前,参考了好多别人的文章,还有我的一些想法,与大家共勉。1.JavaEE基本概念:(1)官方定义:JavaEE 是一个开发分布式企业级应用的规范和标准。 (2)原名J2EE,JavaEE...
  • lixintao95
  • lixintao95
  • 2017年06月01日 18:39
  • 336

JavaEE中的事务管理——事务概述

今天打算说一说事务管理,读者可能了解也有可能不了解,其实很简单(大牛请自行绕过)。本来想引用个成语的啥的来描述事务的特点,但是搜肠刮肚也没有发现合适的,于是就找了下面几组成语来描述事务性。其实在官方文...
  • beijiguangyong
  • beijiguangyong
  • 2015年02月27日 23:52
  • 1674
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaEE知识整理系列(一)JavaEE概述 .
举报原因:
原因补充:

(最多只允许输入30个字)