2013-06-21 3 views
3

상태 저장 세션 빈과 HTTP 세션간에 어떤 관계가 있습니까? Stateful Session Bean을 필요로하는 유스 케이스와 HTTP Session이 필요한 유스 케이스는 무엇입니까? 상태있는 세션 빈을 편리한 웹 서비스로 노출 할 수 있습니까?상태 저장 세션 빈과 HTTP 세션

+3

두 가지 모두 "박쥐"를 공통으로 사용하기 때문에 combat를 사용하고 있습니다 – Freak

+0

답변을 주셔서 감사합니다. http 세션의 상태와 Java의 세션 상태를 이해했습니다. 콩은 commong.Do에 아무것도 가지고 있지 않습니다 당신이 나에게 http 세션 빈 대 스테이크 풀 세션 콩을 사용하길 원한다면 사용 사례를 주시겠습니까 –

+0

당신은 아직도 그것을 잘 이해하지 못했을 것이라고 생각합니다. 다른 목적. 어쨌든 편집 된 대답을 참조하십시오 – Freak

답변

3

HTTP는 서버와 클라이언트 사이의 실제 전송 프로토콜입니다 것을 의미한다 무 상태 프로토콜 입니다 - 가있다 "는 무 호출 사이에 아무것도
지금은 우선이 HTTPSession에 무엇을 읽을 기억하고 세션 무엇 때문에

HTTP 세션
의 HttpSession 객체가 가질 수있는 콩은 (는 전체 세션에서 데이터를 보유하고 있기 때문에 대부분의 세션 빈은 상태 유지 세션 빈은 세션 콩은 여러 요청에 걸쳐 데이터 상태를 유지 관리하는 데 사용할 수 있습니다 마음에 계속) 여러 요청에 대한 대화식 상태 동일한 클라이언트의 즉, 특정 클라이언트와의 전체 세션 동안 지속됩니다. 우리는 세션 중에 클라이언트가 요청한 모든 요청에 ​​대해 클라이언트로부터받은 모든 정보를 저장할 수 있습니다.
는 세션 wiki
자바 플랫폼에서 , Enterprise 버전 사양에서 콩
, 세션 빈은 기업 Bean.A 세션 빈의 한 유형입니다 클라이언트를 들면, 계산이나 데이터베이스 액세스 등의 작업을 수행합니다. 세션 Bean은 트랜잭션 일 수 있지만 시스템 충돌이 발생하면 복구 할 수 없습니다. 세션 빈 객체는 stateless이거나 메소드와 트랜잭션에서 대화 상태를 유지할 수 있습니다. 세션 빈이 상태를 유지한다면 객체가 메모리에서 제거되어야한다면 EJB 컨테이너는이 상태를 관리한다. 그러나 세션 Bean 객체 자체는 자체 영구 데이터를 관리해야합니다.

간략한 설명
세션 추적은 웹 사이트 방문자가 페이지간에 이동할 때 정보 또는 상태를 유지 관리하는 프로세스입니다. 내장 된 메커니즘이 없기 때문에 웹 개발자 측에서는 약간의 작업이 필요합니다. 웹 서버에 브라우저에서 연결은 무 하이퍼 텍스트 전송 프로토콜 (HTTP)

SFSB의
동일한 세션 빈에 여러 번 호출 (즉 대화)을 통해 관리되는 클라이언트 상태에 대한 설계를 통해 발생합니다. JBoss Seam을 살펴보면 대화 컨텍스트에 SFSB가 많이 사용된다는 것을 알 수 있습니다.
EJB3에는 "stateless가 stateful session beans보다 낫다"는 것이 없습니다. 예를 들어, 신용 카드 프로세서 (stateless)와 같은 서비스를 제공하고 하나는 멀티 스크린 마법사 사용 사례 (상태 저장)에 대한 처리를 제공합니다.

내 의견 HttpSession 및 stateless 세션 빈을 사용하여 상태를 관리하는 것은 매우 어렵고 문제가 있습니다.

EDIT : HTTPSession은 사용자 세션처럼 세션 추적을 유지하는 데 사용됩니다. 예를 들어 로그인, 로그 아웃 메커니즘을 만들고 싶다면 다음과 같이 HTTPSession이 필요합니다. 사용자가 다른 페이지간에 탐색을 시작할 것이므로이 HTTPSession WHO가 페이지를 요구하고 있다는 것을 기억합니다. (HTTP는 상태없는 프로토콜이기 때문에) 불가능합니다.
지금 세션에서 사용자 이름과 암호의 세션을 설정하기 만하면이 세션이 존재하면 모든 페이지를 확인합니다. 페이지

이제 여러 요청을 통해이 사용자에 대한 많은 정보를 보내야한다면 어떻게 될까요?이 시나리오에서는 Stateful 세션 빈에서이 모든 정보를 설정합니다.
하지만 현재 일입니다. 현대 프레임 워크 세션과 정보에서 세션 빈에서 관리하기 쉽기 때문에 모든 것이 세션 빈에 저장됩니다.
HTTPSession은 우리가 순전히 서블릿과 어떻게 든 JSP 기술을 사용했을 때 사용되었습니다

+0

JAVA EE6에 대한 기사를 읽으십시오. CDI와 세션이 처리되는 주석을 사용하면 관리되는 bean이 웹 응용 프로그램의 여러 HTTP 요청에서 지속될 수 있습니다. HTTP 세션 기능을 구현할 수 있다고 생각합니다. 관리 Bean이나 HTTP Session을 통해 –

+0

예. 정확하게 할 수 있습니다. 세션 빈에 대해 'Stateful Session Bean'을 사용하는 용어는 EJB에서 사용되고 세션 빈에 대해서는 JSF에서 'Managed Bean'이라는 용어가 사용됩니다. – Freak