쿠키와 세션
1. session
- session : 서버측에 일부 정보를 저장하는 것이다. 각 접속마다 session공간에 한 개만 생성된다.
- 클라이언트 : 브라우저 / 주소값 : 서버
- 서버에 저장되는 것이다.
- 로그인 처리에 사용한다.
- 서버에 id, 이름, 어드민, 주소
- 임시 저장(예매정보, 장바구니)
- 장점 : session은 서버에 존재하는 모든 jsp에서 사용이 가능하다.
- 단점 : 지우기 전까지는 데이터가 남아있다.
Note
request의 단점 : request는 각 jsp마다 다른 request를 가지고 있어서, 화면 변경이 되면 request가 초기화된다는 단점이 있다.
2. session의 주요 메서드
- session은 내장객체이기 때문에 request를 통해서 값을 받는다
- 본인 세션값 받아오기 :
request.getSession()
2.1 서버에 저장 : setAttribute("키",값)
setAttribute("id","hong")
setAttribute("name","홍길동")
- Map방식으로 저장되어 있음
- 게시판, 댓글 같은 경우에는 세션값을 읽어서 id를 출력해준다.
2.2 서버에 저장된 데이터를 가지고 오는 방법 : getAttribute("키")
- 저장되는 것이 Object이다 => ArrayList로 저장해서 받을 수 있다.
- cookie : 문자열만 저장 가능하다
- 한 공간 안에서 키가 중복되면 안된다.
2.3 삭제하는 방법 : invalidate()
- 일부를 삭제할 때 :
removeAttribute("키")
- 전체를 삭제할 때 :
invalidate()
- 로그아웃 시, 사용함
2.4 저장기간 설정하는 방법 : setMaxInactiveInterval(1/1000초 단위)
- 기본 디폴트 : 1800초(=30분)
3. cookie
- cookie : 클라이언트에 저장하기 때문에 보안 문제가 있어서 세션을 더욱 많이 사용한다.
- 찜하기
- 최근 방문기록
- 최근 상세보기
4. cookie의 주요 메서드
4.1 쿠키 저장하기 : Cookie cookie = new Cookie(키,값);
- cookie는 내장객체가 아니기 때문에 new를 통해 생성한다.
- 쿠키는 키와 값을 저장함
- 키 : 중복 불가 , 문자로 시작
- 쿠키에 key를 줄 때, 반드시 문자로 시작해야한다.(숫자로 시작불가)
- 값 : 문자열만 저장 가능함
4.2 저장기간 설정하기 : setMaxAge(초 단위)
4.3 저장된 쿠키를 클라이언트의 컴퓨터로 전송하기 : response.addCookie(쿠키명)
4.4 저장된 쿠키 값 받기 : request.getCookies()
4.5 키를 읽어오는 메서드 : cookie명.getName()
4.6 값을 읽어오는 메서드 : cookie명.getValue()
4.7 쿠키 전송범위 지정하기 : setPath("/")
/
에 저장하면 전체 url에 전송된다.