会话Bean和JSP会话

会话Bean和JSP会话,jsp,session,jakarta-ee,ejb,Jsp,Session,Jakarta Ee,Ejb,我正在阅读关于EJB会话Bean的文章。我主要在spring和网站上工作,我们将会话保持在正常会话对象中。会话bean的文档说,如果我有一个购物车,我会使用会话bean吗?这是否意味着我不需要处理JSP级别的会话?这个会话bean也可以用来维护用户会话 我不同意我在上一段最后写的内容。这不是重复代码和额外使用内存吗 请解释这个我根本不了解的概念。Servlet中的会话由Servlet容器通过HttpSession对象维护,HttpSession对象通过请求对象获取。您不能真正实例化一个新的Htt

我正在阅读关于EJB会话Bean的文章。我主要在spring和网站上工作,我们将会话保持在正常会话对象中。会话bean的文档说,如果我有一个购物车,我会使用会话bean吗?这是否意味着我不需要处理JSP级别的会话?这个会话bean也可以用来维护用户会话

我不同意我在上一段最后写的内容。这不是重复代码和额外使用内存吗


请解释这个我根本不了解的概念。

Servlet中的会话由Servlet容器通过HttpSession对象维护,HttpSession对象通过请求对象获取。您不能真正实例化一个新的HttpSession对象,它不包含任何业务逻辑,但更像是一个存储对象的地方

EJB中的会话是使用SessionBeans维护的。您设计的bean可以包含业务逻辑,并且可以被客户机使用。您有两个不同的会话bean:有状态和无状态。第一个以某种方式与单个客户端连接。它维护该客户机的状态,只能由该客户机使用,当客户机死亡时,会话bean将丢失


无状态会话Bean不维护任何状态,并且不能保证相同的客户机将使用相同的无状态Bean,即使是两个连续的调用。无状态会话EJB的生命周期与有状态会话EJB的生命周期略有不同。EJB容器负责精确地了解如何跟踪每个会话,并将来自客户端的请求重定向到会话Bean的正确实例。这种方式取决于供应商,并且是合同的一部分。

因此EJB可以定义为服务器端组件,封装业务逻辑并负责事务和安全。它们还有一个集成的堆栈,用于消息传递、调度、远程访问、web服务端点SOAP和REST、依赖项注入、组件生命周期、带拦截器的AOP等

EJB有三种类型的会话:

无状态:会话bean不包含方法之间的会话状态,并且 实例可用于任何客户端。 Stateful:会话bean包含会话状态,必须保留会话状态 跨单个用户的方法。 Singleton:在客户端之间共享单个会话bean,并支持并发会话 通道 在web应用程序中,您通常会使用无状态bean来列出产品。然后,您将使用有状态bean在购物车中存储产品


希望这能有所帮助。

服务器端的更多阅读谢谢sandeep,但是在应用程序中使用会话bean有什么好处呢?我一直在将用户会话存储在HTTPSession对象中。如果我使用的是EJB,为什么我要使用sessionbean,这样做的好处是什么,遵循这种方法会有什么问题。这是一个主要的好处,因为您现在可以跨servlet重用逻辑,EJB可以与一系列其他技术交互。使用会话bean的优点是,它支持事务服务、安全服务、生命周期管理、RMI、实例缓存;线程安全等。因此不需要为这些服务编写代码。基于web和非基于web的客户端都可以使用它。可以处理单个http请求的多个操作。因此,在spring框架中实现业务逻辑时,基本上EJB simple充当服务层。非常感谢你澄清了我的概念。