Web应用程序 – Web应用程序中的状态EJB?

前端之家收集整理的这篇文章主要介绍了Web应用程序 – Web应用程序中的状态EJB?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从来没有使用有状态的EJB。
我明白一个有状态的EJB可以对java客户端有用。

但是我想知道在哪种情况下在Web应用程序中使用它们?如何?
我们应该将这些有状态的bean放在Session中(因为无状态http)吗?

这是一个很好的做法吗?
(没有辩论太多关于状态与无国籍)

解决方法

有趣的是,这是SFSB和网络应用程序当天的第二个问题,而这个主题通常并不常见。

in which case to use them on a web
application?

SFSB和Web应用程序的传统示例是购物车。但与此同时,您也可以使用HttpSession做同样的操作。

理想情况下,如果状态与业务逻辑有关,而不是表示逻辑,则应该在SFSB中。但在实践中,人们通常主张反对SFSB(因为它引入的复杂性),除非他们提供一些你不能轻易地使用HttpSession的东西。大多数情况下,您可以调整设计以将信息存储在HttpSession或数据库中,并传递给它,而无需使用SFSB。但它最终是设计纯度的问题。

And how? Should we put these stateful
beans in Session (because of stateless
http)?

EJB模型比HttpSession更为丰富,因为EJB是事务组件,对于SFSB的钝化和激活有明确的回调。特别是(1)异常处理和(2)并发以及(2)SFSB的删除和超时,这对于正确使用SFSB的复杂性越来越高。有关详细信息,请参阅我的答案

> @L_301_0@
> Correct usage of Stateful Beans with Servlets

如果要使用它们,您需要首先查找SFSB以获取对一个新的远程实例的引用。那么你将需要将这个引用存储在某个地方,以便跨请求重用它。这个地方通常是HttpSession,这意味着即使你使用SFSB,也不能完全摆脱它。

使用EJB2,远程引用(称为句柄)可以被序列化以便稍后重用。这样就可以存储,例如在数据库中,即使我从来没有看到过。我不知道EJB3是否还可以。

Is it a good practice?

正如我已经说过的,人们通常会反对它,除非你知道为什么要使用它们而不是HttpSession,只有你有一个很好的EJB模型的命令。 (例如,如果通过Web前端和桌面客户端访问业务服务,SFSB可能是正当的)许多其他框架与SFSB没有类似的东西,人们仍然可以通过它们创建优秀的应用程序。

PS:我在网络应用程序中使用了SFSB,与HttpSession相比,它的使用效果确实比较棘手,但是它最终起作用。

原文链接:https://www.f2er.com/html/232585.html

猜你在找的HTML相关文章