Java EE(Java Enterprise Edition) 是SUN公司提出的一套用于实现分布式计算的公司提出的一套用于实现分布式计算的API、服 务和协议的集合。其目标是为开发人员提供支撑工具 、服务和协议的集合。其目标是为开发人员提供支 撑工具,以便降低开发复杂性,缩短开发周期,提高系统性能。
Java EE适合开发大规模的业务系统。这种级别的系统分布和运行在多台计算机上,适合开发大规模的业务系统,互相之间的交互异常频繁。Java EE平台提供了实现此能力的接口和标准服务。
J2SE 和最新的Java SDK5、Java SDK6是 Java EE的基础和核心。
任何应用软件都有一些类似的处理模式,根据所处理的内容的特点, 将这些模式分为三种:
表示层(Presentation Layer ,也称为外观呈现层):实现与用户的交互功能。
业务规则层(Business Rules Layer,也称为业务逻辑层、商务逻辑层):完成与具体应用有关的数据处理功能。
数据访问层(Data Access Layer):负责数据的存储、访问和更新操作。
在C/S 结构中,数据访问层通常和数据库集成在一起,并与表示层和业务规则层分离,以便多个用户同时访问数据库。但是在业务规则发生变化时,需要更新众多的业务处理代码,导致软件的灵活性下降。
Java EE 组件分为三种:
客户端应用组件: 包括Java 应用程序、Applet 等,运行在客户端。
Web 组件: 包括JSP 、Servlet 、JSF组件等,它们运行在服务器上。
EJB 组件: 用于完成业务逻辑的Java 类,运行在服务器上。
客户端和服务器端
客户端是指与用户交互的表示层部分。在JavaEE 环境中,可以使用基于文字或图形界面的胖客户端,也可以使用基于浏览器的瘦客户端。
在一般情况下, 服务器端就是Java EE应用服务器。它负责部署Web 组件和EJB 组件,为这些组件提供基础服务,同时允许客户端访问这些组件。
容器(Container)
通常,多层的瘦客户型应用涉及到网络通信、事务管理、多线程、状态管理等多种低层实现细节。而基于Java EE平台的应用利用可重用的组件和组件相关的低层服务,更加方便地开发、部署和运行。
容器是组件和低层平台服务之间的接口,并为组件提供运行环境。组件必须组装成Java EE模块,并部署到对应的容器内才能运行。
JavaEE容器分为以下4种:
客户端应用容器:用于运行Application程序
Applet容器:用于运行Applet程序
Web容器:用于运行JSP和Servlet组件
EJB容器:用于运行EJB组件
容器种类
应用服务器与服务器端容器之间的关系
常见的JavaEE应用服务器:
Tomcat:Apache开源组织的Web服务器,同时也是较为流行的JSP/Servlet容器,但不提供EJB容器。
JBoss:主流的J2EE/Java EE5开源应用服务器,实现了所有JavaEE的服务。
Sun Java System Application Server
WebLogic
WebSphere
Tomcat中的部署(Deploy)
第一种部署方法:将例2.1的代码保存为index-2.1.jsp,并将它复制到tomcat的ROOT目录内。在浏览器内访问http://127.0.0.1:8080/index-2.1.jsp
第二种部署方法:将例2.1的代码保存为index.jsp,并将它复制到tomcat的webapps\hello目录内。在浏览器内访问http://127.0.0.1:8080/hello或
http://127.0.0.1:8080/hello/index.jsp
JBoss中的部署(Deploy)
第一种部署方法将例2.1的代码保存为index-2.1.jsp,并将它复制到JBoos的server\default\deploy\hello-2.1.war目录内。运行JBoos安装目录内的bin\run.bat,按default方式启动Jboos服务器。在浏览器内访问http://127.0.0.1:8080/hello-2.1/ index-2.1.jsp。
第二种部署方法将例2.1文件保存为index.jsp编写如下xml文件,并将它保存为与index.jsp同一目录内的META-INF子目录下的application.xml
<?xml version="1.0"?>
<application>
<display-name>
Hello JEE World!
</display-name>
<module>
<web>
<web-uri>web-app.war</web-uri>
<context-root>/hello</context-root>
</web>
</module>
</application>
application.xml内容
在命令行内利用jar命令将上述文件打包成helloworld.ear文件,具体命令如下:
jar cfweb-app.warindex.jsp
jar cfhelloworld.earweb-app.warMETA-INF将helloworld.ear复制到JBoos的server\default\deploy目录内在浏览器内访问http://127.0.0.1:8080/hello/或http://127.0.0.1:8080/hello/index.jsp