Java EE平台介绍

2.1 企业应用总览

这一部分将对企业应用及其设计和开发进行简单介绍。

就像之前说的,Java EE 平台是为了帮助开发者开发大规模、多层次、可伸缩、服务可靠、网络安全的应用而设计的。对于这样的应用我们通常简称为企业应用。之所以这样叫,是因为这种应用都是为了解决大企业所遇到的实际问题而存在的。当然,企业应用不知对大规模企业,政府机构有意义,在这个高速发展的网络写作社会,它对于个人开发者及小型组织一样有着不可或缺的作用。

企业应用通常对安全性及可靠性有着较高的要求,这也使得它变得不可避免的复杂,Java EE平台则通过提供一套通用的开发模式,API,和运行时环境使得开发者能更加的专注于功能性的开发。

2.1.1 多层次应用

在一个多层次的应用中,应用的功能被分割为相对独立的多个不同的功能区域,我们称之为层。一般来说,一个多层次应用包含,客户端应用层、中间层以及后端的数据访问层(通常我们也称之为企业信息系统层)。客户端层包含一系列客户端程序,用于构建相应的客户请求到中间层;中间层则分为web层及业务逻辑层,分别用于处理客户请求及处理应用数据,并将其存储到后端数据持久存储层中。

Java EE 应用开发主要专注于中间层的开发,使得企业应用开发变得更简单,健壮和安全。

2.1.1.1 客户端层

客户端层包括一系列需要访问Java EE服务端应用的客户端应用,这两者通常部署在不同的服务器上,客户端层向服务端发送请求,服务端处理请求并返回处理结果。客户端可以是任何形式的程序,包后浏览器,独立的应用或者其它的服务端程序等,

2.1.1.2 Web层

Web层主要用于处理客户端层及业务逻辑层之间的交互:

  • 为客户端层动态的生成不同格式需求的内容

  • 收集客户端用户请求并返回业务逻辑层处理结果

  • 控制客户端层展现

  • 维护交互会话

  • 执行一些简单的逻辑及存储一些临时性的数据

如下,列出列一些Java EE 应用中设计web层开发的技术。

  • JSF

Java Web 应用程序的一个用户界面 (UI) 框架 https://netbeans.org/kb/docs/web/jsf20-intro_zh_CN.html

  • 表达式语言

一系列交互式展现标签 https://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html

  • Servlets

Java 类,动态处理用户请求并返回结果,通常应用于HTML页面

  • 上下文及依赖注入
2.1.1.3 业务逻辑层

业务逻辑层主是针对不同行业及领域存在的不同业务需求,相应的开发对应的业务处理功能,这也是一个企业应用的核心功能所在的地方。

业务逻辑层相关技术:

  • Enterprise JavaBeans (enterprise bean) components :EJB

  • JAX-RS RESTful web services

  • Java Persistence API entities

2.1.1.4 企业信息系统层

企业信息系统层(EIS) 包括数据库服务器,企业资源计划系统(ERP)及其它数据服务。数据通常是从企业应用的不同服务器上获取并被业务逻辑层进行处理的。

EIS 层相关技术:

  • The Java Database Connectivity API (JDBC)

  • The Java Persistence API

  • The Java EE Connector Architecture

  • The Java Transaction API (JTA)

.2 Java EE 服务器和容器

Java EE 服务器是实现了Java EE平台API并能提供标准Java EE服务的服务应用。 Java EE 服务器也通常被称为应用服务器,  如同web服务器向浏览器提供页面一样,它们可将应用的数据传递到客户端。

Java EE服务器以容器的方式运行应用的不同层次组件。使得不同组件之间能够协同作业。

2.2.1 Web容器

Web容器是web组件和web服务之间的联通接口。web可以是servlet,或者JSF页面,web容器负责维护web组件的生命周期,分发用户请求,提供上下文信息(例如当前请求数据)。

2.2.2 EJB 容器

EJB容器负责维护,运行管理EJB组件。

2.2.3 客户端容器

运行于客户端机器,连接客户端应用及服务端应用。

官方文档:https://docs.oracle.com/javaee/7/firstcup/java-ee001.htm

