1.javaEE应用的分层模型

  不管是经典的Java EE架构,还是轻量级的Java EE架构,大致上都可以分为以下几层:

  1. Damain Object(领域对象)层:该层是由系列的POJO(普通的,传统的,Java对象)组成,这些对象是该系统的Domain Object,往往包含了各自需要实现的业务逻辑方法。
  2. Dao(Data Access Object,数据访问对象)层:此层是由系列的DAO组件组成,这些Dao实现了对数据库的创建,查询,更新和删除(CRUD,增删改查)等原子操作。
  3. 业务逻辑层:此层是有一系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法,这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法,也可能是依赖Dao组件实现的业务逻辑方法。
  4. 控制器层:此层由系列控制器组成,这些控制器用于拦截用户的请求,并调用业务逻辑组健的业务逻辑方法,处理用户的请求,并根据处理结果转发到不同的表现层组件。
  5. 表现层:此层是由系列的jsp等页面组成,用于获取用户的请求,并负责将处理结果显示出来。

  各层Java EE组件之间是以松耦合的方法耦合在一起,各组件并不以硬编码的方法耦合,这种方法是为了应用以后的扩展性。从上到下,上面的组件依赖下面的组件的功能,从下到上,下面的组件支持上面组健的实现。

2.Java EE应用的组件

  总体而言,Java EE应用大致包括如下几类组件:

  1. 表现层组件:主要是负责用户的输入数据,或者向客户端显示系统状态,最常用的表现层技术是JSP,但是JSP并不是唯一的表现层技术。
  2. 控制器组件:对于Java EE的MVC框架来说,框架提供一个前端核心控制器,而核心控制器用来负责拦截用户的请求,并将请求转发给用户实现的控制器组件,而这些用户实现的控制器组件则负责处理调用业务逻辑方法,处理用户请求。
  3. 业务逻辑组件:是系统的核心组件,实现系统的业务逻辑,通常,一个业务逻辑方法对应一此用户操作,一个业务逻辑方法应该是一个整体的,应此,要求,业务逻辑方法增加事务性,业务逻辑方法只负责实现业务逻辑,不应该进行数据库的访问。
  4. Dao组件:也称为数据库访问对象,这个类型的对象比较缺少变化,每个Dao组件都提供Domain Object的创建,查询,更新,删除等操作。这些操作对应数据库中的CRUD等原子操作。当然,如果采用不同的持久层访问技术,Dao组件实现也不同。为了实现业务逻辑层和Dao层的分离,每个Dao组件都提供了接口,业务逻辑组件面向Dao接口编程,从而提供了更好的解耦。
  5. 领域对象组件:领域对象抽象了系统的对象模型,通常而言,这些领域对象的状态都是保存再数据库中,因此,每个领域对象通常对应一个后多个数据表。

  使业务逻辑和Dao操作分开的原因是因为保证业务逻辑方法的实现,与具体的持久层访问技术分离,当系统需要在不同的持久层技术之间切换时,系统的业务逻辑组件无需任何改变。

  持久层:
  所谓持久,就是把数据保存到可以永久保持的存储设备当中。一般来说,持久更为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作,
  持久层,就是把持久的动作封装成一个独立的层,这是为了降低功能代码之间的关联。创建一个更清晰的抽象,提高代码的内聚力,降低代码的耦合度,从而增强代码的要劳动局生和可重用性。
  实现持久层的框架有: JDBC, Hibernate,Mybatis,JPA等技术。

3.常用的Java EE服务器

  采用Struts+Spring+Hibermate这种架构的软件系统,无需专业的Java EE服务器支持,只需要简单的Web服务器就可,Java中常见的Web服务器都是开源的,而且具有很好的稳定性。

  常见的Web服务器:

  1. Tomcat:此服务器和Java结合的最好,时Sun官方推荐的JSP服务器。
  2. Jetty:另一个优秀的服务器
  3. Resin:目前最快的JSP,Servlet运行平台,支持EJB个人学习是免费的,但是商用的话是需要交纳相应的费用。

  除了常用的Web服务器之外,还有许多的Java EE服务器,相对于Web服务器,Java EE服务器支持更多的Java EE特性,如分布式事务,EJB容器等,常用的Java EE服务器有:

  1. JBoss:开源的Java EE服务器。
  2. web Logic和WebSphere:专业的商用的JavaEE服务器,价格不菲。

  对于轻量级的Java EE而言,没有必要使用Java EE服务器,简单的Web服务器即可。

