Json 在J2EE服务器上交付服务时,REST服务工作于哪些层?

Json 在J2EE服务器上交付服务时,REST服务工作于哪些层?,json,rest,web-services,jakarta-ee,architecture,Json,Rest,Web Services,Jakarta Ee,Architecture,我对J2EE服务的有限理解如下: J2EE是一种四层体系结构,包括: (1) 客户端层(表示层或应用层),-小程序 (2) Web层,-JSP的 (3) 企业JavaBeans层(或应用服务器层) (4) EIS或选择的数据层数据库位于此处 客户机层创建由web层解析的数据,并将其转换为数据层的业务逻辑 我只是在学习什么是REST服务,我很好奇在这个4层设置中,您将在哪个阶段使用它们。一个有用的线程是关于层与层的: 从简化的物理角度来看,我们有客户端(浏览器)、应用程序服务器和数据库服务器。 从

我对J2EE服务的有限理解如下:

J2EE是一种四层体系结构,包括: (1) 客户端层(表示层或应用层),-小程序 (2) Web层,-JSP的 (3) 企业JavaBeans层(或应用服务器层) (4) EIS或选择的数据层数据库位于此处

客户机层创建由web层解析的数据,并将其转换为数据层的业务逻辑


我只是在学习什么是REST服务,我很好奇在这个4层设置中,您将在哪个阶段使用它们。

一个有用的线程是关于层与层的:

从简化的物理角度来看,我们有客户端(浏览器)、应用程序服务器和数据库服务器。 从逻辑的角度来看,我们可能有不同的层(再次简化):web、业务逻辑和数据

分层的思想是首先分离关注点(表示、业务逻辑、持久性等),高层只能调用下面的直接层(因此在web层只能调用业务逻辑之前的示例中,它不应该调用数据层)。这样做的好处是,每个层都有一个接口,该接口公开时没有任何实现细节(代码到接口模式),因此您可以交换该层的实现。因此,现在可以将数据存储在关系数据库中,但可以创建一个新的实现,将数据存储在NoSql数据库中(不需要更改任何业务逻辑层)。因此,您有相同的数据层,但有不同的实现

在传统的JavaWeb应用程序中,代码部署在应用程序服务器中,其输出(servlet)通常是一个HTML,显示在浏览器中。 因此,表示层(格式化等)是在服务器端为每个客户机(请求)完成的。在应用服务器中有客户端,我们有一个会话,因此每个客户端都有一个状态(例如:显示语言数据、相应的日期格式等)。 REST体系结构进行了更改,因为它促进了无状态操作。这样做的后果之一是在浏览器中移动任何与客户端相关的编码(javascript web框架的出现)和会话变量,然后web层返回JSON/XML而不是HTML


为了回答您的问题,您可能在业务逻辑的顶部有一个不同的web层。一个可能返回HTML,一个可能返回JSON(就像数据层的例子一样)。

一个有用的线程是关于层与层的:

从简化的物理角度来看,我们有客户端(浏览器)、应用程序服务器和数据库服务器。 从逻辑的角度来看,我们可能有不同的层(再次简化):web、业务逻辑和数据

分层的思想是首先分离关注点(表示、业务逻辑、持久性等),高层只能调用下面的直接层(因此在web层只能调用业务逻辑之前的示例中,它不应该调用数据层)。这样做的好处是,每个层都有一个接口,该接口公开时没有任何实现细节(代码到接口模式),因此您可以交换该层的实现。因此,现在可以将数据存储在关系数据库中,但可以创建一个新的实现,将数据存储在NoSql数据库中(不需要更改任何业务逻辑层)。因此,您有相同的数据层,但有不同的实现

在传统的JavaWeb应用程序中,代码部署在应用程序服务器中,其输出(servlet)通常是一个HTML,显示在浏览器中。 因此,表示层(格式化等)是在服务器端为每个客户机(请求)完成的。在应用服务器中有客户端,我们有一个会话,因此每个客户端都有一个状态(例如:显示语言数据、相应的日期格式等)。 REST体系结构进行了更改,因为它促进了无状态操作。这样做的后果之一是在浏览器中移动任何与客户端相关的编码(javascript web框架的出现)和会话变量,然后web层返回JSON/XML而不是HTML

为了回答您的问题,您可能在业务逻辑的顶部有一个不同的web层。一个可能返回HTML,一个可能返回JSON(将其视为数据层示例)