인프런 커뮤니티 질문&답변
반환되는 세션안에는 어떤게 있나요?
작성
·
321
·
수정됨
2
<질문>
이미 있는 test로 로그인한다고 가정해보겠습니다
그러면 loginMember의 로그를 찍으면 아래와 같이 되고,
loginMember= Member(id=1, loginId=test, name=테스터, password=test!)request.getSession()을 하면
HttpSession session = request.getSession();request의 쿠키정보에서 얻어온 JSESSIONID값으로 Session들을 모아둔 Session저장소에서 동일한 sessionId(=JSESSIONID) 값이 있는지 찾습니다.
그다음 동일한 sessionId가 있으므로 해당 Session을 반환하는 데 이때 이 세션안에는 어떤게 있는 건가요??
제가 생각한건 두개입니다.
1. JSESSIONID와 Value가 session에 들어있는경우
(session={"JSESSIONID": Value})
그러면
session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);위 코드에서 초기화를 해주고,
세션 파일은 해시(hash)값으로 생성하니까
session={"JSESSIONID": Value, "SessionConst.LOGIN_MEMBER": loginMember}
이런식으로 HttpSession안에 공존해서 있는 경우
그래서 클라이언트에게 응답할 때 이 세션안에 있는 JSESSIONID를 쿠키에 직접 넣어준다
2. session 안에 아무것도 없는 경우
이 세션은 사용자 test를 구분하기 위한 객체일뿐 session_test(test에 대한 세션)에 아무값이 없다(그냥 빈 객체)
그래서 아래코드를 하게되면
session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);session={"SessionConst.LOGIN_MEMBER": loginMember} 이 된다.
그래서 클라이언트에게 응답할 때 세션저장소에서 이 세션의 JSESSIONID를 찾아서 쿠키에 넣어준다
제가 생각한 것 중에 답이 있는 지 궁금합니다.
답변주시면 정말 감사하겠습니다.
아래글을 참고 했습니다.
답변 1
0