Java EE平台介绍(译)的更多相关文章

  1. Java技术平台介绍

    Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语言中的许多库类名称,多与咖啡有关, 如JavaBeans(咖啡豆).NetBeans(网络豆)以及ObjectB ...

  2. JavaEE Tutorials (18) - Java EE平台安全介绍

    18.1Java EE安全概述278 18.1.1简单的应用安全演示279 18.1.2安全机制特性281 18.1.3应用安全特点28118.2安全机制282 18.2.1Java SE安全机制28 ...

  3. [置顶] 遵循Java EE标准体系的开源GIS服务平台架构

    传送门 ☞ 系统架构设计 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 传送门 ☞ GoF23种设计模式 ☞ 转载请注明 ☞ http://blog.csd ...

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

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

  5. Java EE发展史

    前言 最近的这段时间一直在学习Java EE,刚刚完成了从0到1的蜕变,所以顺便整理一下我所了解到的Java EE,给刚入门学习的新人一些头绪,而所谓“启示录”,就是这个意思. 一.Java EE是什 ...

  6. Java EE启示录

    前言 最近的这段时间一直在学习Java EE,刚刚完成了从0到1的蜕变,所以顺便整理一下我所了解到的Java EE,给刚入门学习的新人一些头绪,而所谓“启示录”,就是这个意思. 一.Java EE是什 ...

  7. Java EE javax.servlet中的ServletContext接口

    ServletContext接口 public interface ServletContext (https://docs.oracle.com/javaee/7/api/javax/servlet ...

  8. 影响Java EE性能的十大问题(转)

    本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE.中间件和JVM技术.他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题 ...

  9. 老鸟谈谈JAVA EE的学习

    老鸟谈谈JAVA EE的学习 因为出差和项目的原因,有将近一个月的时间没有更新博客了,今天终于得闲,和兄弟们分享一下JAVA EE的学习心得.书中带过,直入主题,下面我们首先看看什么是JAVA EE. ...

随机推荐

  1. ./redis-trib.rb 报错:/usr/local/rvm/gems/ruby-2.4.2/gems/redis-4.0.1/lib/redis/client.rb:119:in `call': ERR Slot 0 is already busy (Redis::CommandError)

    错误提示是 slot插槽被占用了(这是 搭建集群前时,以前redis的旧数据和配置信息没有清理干净.) 解决方案是 用redis-cli 登录到每个节点执行  flushall  和 cluster ...

  2. 杂记(那些我还容易混淆的c和c++知识)

    1: 定义一个对象时先调用基类的构造函数.然后调用派生类的构造函数:析构的时候恰好相反:先调用派生类的析构函数.然后调用基类的析构函数.2:  多态性具体体现在运行和编译两个方面:在程序运行时的多态性 ...

  3. 12c数据库重启后自动启动pdb

    由于最近管理12c数据库,创建了9个新的pdb.相对于以前11g版本每天一个一个的环境检查,方便了很多. 但是因为一次意外宕机,数据库重启.虽然数据库重启,但是管理的pdb确不能自动重启,所以需要手动 ...

  4. canvas制作的烟花效果

    最近感觉canvas挺有意思的,在业余时间没事研究了一下,参考过网上一些思路,话不多说,开始啦. github地址:https://github.com/aWhiteBear/fireworks 演示 ...

  5. 19-3-15Python中闭包,迭代器,递归

    函数名的使用 函数名可以当作值赋值给变量 函数名可以当作元素放到容器里 闭包 一个嵌套函数 在嵌套函数内的函数使用外部(非全局的变量) 满足以上两条就是闭包 python中闭包,会进行内存驻留,普通函 ...

  6. activemq的高级特性:消息的可靠性

    高级特性之消息的可靠性 可靠性分为:生产者.消费者.生产者必须让mq收到消息,消费者必须能够接收到消息并且消费成功,这就是消息的可靠性. 1:生产者可靠性 Session session = conn ...

  7. 在UIWindow上加类似于“回到顶部”的按钮

    在公司上个版本的开发中遇到了一个UI布局的小问题: 某个页面需要增加一个分享按钮,但是该页面是二级页面,导航栏右边也已经放置了2个button. 起初和老大谈论这个问题的时候想到的方法是导航栏右边加三 ...

  8. 每日Linux命令(2)-cal

    cal命令用来显示公历,公历是现在国际通用的历法. 一.格式 cal [选项] [参数] 二.功能 显示当前日历年月日,也可以指定显示某年全年日历及时间. 三.命令选项 -h 关闭今天显示的高亮 -j ...

  9. angular中的$cookies和$cookieStore设置过期时间

    angular1.4及以上版本才支持$cookies. 项目引入的是1.4.2版本,操作cookies原先一直用的是$cookieStore,用的飞起啊. $cookieStore.remove(&q ...

  10. 20155327 学习基础和C语言基础调查

    20155327 学习基础和C语言基础调查 通过阅读老师推荐的五篇文章之后,其中有几个点引发了我的思考,便是"量变引起质变""循序渐进"以及"坚持&q ...