java EE应用概述的更多相关文章

  1. Java EE.JSP.概述

    JSP最终会被转换成标准Servlet,该转换过程一般出现在第一次请求页面时. JSP页面的主要组成部分如下: HTML 脚本:嵌入Java代码 指令:从整体上控制Servlet的结构 动作:引入现有 ...

  2. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  3. 【Java EE 学习 80 上】【WebService】

    一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...

  4. 《Java EE 开发技术与案例教程》 这是一本好书啊:简洁精辟(相见恨晚)

    第一章:Java EE 概述 1.get:JPA:Java Persistence API, 数据持久化API: JPA是一种ORM规范,它的实现实例:Hibernate.mybatis 2.Web ...

  5. 【Java EE 学习 25 上】【网上图书商城项目实战】

    一.概述 1.使用的jdk版本:1.6 2.java EE版本:1.6 3.指导老师:传智播客 王建 二.小项目已经实现的功能 普通用户: 1.登陆 2.注册 3.购物 4.浏览 管理员用户(全部管理 ...

  6. Java EE : 三、图解Session(会话)

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.Session由来 二.Sessio ...

  7. Java EE : 二、图解 Cookie(小甜饼)

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...

  8. Java EE : 一、图解Http协议

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.技术基石及概述 二.深入理解技术基石 ...

  9. JAVA EE(简述)

    一.平台概述 JavaEE的全称是Java Enterprise Edition,它是一个开发分布式企业级应用的规范和标准 Java 平台三个版本: Java ME(Java  Micro  Edit ...

随机推荐

  1. Azure Container Registry-基于开源 Docker Registry 的专用 Docker 注册表服务

    本文语雀知识库:https://www.yuque.com/seanyu/azure/acr 概述 Azure 容器注册表(Azrue Container Registry,简称ACR)是 Azure ...

  2. 一百零六、SAP的OOP面向对象编程,OO-ALV的简介

    面向对象编程,如图 基本概念: 1.对象(Object)是一个现实实体的抽象.一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的外界信号的反应. ...

  3. JavaWeb学习记录

    服务器端跳转(请求重定向): 1.jsp内跳转 : <jsp:forward page="page_scope_03.jsp"/> 客户端跳转(请求转发): 1.通过超 ...

  4. 苏州大学ICPC集训队新生赛第二场

    A - Score UVA - 1585 水 #include<bits/stdc++.h> using namespace std; int main(){ int n; cin> ...

  5. EUI库 - 快速入口之项目配置

      egretProperties.json exmlRoot  指定exml文件存放根目录,该路径必须为相对路径,目录内只能有exml文件 themes    主题文件数组,配置所有主题文件路径,该 ...

  6. 计划任务常用在线工具-微服务信息整-seafile网盘-亿图操作-正则工具

    正则工具 https://regex101.com/ http://www.regexp.cn/Regex 身份证匹配 ^(\\d{}|\d{})(\\d|[xX])$ \d{}[-9Xx]|\d{} ...

  7. 广义高斯分布(GGD)和非对称广义高斯分布(AGGD)

    <No-Reference Image Quality Assessment in the Spatial Domain>,BRISQUE. 1. 广义高斯分布,generalized G ...

  8. 《Thinking in Java》中讲到了final,发现自己有部分地方迷糊

    1.1当给全局的静态字段加上final时,系统是不会给其赋默认值的,若不手动初始化,会编译时错误——Variable 'xxx' might not have been initialized. 1. ...

  9. Linux-课后练习(第二章命令)20200217-1

  10. 读书笔记 - javascript 高级程序设计 - 第一章 简介

      第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...