代码审计 | Java EE 基础知识
2023-06-13 09:12:59 时间
Java 平台分为三个主要版本:
- Java SE(Java 平台标准版)
- Java EE(Java 平台企业版)
- Java ME(Java 平台微型版)
Java EE 是 Java 应用最广泛的版本。
0x01 Java EE 的核心技术
Java EE 有十三种核心技术,它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail 和 JAF,这里重点介绍以下几种:
- Java 数据库连接(Java Database Connectivity,JDBC)是 Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
- Java 命名和目录接口(Java Naming and Directory Interface,JNDI),是 Java 的一个目录服务应用程序界面(API),它提供一个目录系统,并将服务名称与对象关联起来,从而使得开发人员在开发过程中可以使用名称来访问对象。 简单的说就是比如以前连接数据库需要把参数写在 Java 类里,但现在可以直接写在配置文件里了,这个配置文件可以是 XML,也可以是 properties,或者 yml 文件,只要能解析都行。
- 企业级 JavaBean(Enterprise JavaBean, EJB)是一个用来构筑企业级应用的、在服务器端可被管理组件。 不过这个东西在 Spring 问世后基本凉凉了,知道是什么就行。
- 远程方法调用(Remote Method Invocation,RMI)是 Java 的一组拥有开发分布式应用程序的 API,它大大增强了 Java 开发分布式应用的能力。
- Servlet(Server Applet),是用 Java 编写的服务器端程序。 其主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。 狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。
- JSP(全称 JavaServer Pages)是由 Sun 公司主导创建的一种动态网页技术标准。 JSP 部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成 HTML、XML 或其他格式文档的 Web 网页,然后返回给请求者。
- 可扩展标记语言(eXtensible Markup Language,XML)是被设计用于传输和存储数据的语言。
- Java 服务消息(Java Message Service,JMS)是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间或分布式系统中发送消息,进行异步通信。
0x02 Java EE 分层模型
Java EE 应用的分层模型主要分为以下 5 层。
- Domain Object(领域对象)层,也叫模型(Modole)层,此层由一系列的 POJO(Plain Old Java Object,普通的、传统的 java 对象)组成,这些对象是该系统的 Domain Object,往往包含了各自所需实现的业务逻辑方法。
- DAO(Data Access Object,数据访问对象)层,此层由一系列的 DAO 组件组成,这些 DAO 实现了对数据库的创建、查询、更新和删除(CRUD)等原子操作。
- Service(业务逻辑层)层,此层由一系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。 这些业务逻辑方法可能仅仅用于暴露Domain Object 对象所实现的业务逻辑方法,也可能是依赖 DAO 组件实现的业务逻辑方法。
- Controller(控制器)层,此层由一系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,并根据处理结果转发到不同的 View 组件。
- View(表现)层,此层由一系列的 JSP 页面、Velocity 页面、PDF 文档视图组件组成,负责收集用户请求,并显示处理后的结果。
往期推荐
参考链接:
https://zhuanlan.zhihu.com/p/43884237
https://www.codenong.com/cs105259462/
https://blog.csdn.net/mzc_love/article/details/107244053
原文链接:
https://teamssix.com/211115-123451.html
相关文章
- java queue toarray_Java PriorityBlockingQueue toArray()用法及代码示例
- java double转decimal_Java中Double与BigDecimal的相互转换
- JAVA连接Redis客户端多种方式实现
- java %08d_总结Java中String.format()的使用[通俗易懂]
- java工作流_Java 实现简单工作流
- java山寨qq账号密码验证_Java实战-山寨QQ
- java uuid 随机数_Java随机数和UUID[通俗易懂]
- java中map根据value找key_Java Map和Map<String, Object>类型,map通过value找key
- Java中的BigDecimal类和int和Integer总结「建议收藏」
- Java入门代码_java编程自学网
- JAVA代码审计之java反序列化
- java算术运算符(一)
- 从java到JavaScript(2):对比Java/Go/Swift/Rust看Dart
- java实现分页功能的类详解编程语言
- 学习如何使用Linux环境运行Java程序(linux下的java)
- 代码Linux下编写Java代码的指南(linux编写java)
- 时间配置Redis Java:配置过期时间(redisjava过期)
- 失效Redis Java: 过期失效的缘故(redisjava过期)
- Java运行在Linux系统上免费下载(linux java下载)
- Java与Oracle同步一种新的数据库模式(java同步oracle)
- JAVA中实现链式操作(方法链)的简单例子