본문 바로가기
programming/web

[jsp]Session

by 힐무새 2017. 5. 17.
  • 세션(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)


'programming > web' 카테고리의 다른 글

[jsp] 액션 태그, 에러 페이지  (2) 2017.05.24
[jsp]mvc pattern  (0) 2017.05.23
[jsp]JSTL  (0) 2017.05.19
[jsp]EL(Expression Language)  (6) 2017.05.19
[jsp]multi check data, response  (0) 2017.05.15