2012-06-29 4 views
0

EJB 세션 빈에 대해 읽었습니다. 나는 주로 봄에 작업했고 웹 사이트에서는 일반 세션 객체로 세션을 유지합니다. 세션 빈의 문서에는 장바구니가 있으면 세션 빈을 사용한다고합니다? JSP 레벨에서 세션을 처리 할 필요가 없다는 뜻입니까? 또한이 세션 빈을 사용하여 사용자 세션을 유지 보수 할 수 있습니다.세션 빈과 JSP 세션

위의 단락에서 마지막으로 쓰는 것에 동의하지 않습니다. 그것은 코드의 반복과 메모리의 여분 사용이 아닌가요?

나는이 개념을 설명하지 마십시오.

답변

0

서블릿의 세션은 요청 객체를 통해 얻은 HttpSession 객체를 통해 서블릿 컨테이너에서 유지 관리합니다. 새로운 HttpSession 객체를 실제로 인스턴스화 할 수는 없으며 비즈니스 로직을 포함하지 않지만 객체를 저장할 위치가됩니다.

EJB의 세션은 SessionBeans를 사용하여 유지 관리됩니다. 비즈니스 로직을 포함 할 수 있고 클라이언트가 사용할 수있는 bean을 디자인합니다. Stateful과 Stateless의 두 가지 세션 빈이 있습니다. 첫 번째 것은 어떻게 든 단일 클라이언트와 연결됩니다. 그것은 그 클라이언트의 상태를 유지하고 그 클라이언트 만이 사용할 수 있으며 클라이언트가 죽으면 세션 빈은 "손실"됩니다.

Stateless Session Bean은 상태를 유지하지 않으며 두 클라이언트가 차례로 호출해도 동일한 클라이언트가 동일한 Stateless Bean을 사용할 것이라고 보장 할 수 없습니다. Stateless Session EJB의 수명주기는 Stateful Session EJB의 수명주기와 약간 다릅니다. EJB 컨테이너의 책임은 각 세션을 추적하는 방법을 정확하게 알고 클라이언트의 요청을 세션 빈의 올바른 인스턴스로 리디렉션하는 것을 담당합니다. 이것이 이루어지는 방식은 공급 업체에 따라 다르며 계약의 일부입니다.

+0

서버 측에 대한 추가 정보 http://www.theserverside.com/discussions/thread.tss?thread_id=552 –

+0

sandeep에 감사하지만 애플리케이션에서 세션 빈을 사용하면 어떤 이점이 있습니까? HTTPSession 객체. 내가 EJB를 사용하고 있다면, 왜 내가 sessionbean을 사용할 것이고 그렇게하는 것의 장점은 무엇인가? 그리고이 접근법을 따르는 문제는 무엇인가? – vicky

+0

빈에 관한 한 가지는 서블릿에서 비즈니스 로직을 이동시키는 것입니다. 이것은 이제 서블릿에서 로직을 재사용 할 수 있고 EJB가 모든 다른 기술과 상호 작용할 수 있으므로 큰 이점입니다. – Namphibian

0

따라서 EJB는 비즈니스 로직을 캡슐화하고 트랜잭션과 보안을 처리하는 서버 측 구성 요소로 정의 할 수 있습니다. 또한 메시징, 스케줄링, 원격 액세스, 웹 서비스 엔드 포인트 (SOAP 및 REST), 종속성 주입, 구성 요소 수명주기, 인터셉터가있는 AOP 등과 같은 통합 스택이 있습니다. 세션 빈 메소드 사이에 대화 상태를 포함하지 않으며, 어떤 인스턴스가 모든 클라이언트에 사용할 수 있습니다

  1. 상태 비 :

    는 세션 EJB의 세 가지 유형이 있습니다.

  2. 상태 : 세션 Bean은 대화 상태를 포함하며, 단일 사용자에 대해 메소드간에 유지되어야합니다.
  3. 싱글 톤 : 단일 세션 빈은 클라이언트간에 공유되며 동시 액세스를 지원합니다.

웹 응용 프로그램에서 일반적으로 상태없는 bean을 사용하여 제품 목록을 작성합니다. 그런 다음 상태가 좋은 빈을 사용하여 장바구니에 제품을 저장합니다.

이 정보가 도움이되기를 바랍니다.