我正在阅读关于EJB会话Bean的文章。我主要在spring上工作,在网站上我们将session保持在普通的session对象中。会话bean的文档说,如果我有购物车,我使用会话bean?这是不是意味着我不需要在JSP级别上处理会话?该会话bean是否也可用于维护用户会话。
我不同意我在上面一段中最后写的内容。这不是重复代码和额外的内存使用吗?
请解释一下这个我根本不懂的概念。
发布于 2012-06-29 14:44:10
Servlet中的会话由Servlet容器通过HttpSession对象维护,该对象是通过request对象获取的。您不能实例化一个新的HttpSession对象,它不包含任何业务逻辑,但更多的是一个存储对象的地方。
EJB中的会话是使用SessionBeans维护的。您设计的bean可以包含业务逻辑,并且可以由客户端使用。您有两个不同的会话bean:有状态的和无状态的。第一个以某种方式与单个客户端连接。它维护该客户端的状态,只能由该客户端使用,当客户端“死亡”时,会话bean就会“丢失”。
无状态会话Bean不维护任何状态,并且不能保证相同的客户端将使用相同的无状态bean,即使是连续两次调用。无状态会话EJB的生命周期与有状态会话EJB略有不同。EJB Container负责准确地知道如何跟踪每个会话,并将请求从客户机重定向到会话Bean的正确实例。完成此操作的方式取决于供应商,并且是合同的一部分。
发布于 2012-06-29 14:50:40
因此,可以将EJB定义为封装业务逻辑并负责事务和安全性的服务器端组件。它们还具有用于消息传递、调度、远程访问、web服务端点(SOAP和REST)、依赖注入、组件生命周期、带有拦截器的AOP等的集成堆栈。
会话EJB有三种类型:
在web应用程序中,您通常会使用无状态bean来列出产品。然后,YOu将使用有状态bean将产品存储在购物车中。
希望这会有一点帮助。
https://stackoverflow.com/questions/11257141
复制相似问题