개발 의문 해결

JSP 세션 유지 안 되는 이유 | Session 값이 null이 되는 이유

티시즌 2023. 6. 1. 23:52

JSP를 이용해 회원가입 시스템을 만들어 보고 있다.

회원가입을 구현하고 로그인/아웃 기능을 구현한 다음 내정보 수정을 구현하고 있었다.
그런데 다 잘 되는데 '내 정보 수정' 페이지만 가면 세션이 사라져서 member_id가 null이 되는 것이다..

엄청 찾아봤는데, 이유는 이 부분에 있었다!

메인 페이지의 함수로 들어 있는 상태 -> 오류 남!
logout.jsp를 만든 상태 -> 정상 작동됨!

 

이 글이 결정적이었다. 정말이지 압도적 감사...

 

OKKY - session값이 null이 되는 이유가 뭘까요.. 고수님들의 도움이 간절합니다.

몇일 안고있는 문제입니다. 첫 세션 저장후 메소드에서 getSession 하면 자장된 값이 나옵니다.그 후 다른 메소드에서 getSession하면 null 값이 나옵니다.   user로그인하면 메인페이지넘어가서 마이

okky.kr

 

그러니까 내가 메인페이지에 logout 이름의 함수를 만들었고, 그 함수에 세션 삭제 JSP 문법을 넣었고, 그래서 메인페이지가 띄워짐과 동시에 세션이 지워진 것이다.
그래서 메인페이지를 실행시킬 때는 세션이 잘 살아있었는데 이제 메인페이지에서 다른 페이지로 넘어가려니까 세션이 사라진 것...ㅎㅎㅎㅎㅎ
logout.jsp를 만들어서 이 페이지 안에서 코드를 실행시키니 아주 잘 작동한다.

아직 개념 이해가 부족해서 발생한.. 어이없는 착각에서 비롯한 실수이다..
JSP는 서버 단에서 실행되는 것이고 JavaScript는 브라우저에서 실행되는 것이기 때문에 같은 위치에 있는 것 같아도 별개로 실행되는 것이 당연하다.

나는 이게 포토샵의 레이어 같은 개념이라고 이해했다.
하나의 그림 (=하나의 코드) 처럼 보이지만 사실은 따로 관리되는 여러 겹의 코드 레이어인 것이다.
JSP 레이어랑 JavaScript 레이어가 따로 있는 것!
이라고 처음에 이해했는데, 실행 주체가 달라서 정확한 비유는 아니라고 한다.

아무튼 같은 이유로 다음 코드도 안 된다.

JavaScript if else에 관계없이 JSP 코드가 실행되므로 두 번째 SMSYN 선언에는 오류 메시지가 뜬다.
아휴...

개념정리의 중요성..!!