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. STL--迭代器设计原则和萃取机制(Traits)

    title: C++ STL迭代器设计原则和萃取机制(Traits) date: 2019-12-23 15:21:47 tags: STL C/C++ categories: STL 迭代器 (it ...

  2. C++ do while无限循环~

    #include<iostream> using namespace std; #include<Windows.h> int main() { ; ; system(&quo ...

  3. Channel详解

    复制自:http://www.cnblogs.com/youngKen/p/4921092.html java.nio.channels.FileChannel封装了一个文件通道和一个FileChan ...

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

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

  5. 每天一点点之vue框架开发 - 引入bootstrap

    只使用css样式   如果在你的项目中只是使用css样式,那就不需要安装,直接全局引入样式就好 <link rel="stylesheet" href="https ...

  6. pytorch文档学习笔记(2)

    三.CUDA semantics 二.Broadcasting semantics  广播机制 广播机制要第一项对齐,第一项对齐后(相等)才能广播,或者某个第一项为1. 但如果两个size个数相等,则 ...

  7. Python 自省指南

    原作者:Patrick K. O'Brien 什么是自省? 在日常生活中,自省(introspection)是一种自我检查行为.自省是指对某人自身思想.情绪.动机和行为的检查.伟大的哲学家苏格拉底将生 ...

  8. hdfs 删除和新增节点

    最近发现hdfs的一个问题,每当集群开启的时候,有一个节点上的可用空间就一直在减少,并且速度很快,发现是data目录下的dncp_block_verification.log.curr文件在一直变大, ...

  9. BZOJ:1878: [SDOI2009]HH的项链

    题解:解法一:莫队 解法二:按区间左端点排序,让区间内最左边的贝壳对答案产生贡献,树状数组维护,转移对答案产生贡献的贝壳位置 #include<iostream> #include< ...

  10. 安装swoole redis异步 hiredis swoole扩展加载失败 或者不显示问题 解决办法

    当前办法仅供参考 贴上报错 找了好久 根据网上办法也试了 没解决 最后 仔细读问题 觉得可能是 hiredis路径问题 终于解决了 解决办法: 进入你的安装包目录然后执行下面 mkdir /usr/l ...