1. 세션(Session)
- 내장 객체로서 브라우저마다 한개씩 존재하고, 고유한 SessionID 생성 후 정보를 추출
- 쿠키는 사용자 컴퓨터에 저장하는 것이고 세션은 서버에 공간을 할당해주고 사용자 컴에는 서버 공간에 접근할 수 있는 정보(SessionID)를 헤더에 있는 쿠키 정보에 저장해 놓는다.
- 사용자가 요청을 보낼 때 헤더에 있는 쿠키 정보를 같이 보내면서 서버가 그 SessionID를 보고 서버에 할당된 공간을 이용
- 그래서 쿠키를 아예 삭제하거나 허용을 하지 않는다면 이 세션도 사용을 못한다.
- 쿠키는 서버가 직접 저장을 해줘야 되지만 SessionID는 자동적으로 헤더 쿠키에 저장된다.
- 쿠키보다는 세션을 쓰는 것이 더 안정적이다.
- 계속 쓰는 것보다 필요한 정보를 저장하는 용도로만 쓰는 게 좋음
2. 세션의 장단점
- JSP에서만 접근할 수 있기 때문에 보안성이 좋고 저장 용량의 한계가 거의 없음
- 서버에 데이터를 저장하므로 부하에 걸릴 가능성 있음
- 그래서 쿠키와 다르게 문자열 뿐만 아니라 객체도 가능
3. 실제 사용
- 세션 저장
session.setAttribute("키", "값");
- session은 JSP의 내장 객체이므로 따로 객체화를 할 필요가 없다. - 세션 사용
session.getAttribute("키"); - 세션 삭제
session.removeAttribute("키");
4. 예시
- apple을 아이디로 로그인을 시도하면 join_db.jsp로 가서 DB 작업을 해 로그인 성공 실패를 검사하게 된다.
- 성공을 하게 되면 session.setAttribute("loginUser", userid); 를 이용해 "loginUser"를 키로 로그인한 아이디를 session에 저장해 놓는다. 지금 로그인한 아이디가 누구인지 저장을 해 놓는것이다.
- 저장해 놓은 세션 키로 session.getAttribute("키") 를 이용해 지금 세션에 저장된 아이디를 가져온다.
- 로그아웃이나 회원탈퇴를 한 경우 세션에 저장되어 있는 아이디를 삭제해야 하므로 session.removeAttribute("키")를 이용해 세션에 있는 정보를 삭제한다.
'웹개발 > JSP' 카테고리의 다른 글
[JSP] DBCP(Database Connection Pool) (0) | 2022.05.25 |
---|---|
[JSP] Ajax(Asynchronous Javascript and XML), GET/POST 방식 (0) | 2022.05.25 |
[JSP] 쿠키(Cookie) (0) | 2022.05.22 |
[JSP] 내장 객체, Form 유효성 검사 및 예제 (0) | 2022.05.22 |
[JSP] 액션 태그 (0) | 2022.05.20 |