JavaEE总论

本文章只是个人学习笔记,借鉴了网上一些文章和图片,具体出处大多无法详查,恕不能列举,感谢理解。

介绍
JavaEE:JAVA Enterprise Edition,它真的是Java企业级版本的意思,对应的还有Java SE标准版、Java ME微型版;
Java SE:如果你要开发Client/Server的桌面应用程序时,用的都是它的技术;
Java ME:如果你要开发微型设备,比如智能卡,就需要使用JavaME;
Java EE:当时互联网发展迅猛,为了 迎合Browser/Server架构的潮流,和为了给 使用Java应用开发服务器端应用提供一个 平台独立、可移植、多用户的、安全的、基于标准的企业级应用平台,从而简化企业应用的开发、管理和部署。
JavaEE不是一个现成的产品,它是一组标准。各个企业级应用平台开发商按照Java EE规范分别开发各自的Java EE应用服务器/平台。由于这些应用平台/服务器都遵循了Java EE的规范,因此,使用Java EE技术开发的企业级应用可以部署在不同的Java EE应用服务器上。


理解中间件
1. 可能以前开发Java SE桌面应用,你需要自定义Server端、Client端的开发(两层应用),从头到尾都是新的东西,没有什么是能复用的。
2. 那么,当Java EE出现的时候,Client端已经被统一的Browser取代了,服务器端呢?难道需要用户开发能够支持处理Http协议的服务器吗?
3. 显然,这一部分是公用的,无需每个应用都自己去开发一套,那么这个就要让有实力的公司去开发了(中间件开发商)。有实力的公司按照Java EE标准开发出一些可以公用的组件,就叫中间件。比如:WebSphere、Tomcat等;
4. 如此以来,一些公用的复杂繁琐的工作,我们小小个人程序员就不必去关注了。那么我们开发的基于JavaEE技术的应用就不依赖特定的操作系统、中间件、硬件了。



名词解释

1. 容器:充当中间件的角色;
2. WEB容器:给处于其中的应用程序组件(JSP、Servlet)提供一个环境,使组件直接与容器中的环境变量接口交互,不必关注其它系统问题。主要由WEB服务器来实现。
3. EJB容器:Enterprise Java Bean容器。它提供给运行在其中的组件各种EJB管理功能。只要满足Java EE规范的EJB放入该容器,马上就会被高效率的管理。并且可以通过现成的接口来获得系统级别的服务如:邮件服务、事务管理。
4. WEB容器和EJB容器关系:
    这两个容器原理上是大体相同的,更多的区别是被隔离的外界环境。
    WEB容器更多的是跟局域HTTP的请求打交道。
    EJB容器更多的是跟数据库、其他服务在打交道。
    如:Servlet不用关心Http的细节,直接引用环境变量session、request、response就行;EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。


JavaEE应用四层模型
Java EE应用使用多层分布式应用模型,每层的业务逻辑功能称为:组件,典型的分为四层;
1. 客户层组件
    JavaEE应用可以基于Web方式,但没有放弃传统的方式,这是运行在客户端机器上的客户层组件;
2. Web层组件
    运行在JavaEE服务器上的部分:JSP、Servlet。按照JavaEE规范,HTML页面、Applets并不是Web层组件;
3. 业务层组件
    由运行在业务层的enterprise bean进行处理的业务逻辑部分。从客户端程序接收数据,处理,发送到EIS层存储,或逆向进行;
    三种enterprise bean:
        Session bean:与客户端程序进行临时交互,客户端执行结束后,就会消失。
        Entity bean:实体bean标示数据库表中的一行永久的记录。
        Message-driven bean:消息驱动bean结合了Seesion bean和JMS的消息监听器特性,允许一个业务层组件异步接收JMS消息;
4. 信息系统层
    本层处理企业信息系统软件包括企业基础建设系统,如:企业资源计划(ERP);
Explain:
    


JavaEE十三种技术规范
JavaEE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成。JavaEE包括13种技术规范;
1. JDBC(Java Database Connectivity)
    JDBC API为访问不同的数据库提供了统一的路径,像ODBC一样,JDBC为开发者屏蔽了一些细节问题。需要JDBC开发只需要使用基于不同数据库的JDBC中间件就可以了。如,MySql:mysql-connector-java-5.1.10-bin.jar、Oracle:ojdbc6.jar、SqlServer:sqljdbc.jar等。
2. JNDI(Java Name and Directory Interface)
    JNDI API被用于执行名字和目录服务,它提供了一致的模型来存取和操作企业级的资源DNS和LDAP,本地文件系统,或应用服务器中的对象。
3. EJB(Enterprise JavaBean)
    JavaEE之所以好,就是因为EJB。
4. RMI(Remote Method Invoke)
    RMI是一个协议,它使用序列化的方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议;
5. Java IDL/CORBA(通用对象请求代理架构是软件构建的一个标准)
    在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。
6. Java Servlet
    Servlet是一种小型的java程序,它扩展了web服务器的功能。它是一种服务器的应用当被请求时开始执行,这和CGI Perl脚本很相似。Servlet是应用是在于,当你编译class后把它扔到应用服务器上它就可以被执行。
7. JSP
    JSP是主体是HTML的Servlet,所有JSP内容都会被写入Servlet的service方法中。
8. XML
    它和java都是平台独立性的代表。
9. JMS
    Java Message Service是消息中间件的API,用于在两个应用程序之间,或分布式系统中进行面向对象消息异步通信。一些消息中间件厂商的产品:IBM的MQSeries、BEA的Weblogic JMS Service、Progress的SonicMQ。
    从一个JMS客户机向另一个JMS客户机发送消息。
    消息是JMS中的一种类型对象,由两部分组成:报头和消息体。消息可以带可序列化对象等等。
10. JTA
    JTA定义了一种标准API,应用程序由此可以访问各种事务监控。
11. JTS
    JTS是一个组件事务监视器(component transaction monitor),是CORBA OTS事务监控的基本实现。JTS规定了事务管理的实现方法。它为应用程序服务器,资源管理器,独立的应用提供了事务支持。
12. JavaMail
    JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。支持SMTP、IMAP服务器。
13. JAF(JavaBeans Activation Framework)
    JavaMail使用JAF来处理MIME编码的邮件附件。MIME字节流可以被转换成Java对象。大多数应用都可以不需要直接使用JAF。


JavaEE核心技术理解
    过去,二层应用-Client/Server应用是使用最多的。在这种情况下,服务器一般仅唯一提供数据库服务。客户端程序负责数据访问、业务逻辑、界面展示等等。这种接口第一次部署比较容器,但难于升级或改进,并常常基于某种专有协议(通常是数据库协议)。这使得重用业务逻辑和界面逻辑非常困难。更重要的是:在WEB时代,二层化应用通常不能体现出很好的伸缩性,因而很难适应Internet的要求。
    SUN设计J2EE的部分起因就是:解决二层化结构的缺陷。于是J2EE定义了一套标准来简化开发N层企业级应用的开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值