programming/web
[jsp]Session
힐무새
2017. 5. 17. 15:26
세션(session)이란??
- 사용자가(클라이언트)의 상태 정보를 임시적인 메모리로 서버에서 가지고 있게 끔 처리해주는 jsp 기본 객체를 일컫는 말입니다. 하나의 웹브라우저에 하나의 세션을 설정할 수 있습니다.
- 세션의 범위
- 클라이언트1이 브라우저를 닫는 순간
- 프로그램상 logout(invalidate())하면서 세션 종료
- 시간을 정해 놓고(web.xml) 세션 종료
jsp에서 세션 처리
- 세션 생성
- 키와 value 매핑처리
- session.setAttribute("세션key",객체(value));
- session.getAttribute("세션key");
- 객체가 value이므로 지정할 수 있다는 것은 문자열뿐만아니라 객체 안에 있는 여러 필드를 저장할 수 있다는 것입니다. 아래 그림과 같이 session 객체에 다양한 field 정보를 저장하고 불러올 수 있습니다.
세션 메서드
- getId(): 세션의 고유 id를 구합니다
- getCreationTime(): 세션이 생성된 시간
1970년 1월 1일 이후 출력 시간이며, 단위는 1ms - getLastAccessedTime(): 브라우저(client)가 session을 통해 마지막으로 접속한 시간
- invalidate(): 세션을 강제 종료시킵니다. 기존에 사용하던 session 기본 객체가 삭제됩니다.
세션의 적용
- 세션 처리
- login 사용자 관련 정보를 page 마다 표시할 수 있습니다 - page마다 필요로 하는 정보를 DB에서 불러온 내용을 객체로 담아 session 객체에 저장 및 호출
ex)
- @@@님 로그인 중,
- 화면별 권한 check(read, 등록/수정/삭제) - 장바구니 담기
- page마다 구매한 물품정보(물건 id, 구매 수량)
세션 활용 예제(로그인)
- 화면 처리
- ID/ PW를 입력
- process에서 DB 인증이 되면, DB에서
- id/pw와 정보(이름, 권한, 물건구매 hist)
- page 마다 현재 session 정보에 해당 사용자를 호출해서, session 정보가 있을 때만 사용 가능하도록 함(정상적인 login 프로세스를 통해서만 페이지 접근이 가능하도록 설계) - DB 구성
- member 테이블 생성
- id, pw, 사용자명, point, auth(권한) - VO 클래스 생성
- DAO
- sql: select * from member
where id = ? and pass= ?
- public Member getMember(Member sch) - 로그인 화면 구성(넘길 데이터, id, pw)
- loginProc.jsp(로그인/로그아웃 proc 처리)
id, pw가 DB에 있는지 여부를 확인 후 있으면 session 처리, 없으면 다시 login 화면으로 이동
- 로그아웃 시, session을 invalidate() 처리 후, 로그인 화면으로 이동 - main.jsp
- 로그인 후, 초기화면
- session값을 check해서 session이 있는 경우
@@@님 환영합니다. 현재 point
- session이 없는 경우
msg: 로그인이 필요합니다. 로그인 창으로 이동합니다.
- 로그아웃 클릭 시, 세션 종료(loginProc.jsp)