当前位置: 首页 > news >正文

J2EE核心技术

 什么是J2EE

开放的、基于标准的平台,用以开发、部署和管理N层结构,面向WEB的,以服务器为中心的企业级应用。

Open and standard based platform for developing, deplyring and managing n-tier, Web-enabled,server-centric enterprise applications.

 

什么是JAVA 2 Platform?

J2ME-Java 2 Micro Edition:用于创建嵌入式应用程序的Java平台(:PDA、仪表)

J2SE-Java 2 Standard Edition:用于创建典型的桌面与工作站应用的Java平台。

J2EE-Java 2 Enterprise Editon:用于创建可扩缩的企业应用的Java平台。

 

J2EE的组成?

Ø           J2EE Specification(J2EE 规范):定义J2EE规范,开发商按照这个规范实现自己的J2EE系统。

Ø           J2EE Reference ImplementationJ2EE参考实现):J2EE平台的软件开发包(J2EE SDK);J2EE的完全实现;一组工具和运行环境;完全免费得到。

Ø           J2EE Compatibility Test SuiteJ2EE兼容测试包):用来测试一种应用是否符合J2EE规范。

Ø           J2EE Blue PrintJ2EE蓝图):提供了用于实施基于J2EE多层应用的文档和实例套件的编程模型,简化了开发基于J2EE多层应用程序的复杂性。它应被应用作开发人员设计和优化组件的原则,以便从策略上对开发工作进行分工,分配技术资源。

 

J2EE核心技术:

(1)EJB: 不是一个具体的产品,而是一个Java服务器端组件开发的规范,其目的是为了定义一个用来开发面向对象分布式应用组件的标准方法,软件厂商根据它来实现EJB服务器。使用EJBJava程序员可以将一些定义明确的程序块组合到一起,从而方便、快捷地建构起分布式应用程序。EJB规范在简化分布式应用程序开发复杂性方面也做了大量的工作,所以EJB程序员不必太担心事务处理、多线程、资源管理等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。使用EJB可以使整个程序分块明确,并且EJB可以使用其它EJBJDBC等服务,从而增强了分布式应用程序的可扩展性和性能;另外,EJB的使用增强了整个系统程序的可靠性、可管理性和可移植性。

          EJB容器是:

        一个管理一个或多个EJB/实例的抽象。它通过规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。

EJB服务器是:

        管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如CORBA服务)的访问。一个EJB服务器必须提供支持对JNDI的名字服务和TS事务服务的可访问。

EJB分为两种:

        会话EJB和实体EJB,会话EJB向客户提供一定的服务,如:特定的商业逻辑、数据库查询等;而实体EJB则代表数据对象,通常代表的是数据表记录集的一行,一个实体EJB可以同时与多个客户进行交互。

(2)CORBA:

                       CORBACommon Object Request Broker Architecture)是一个分布式对象体系结构它独立于平台,也独立于语言

                       在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。

                       这种互操作性的关键是IDLInterface Definition Language、接口定义语言),IDL说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。

(3)RMI技术:

                       RMI(Remote Method Invoke)是一种被EJB使用的更底层的协议,正如其名字所表示的那样,RMI协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。

RMICORBA相比:

                        两者的关键差别在于语言环境,Java RMI是一个分布式对象计算的纯Java解决方案(如,在Java RMI中,对象的接口用Java定义,而不是用IDL)

                       其次,CORBA没有定义安全服务,而Java RMI继承了Java的安全性;

                       再者,CORBA有不同的实现,不同的独立软件开发商的不同实现均有独特性,这使得在不同平台上的匹配比较困难,而且不是所有CORBA产品开发商都支持所有平台,而几乎所有平台都支持Java虚拟机,因此Java RMI具有更高的可移植性。如果客户对象和服务对象都基于Java虚拟机,那么Java RMI是分布对象计算的最好选择。当然,IIOP已经提供了Java RMICORBA的互操作能力,而且两者的发展有互相借鉴的趋势。

(4)JSP技术:

                        JSP是服务器端的脚本语言,是以JavaServlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet

                       JSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

                       特点:面向对象,跨平台,和Servlet一样稳定,可以使用Servlet提供的API,克服了Servlet的缺点。

                       应用:一般和JavaBeans结合使用,从而将界面表现和业务逻辑分离。

(5)Java Servlet技术:

                       Servlets(Server Applet):是一些运行于Web服务器端的Java小程序,用来扩展Web服务器的功能。

                       Servlets用特定的Java解决方案替代了其它的Web服务器方编程模式(如:CGIISAPI等),因而继承了Java的所有特性(跨平台、多线程、OO)

                       Servlets可以嵌入在不同的Java Web服务器之中,因为用来编写ServletsServlet API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不像利用CGI程序等其它方式那样具有性能局限。

                       Servlets也同样使用HTTP协议与客户端进行通讯,所以有时也称Sevlets“HTTP Servlets”

                       Servlet是一种扩展Web服务器功能的简单而相似的技巧,而且由于它是用Java编写的,所以能够访问整个Java API库,包括用于访问企业数据库的JDBC API

