会话Bean和JSP会话

时间:2012-06-29 06:35:53

标签: jsp session java-ee ejb

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

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

请解释我根本没有得到的这个概念。

2 个答案:

答案 0 :(得分:0)

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

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

无状态会话Bean不维护任何状态,并且无法保证同一客户端将使用相同的无状态bean,即使是一个接一个的两个调用。无状态会话EJB的生命周期与有状态会话EJB略有不同。 EJB容器是否负责确切地知道如何跟踪每个会话并将请求从客户端重定向到会话Bean的正确实例。这样做的方式取决于供应商,并且是合同的一部分。

答案 1 :(得分:0)

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

Sessions EJB有三种类型:

  1. 无状态:会话bean在方法和任何方法之间不包含会话状态 实例可以用于任何客户端。
  2. 有状态:会话bean包含必须保留的会话状态 跨单个用户的方法。
  3. Singleton:单个会话bean在客户端之间共享,并支持并发 访问。
  4. 在Web应用程序中,您通常会使用无状态bean来执行产品列表。然后,你会使用有状态的豆子将商品存放在购物车中。

    希望这有点帮助。