2010-05-29 7 views
2

나는 GWT 용 스프링 서버를 만들려고한다. (자바 스크립트 AJAX 클라이언트로 생각할 수있다.) 그러나 나는 한 지점의 건축을 결정할 수 없다. 세션을 만들고 사용하는 방법은 무엇입니까?스프링으로 세션 ID 처리하기

명백한 가장 쉬운 방법은 HTTP 세션 (쿠키 및 물건)을 사용하는 것입니다. 괜찮아 보이는군요.하지만 세션 ID를 헤더와 별도로 보내는 것이 더 좋을 것이라고 생각합니다 (SOAP 스타일).

그래서 무엇이 더 좋을까요 : getMyPetsName(String sessionID, int petID) 또는 getMyPetsName(int petID) + HTTP 헤더 (쿠키 또는 무언가)를 통한 세션 ID.

또 다른 질문은 첫 번째 방법을 사용하면 (내가 더 좋아하는) - 스프링에서 세션을 어떻게 처리합니까? 나는 봄에 정말로 안돼서이고, 인터넷 검색은 도움이되지 못했다. 무슨 뜻입니까?

String getMyPetsName(String sessionID, int petID) { 
    Session s = someWayToGetItById(sessionID); 
} 

미리 감사드립니다.

답변

2

내가 선택할 수있는 경우 항상 세션 ID를 보내는 것이 좋습니다.

사용자가 동일한 세션에서 여러 탭을 열 때도 훨씬 쉽습니다.

Spring MVC를 사용하지 않는다면 Spring이 세션을 처리하는 방법에 많은 제약 조건/가정을 두지 않을 것이라고 생각합니다. ehcache와 같은 많은 캐시가 있으며, 스프링을 사용하여 설정하고 세션을 저장할 수 있습니다. 더 나은 캐시를 사용하면 코드 기반에 영향을주지 않고 세션을 시스템에 분산시켜 지속적으로 저장할 수 있습니다.

+0

네, 그렇기 때문에 그것을하는 것이 더 좋은 방법이라고 생각합니다. 그러나 두 번째 질문은 아직 열려 있습니다, 나는 봄에 ID로 세션을 얻는 방법을 전혀 알지 못합니다. – bezmax

+0

예, 답변을 편집했습니다. 나는 Spring에 의해 쉽게 설정 될 수있는 좋은 캐시 구현을 사용할 것이다. Spring은 여러분의 구성 요소에 Spring을 삽입 할 것입니다. 일반적으로 세션 데이터를 가져올 수있는 싱글 톤을 가지고 있습니다. –

+0

흠, 컨테이너 세션과는 별도로 처리 세션을 제안합니다. 컨테이너 세션을 재사용 할 수있는 방법이 없습니까? 예를 들어, 강제로 그것은 내게 지정된 ID로 세션을 제공합니까? – bezmax