J2ee是一套由社区驱动的企业软件标准。是为企业应用程序使用分布式多层应用程序模型提供标准。应用程序逻辑根据功能分为组件,部署在各种机器上。J2ee可以由图1-1所示的所有层组成,通常也被认为是三层应用程序,因为它们分布在三个位置:客户端机器、J2ee服务器和数据库。
图1-1多层应用程序
j2ee规范定义了以下组件:
应用程序客户端「 安卓或者IOS」和网络客户端「浏览器、html、xml等」。
JavaServlet,JavaServer Faces(jsf)和JavaServer Pages(jsp)是Web组件运行在服务器上。
EJB是运行在服务器上的业务组件。
j2ee核心技术:
jsp是一种动态网页技术标准。目的是将java代码集成到html里以实现部分内容的动态化生成。运行原理:browser 发起请求一个jsp页面->server「web容器」接受请求->server检查「初次访问、修改」->将其中的java代码转换成servlet类「仅做依次转换」->编译成字节码文件并被jvm加载执行->servlet处理后生成静态html返回给browser。
servlet是Java Servlet的简称,叫做小服务程序。是用Java语言编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成动态web内容。其生命周期中的三个核心方法:init(),service(),destroy().
jdbc-java数据库连接,其实就是规范java语言如何调用数据库的应用接口。jdbc-api位于jdk的java.sql包中。核心类:DriverManager「驱动加载」,Driver「驱动程序」,Connection「数据库连接」,Statement「执行静态sql查询和更新」,PreparedStatement「执行动态sql查询和更新」
CallableStatement「调用存储过程」,SQLException「连接建立或查询、更新执行过程中的异常情况」。
jndi(Java Naming and Directory Interface)即命名目录服务的抽象接口集合,为企业级应用提供了统一的标准化连接,使Java能够无缝地获取任何可目录化的企业信息。在JavaEE体系中,JNDI用来定位各种对象,包括EJB、数据库驱动、JDBC数据源及消息连接等。由于JNDI是独立于目录协议的,因此还可以用JNDI访问各种特定的目录服务,如LDAP(轻量目录访问协议)、NDS(服务器目录访问服务)。
ejb是一个代码体,具有实现业务逻辑模块的字段和方法。您可以将其视为一个构建块,可以单独使用或与其他企业bean一起使用,在Java EE服务器上执行业务逻辑。也就是:”把编写的软件中需要执行的特定任务的类,打包后放到服务器上运行”。
rmi-远程方法调用(跨jvm)。是在jdk1.2中实现的增强了java构建分布式应用的能力。
java IDL 是基于corba规范,实现网络上不同平台上的对象之间使用CORBA/IIOP协议进行交互。也是构建分布式系统的必要技术。
jta-Java事务api,是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。
jts-是一个组件事务监视器。jts是corba ots事务监控的基本实现。jts规定了事务管理器的实现方式。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
jpa是Java Persistence api的简称,是jdk5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。目的是为pojo提供持久化标准规范,使用其提供的接口来操作实体对象,执行crud操作,将开发者从繁琐的jdbc和sql代码中解脱出来。
cdi-依赖注入是一种设计模式,也叫ioc,目的是降低程序组件之间的耦合度。
jms是一个消息传递标准,允许Java EE应用程序组件创建、发送、接收和读取消息。它实现了松散耦合、可靠和异步的分布式通信。
j2ee还有很多技术如:xml相关的「jaxp,jaxb,jax-wx」,json相关的「json-p,json-b」
以上是作者认为java开发者必须要详细了解的j2ee核心技术。