재유's

[JSP] 웹 페이지 상태유지 기법 - Cookie & Session, 쿠키&세션 본문

IT Story/JSP

[JSP] 웹 페이지 상태유지 기법 - Cookie & Session, 쿠키&세션

Stella_NY 2019. 3. 12. 12:00

Cookie


  • 변수값을 사용자의 PC에 텍스트 형태로 저장
  • 초단위의 유효시간과 유효 도메인을 설정해야함
    • 서로 다른 도메인간에는 공유할 수 없지만 서브도메인간에는 공유 가능
      • ex) 쿠키 저장시 도메인을 .itpaper.co.kr로 설정할 경우
        www.itpaper.co.kr과 blog.itpaper.co.kr간의 데이터가 공유됨.
  • 보안에 취약
  • 데이터 저장시 URLEncode 처리가 필요함
  • 데이터 읽어올 때 URLDecode 처리가 필요함
  • 지정된 시간동안은 브라우저를 닫았다가 다시 열어도 삭제되지 않는다.
  • 사이트 내의 모든 페이지에서 읽을 수 있는 전역 변수의 역할을 한다.

Cookie 저장하기

1
2
3
4
5
6
7
8
9
10
11
12
String input = URLEncoder.encode("저장할 값");
//쿠키 생성
Cookie info = new Cookie("mycookie", input);
// 쿠키의 유효시간 (초)'
info.setMaxAge(60);
// 쿠키가 유효한 경로 설정
info.setPath("/");
// 쿠키가 유효한 도메인 설정
// --> 상용화시에는 사이트에 맞게 수정해야 함
info.setDomain("localhost");
// 쿠키저장하기
response.addCookie(info);



Cookie 읽어오기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 저장된 쿠키 목록을 가져온다.
Cookie[] cookies = request.getCookies();
// 쿠키값을 저장할 문자열
String mycookie = null;
 
// 쿠키목록이 있다면
if (cookies != null) {
    for (int i=0; i<cookies.length; i++) {
        // 쿠키의 이름을 취득한다.
        String cookieName = cookies[i].getName();
            // 이름이 내가 원하는 값일 경우 값을 복사한다.
        if (cookieName.equals("mycookie")) {
            mycookie = cookies[i].getValue();
            // 원하는 값을 찾으면 break;
            break;
        }
    }
}





Session


  • 사용자마다의 개인화 데이터를 서버의 메모리에 직접 저장
    • 그래서 많이 사용하지 말쟈! 컴퓨터에 부담이 간다
  • 데이터가 외부로 전송되지 않기 때문에 상대적으로 보안에 유리 (절대적인거 아님!)
Session 사용시간 설정(초단위)
1
session.setMaxInactiveInterval(30);



Session 데이터 사용
1
2
3
4
5
6
// 세션 저장하기 -> 모든 형태의 객체 저장 가능
String input = "Hello world";
session.setAttribute("mysession", input);
 
// 세션 읽기 -> 리턴값을 원래의 형태로 변환 필요함
String input = (String) session.getAttribute("mysession");



Session 개별 삭제
1
session.removeAttribute("mysession");



Session 전체 삭제
1
session.invalidate();




'IT Story > JSP' 카테고리의 다른 글

[JSP] 웹 페이지 강제 이동처리  (0) 2019.03.12
[JSP] 웹 페이지 상태유지 기법 - GET & POST  (0) 2019.03.05
Comments