Java ServletJSP的比较:

                       两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程、OO ),都可以使用Java强大的API

                       两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。

                       两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。

                       Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。

                       Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端。

                       使用JSP的真正意义在于:可以将界面设计和业务逻辑设计分离。

(6)JavaBean技术:

                       JavaBean是基于Java的组件模型,有点类似于MicrosoftCOM组件。

                       Java平台中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。

                       对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。

                       JavaBean通过Java虚拟机(Java Virtual Machine)执行,运行JavaBean最小的需求是JDK1.1或者以上的版本。

                       JavaBean传统的应用在于可视化的领域,如AWT下的应用。自从Jsp诞生后,JavaBean更多的应用在了非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。

(7)JDBC技术:

                       JDBC是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。

                       JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。

                       JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,

                       另外,JDBC对数据库的访问也具有平台无关性

(8)XML技术:

                       XML(Extensible Markup Language)是一种可以用来定义其它标记语言的语言,被用来在不同的商务过程中共享数据

                       XML的发展和Java是相互独立的,但是它和Java具有的相同目标即平台独立性。通过将JavaXML的组合,可以得到一个完美的具有平台独立性的解决方案。

                       J2EE平台全面支持和实施XML,这种强大的组合可使XML具备跨平台的兼容性,甚至用于对XML代码进行语法检查和调试的工具也可与平台无关

                       因为XML可实施独立于平台的数据,而J2EE平台则可实施独立于平台的解决方案,所以J2EE技术和XML技术分别是企业开发的阴阳两极。XML可通过移植的方式表现数据,因此就对Java技术的可移植性构成了补充。

 

几个对应于几种服务的企业级API
       JNDI(Java Naming and  Directory Interface)
          
       JMAPI(Java Management API)

       JTS/JTA(Java Transaction Service/API)
  
       JMS( Java Messaging Service)

       Java Security API

J2EE平台中的角色?

J2EE平台中规定了七种角色,这七种角色在开发J2EE平台及J2EE应用中承担各自的任务。

1J2EE平台开发商

 提供实现基于J2EE规范的产品,包括运行J2EE应用的容器、J2EE平台APIJ2EE平台开发者必须提供J2EE规范规定的应用组件到网络协议的映射,提供J2EE应用的发布与管理工具。

2)应用组件提供者

开发J2EE应用组件,包括JSPServletEJB等。

3)应用组装者

负责将应用组件提供者开发的J2EE应用组件组装为J2EE应用。

4)应用发布者

将组装好的J2EE应用发布到J2EE应用的容器中,配置其运行环境,并启动J2EE应用运行。

5)系统管理员

负责配置管理整个企业或组织的网络与计算环境,其中包括运行在J2EE平台上的J2EE应用。

6)工具提供者

提供J2EE平台之外的J2EE应用开发、组装、发布及管理工具。

7)系统组件提供者

提供系统级的通用的组件,如连接企业现有ERP系统的适配器等。

 

相关文章:

  • 关于卷积神经网络旋转不变性的一点研究
  • J2EE之JDBC
  • Spring mvc 中使用 kaptcha 验证码
  • J2EE之JNDI
  • redis 设置密码
  • J2EE之JBOSS配置数据库连接池
  • xdotool xdotool模拟击键和鼠标移动--CutyCapt是一个截图工具,xvfb-run
  • J2EE之XML
  • IE8提示console未定义
  • 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出。
  • oracle11g中SQL优化(SQL TUNING)新特性之Adaptive Cursor Sharing (ACS)
  • 浅析JAVA内部类
  • 将字符串按照单词完全反转---公司面试题
  • UI教程
  • 我想要的是什么,我真的清楚吗?
  • 2018一半小结一波
  • css的样式优先级
  • JavaScript 基本功--面试宝典
  • Java多态
  • java中的hashCode
  • maven工程打包jar以及java jar命令的classpath使用
  • node.js
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Otto开发初探——微服务依赖管理新利器
  • python学习笔记-类对象的信息
  • Webpack 4x 之路 ( 四 )
  • Windows Containers 大冒险: 容器网络
  • 大整数乘法-表格法
  • 理解在java “”i=i++;”所发生的事情
  • 前端临床手札——文件上传
  • 我这样减少了26.5M Java内存!
  • 用mpvue开发微信小程序
  • 关于Android全面屏虚拟导航栏的适配总结
  • 湖北分布式智能数据采集方法有哪些?
  • #《AI中文版》V3 第 1 章 概述
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (2)STL算法之元素计数
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (第27天)Oracle 数据泵转换分区表
  • (二)换源+apt-get基础配置+搜狗拼音
  • (分布式缓存)Redis分片集群
  • (十三)Maven插件解析运行机制
  • (转) Face-Resources
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • **PHP分步表单提交思路(分页表单提交)
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .Net Remoting常用部署结构
  • .net 程序发生了一个不可捕获的异常
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET/C# 使用反射注册事件
  • .net项目IIS、VS 附加进程调试
  • /etc/shadow字段详解