java EE应用概述
1.javaEE应用的分层模型
不管是经典的Java EE架构,还是轻量级的Java EE架构,大致上都可以分为以下几层:
- Damain Object(领域对象)层:该层是由系列的POJO(普通的,传统的,Java对象)组成,这些对象是该系统的Domain Object,往往包含了各自需要实现的业务逻辑方法。
- Dao(Data Access Object,数据访问对象)层:此层是由系列的DAO组件组成,这些Dao实现了对数据库的创建,查询,更新和删除(CRUD,增删改查)等原子操作。
- 业务逻辑层:此层是有一系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法,这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法,也可能是依赖Dao组件实现的业务逻辑方法。
- 控制器层:此层由系列控制器组成,这些控制器用于拦截用户的请求,并调用业务逻辑组健的业务逻辑方法,处理用户的请求,并根据处理结果转发到不同的表现层组件。
- 表现层:此层是由系列的jsp等页面组成,用于获取用户的请求,并负责将处理结果显示出来。
各层Java EE组件之间是以松耦合的方法耦合在一起,各组件并不以硬编码的方法耦合,这种方法是为了应用以后的扩展性。从上到下,上面的组件依赖下面的组件的功能,从下到上,下面的组件支持上面组健的实现。
2.Java EE应用的组件
总体而言,Java EE应用大致包括如下几类组件:
- 表现层组件:主要是负责用户的输入数据,或者向客户端显示系统状态,最常用的表现层技术是JSP,但是JSP并不是唯一的表现层技术。
- 控制器组件:对于Java EE的MVC框架来说,框架提供一个前端核心控制器,而核心控制器用来负责拦截用户的请求,并将请求转发给用户实现的控制器组件,而这些用户实现的控制器组件则负责处理调用业务逻辑方法,处理用户请求。
- 业务逻辑组件:是系统的核心组件,实现系统的业务逻辑,通常,一个业务逻辑方法对应一此用户操作,一个业务逻辑方法应该是一个整体的,应此,要求,业务逻辑方法增加事务性,业务逻辑方法只负责实现业务逻辑,不应该进行数据库的访问。
- Dao组件:也称为数据库访问对象,这个类型的对象比较缺少变化,每个Dao组件都提供Domain Object的创建,查询,更新,删除等操作。这些操作对应数据库中的CRUD等原子操作。当然,如果采用不同的持久层访问技术,Dao组件实现也不同。为了实现业务逻辑层和Dao层的分离,每个Dao组件都提供了接口,业务逻辑组件面向Dao接口编程,从而提供了更好的解耦。
- 领域对象组件:领域对象抽象了系统的对象模型,通常而言,这些领域对象的状态都是保存再数据库中,因此,每个领域对象通常对应一个后多个数据表。
使业务逻辑和Dao操作分开的原因是因为保证业务逻辑方法的实现,与具体的持久层访问技术分离,当系统需要在不同的持久层技术之间切换时,系统的业务逻辑组件无需任何改变。
持久层:
所谓持久,就是把数据保存到可以永久保持的存储设备当中。一般来说,持久更为直接的理解就是对数据库的各种操作,如CRUD(增加,删除,修改,查询),更新等操作,
持久层,就是把持久的动作封装成一个独立的层,这是为了降低功能代码之间的关联。创建一个更清晰的抽象,提高代码的内聚力,降低代码的耦合度,从而增强代码的要劳动局生和可重用性。
实现持久层的框架有: JDBC, Hibernate,Mybatis,JPA等技术。
3.常用的Java EE服务器
采用Struts+Spring+Hibermate这种架构的软件系统,无需专业的Java EE服务器支持,只需要简单的Web服务器就可,Java中常见的Web服务器都是开源的,而且具有很好的稳定性。
常见的Web服务器:
- Tomcat:此服务器和Java结合的最好,时Sun官方推荐的JSP服务器。
- Jetty:另一个优秀的服务器
- Resin:目前最快的JSP,Servlet运行平台,支持EJB个人学习是免费的,但是商用的话是需要交纳相应的费用。
除了常用的Web服务器之外,还有许多的Java EE服务器,相对于Web服务器,Java EE服务器支持更多的Java EE特性,如分布式事务,EJB容器等,常用的Java EE服务器有:
- JBoss:开源的Java EE服务器。
- web Logic和WebSphere:专业的商用的JavaEE服务器,价格不菲。
对于轻量级的Java EE而言,没有必要使用Java EE服务器,简单的Web服务器即可。
java EE应用概述的更多相关文章
- Java EE.JSP.概述
JSP最终会被转换成标准Servlet,该转换过程一般出现在第一次请求页面时. JSP页面的主要组成部分如下: HTML 脚本:嵌入Java代码 指令:从整体上控制Servlet的结构 动作:引入现有 ...
- 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)
轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...
- 【Java EE 学习 80 上】【WebService】
一.WebService概述 什么是WebService,顾名思义,就是基于Web的服务,它使用Http方式接收和响应外部系统的某种请求,从而实现远程调用.WebService实际上就是依据某些标准, ...
- 《Java EE 开发技术与案例教程》 这是一本好书啊:简洁精辟(相见恨晚)
第一章:Java EE 概述 1.get:JPA:Java Persistence API, 数据持久化API: JPA是一种ORM规范,它的实现实例:Hibernate.mybatis 2.Web ...
- 【Java EE 学习 25 上】【网上图书商城项目实战】
一.概述 1.使用的jdk版本:1.6 2.java EE版本:1.6 3.指导老师:传智播客 王建 二.小项目已经实现的功能 普通用户: 1.登陆 2.注册 3.购物 4.浏览 管理员用户(全部管理 ...
- Java EE : 三、图解Session(会话)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.Session由来 二.Sessio ...
- Java EE : 二、图解 Cookie(小甜饼)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...
- Java EE : 一、图解Http协议
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.技术基石及概述 二.深入理解技术基石 ...
- JAVA EE(简述)
一.平台概述 JavaEE的全称是Java Enterprise Edition,它是一个开发分布式企业级应用的规范和标准 Java 平台三个版本: Java ME(Java Micro Edit ...
随机推荐
- STL--迭代器设计原则和萃取机制(Traits)
title: C++ STL迭代器设计原则和萃取机制(Traits) date: 2019-12-23 15:21:47 tags: STL C/C++ categories: STL 迭代器 (it ...
- C++ do while无限循环~
#include<iostream> using namespace std; #include<Windows.h> int main() { ; ; system(&quo ...
- Channel详解
复制自:http://www.cnblogs.com/youngKen/p/4921092.html java.nio.channels.FileChannel封装了一个文件通道和一个FileChan ...
- 苏州大学ICPC集训队新生赛第二场
A - Score UVA - 1585 水 #include<bits/stdc++.h> using namespace std; int main(){ int n; cin> ...
- 每天一点点之vue框架开发 - 引入bootstrap
只使用css样式 如果在你的项目中只是使用css样式,那就不需要安装,直接全局引入样式就好 <link rel="stylesheet" href="https ...
- pytorch文档学习笔记(2)
三.CUDA semantics 二.Broadcasting semantics 广播机制 广播机制要第一项对齐,第一项对齐后(相等)才能广播,或者某个第一项为1. 但如果两个size个数相等,则 ...
- Python 自省指南
原作者:Patrick K. O'Brien 什么是自省? 在日常生活中,自省(introspection)是一种自我检查行为.自省是指对某人自身思想.情绪.动机和行为的检查.伟大的哲学家苏格拉底将生 ...
- hdfs 删除和新增节点
最近发现hdfs的一个问题,每当集群开启的时候,有一个节点上的可用空间就一直在减少,并且速度很快,发现是data目录下的dncp_block_verification.log.curr文件在一直变大, ...
- BZOJ:1878: [SDOI2009]HH的项链
题解:解法一:莫队 解法二:按区间左端点排序,让区间内最左边的贝壳对答案产生贡献,树状数组维护,转移对答案产生贡献的贝壳位置 #include<iostream> #include< ...
- 安装swoole redis异步 hiredis swoole扩展加载失败 或者不显示问题 解决办法
当前办法仅供参考 贴上报错 找了好久 根据网上办法也试了 没解决 最后 仔细读问题 觉得可能是 hiredis路径问题 终于解决了 解决办法: 进入你的安装包目录然后执行下面 mkdir /usr/l ...