220 likes | 508 Vues
J S P CH4 . 쿠키와 세션. 임지희 ambomis@kunsan.ac.kr 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2012.07.26. 목차. 쿠키와 세션에 대하여 쿠키와 기술의 사용 방법 세션 기술의 사용 방법. IST (Information Sciences & Technology) Laboratory. 쿠키와 세션에 대하여. 두 개의 웹 컴포넌트가 데이터를 주고 받도록 만들기 위해서는 ? 쿠키 기술이나 세션 기술을 사용 쿠키 기술
E N D
J S P CH4 . 쿠키와 세션 임지희 ambomis@kunsan.ac.kr 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2012.07.26
목차 • 쿠키와 세션에 대하여 • 쿠키와 기술의 사용 방법 • 세션 기술의 사용 방법 IST (Information Sciences & Technology) Laboratory
쿠키와 세션에 대하여 • 두 개의 웹 컴포넌트가 데이터를 주고 받도록 만들기 위해서는? 쿠키 기술이나 세션 기술을 사용 • 쿠키 기술 • 전달할 데이터를 웹 브라우저로 보냈다가 웹 서버 쪽으로 되돌려 받는 방법 사용 • 세션 기술 • 웹 브라우저를 거치지 않고 웹 서버에 있는 데이터 영역을 통해 데이터를 전달하는 방법 사용 데이터 첫 번째 웹 컴포넌트 쿠키 데이터 저장소 첫 번째 웹 컴포넌트 두 번째 웹 컴포넌트 첫 번째 웹 컴포넌트 데이터 세션아이디 첫 번째 웹 컴포넌트 첫 번째 웹 컴포넌트 세션 데이터 저장소 두 번째 웹 컴포넌트 첫 번째 웹 컴포넌트 세션아이디 IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (1/10) • 새로운 쿠키 데이터를 저장하는 방법 – 입력 기능 • 쿠키 데이터를 웹 브라우저 쪽에 저장 하기 위해서는? • Cookie 클래스의 객체를 만들어야 함 -- ① • addCookie메서드를 호출 해야 함 -- ② Cookie cookie = new Cookie (“AGE”, “22”) ; response . addCookie (cookie) ; Cookie 객체 쿠키이름 쿠키값 웹 브라우저가 쿠키를 저장할 때 웹 서버의 주소도 함께 저장 IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (2/10) • 새로운 쿠키 데이터를 저장하는 방법 – 입력 기능 • 예제 addCookie메서드 호출 객체 생성 StoreCookies.jsp IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (3/10) • 쿠키 데이터를 읽는 방법 – 조회 기능 • 쿠키 받기 : getCookies • 특정쿠키 찾기 : getName • 쿠키 값 가져오기 : getValue Cookie cookies[ ] = request getCookies ( ) ; String name = cookie getName ( ) ; String value = cookie getValue ( ) ; 웹브라우저가 보낸 모든 쿠키를 Cookie 배열로 만들어서 리턴하는메서드 쿠키이름을 가져오는 메서드 쿠키값을 가져오는 메서드 IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (4/10) • 쿠키 데이터를 읽는 방법 – 조회 기능 • 예제 웹브라우저가 보낸 쿠키를 배열로 리턴 받기 배열에서 특정 쿠키 찾기 ReadCookies.jsp IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (5/10) • 쿠키 데이터를 수정하는 방법 – 수정 기능 • 쿠키를 저장 할 때와 같이 Cookie 객체를 만들어 addCookie메서드에 넘겨줌 • 예제 ModifyCookie.jsp IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (6/10) • 쿠키 데이터를 삭제하는 방법 – 삭제 기능 • 쿠키에 수명을 지정해 놓으면 일정 기간 동안 보존됨 • 수명지정방법 • add Cookie 메서드 호출 전에 setMaxAge메서드를호출 • setMaxAge메서드: 쿠키의 남은 수명을 초단위로 넘겨줘야 함 • 예제 1시간 후에 쿠키를 삭제하려면? 쿠키를 바로 삭제 하려면? 웹 브라우저가 끝날 때 쿠키를 삭제하려면? Cookie.setMaxAge(3600) ; Cookie.setMaxAge(0) ; Cookie.setMaxAge(-1) ; IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (7/10) • 쿠키 데이터를 삭제하는 방법 – 삭제 기능 • 예제 DeleteCookie.jsp IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (8/10) • 쿠키가 특정 경로명을 갖는 URL로만 전송되도록 만드는 방법 • 특정 경로명을 갖는 URL로만 쿠키가 전송되도록 만드는 방법 • addCookie메서드 호출 전에 satPath메서드 호출 • 웹 애플리케이션 디렉터리를 기준으로 한 URL 경로명을 파라미터로 넘겨줘야 함 • 예제 http://localhost:8080/brain/sub1/으로 시작하는 URL로만 쿠키가 전송되도록 하려면? Cookie.setPath(“/brain/sub1/”) ; IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (9/10) • 쿠키가 특정 경로명을 갖는 URL로만 전송되도록 만드는 방법 • 예제 ReadJobCookie.jsp StoreJobCookie.jsp IST (Information Sciences & Technology) Laboratory
쿠키 기술의 사용 방법 (10/10) • 쿠키가 여러 웹 서버로 전송되도록 만드는 방법 • addCookie메서드 호출 전에 setDomain메서드를 호출 • 도메인 설정 : setDomain • 예제 • www1.hanb.co.kr • www2.hanb.co.kr • www3.hanb.co.kr setDomain(“.hanb.co.kr”) ; IST (Information Sciences & Technology) Laboratory
세션 기술의 사용 방법 (1/8) • 서블릿 클래스에서 세션 기술을 사용하는 방법 • 세션 시작 ,정보 가져오기 : getSession • 데이터 저장, 수정 : setAttribute • 데이터 가져오기 : getAttribute • 데이터 삭제 : removeAttribute • 세션끝내기 : invalidate HttpSession session = request.getSession ( ) ; session.setAttribute(“ID”, “주댕이”) ; Stringstr = (String) session.getAttribute(“ID”) ; session.removeAttribute(“ID”) ; session.invalidate() ; IST (Information Sciences & Technology) Laboratory
세션 기술의 사용 방법 (2/8) Animalservlet 서블릿 클래스 등록하는 코드 Resultservlet 서블릿 클래스 등록하는 코드 web.xml Food.html Animalservlet.java Resultservlet.java IST (Information Sciences & Technology) Laboratory
세션 기술의 사용 방법 (3/8) • JSP 페이지에서 세션 기술을 사용하는 방법 서블릿 클래스에서는 새로운 세션을 시작하거나 진행중인 세션을 계속하기 위해 getSession메서드 사용. 하지만 서블릿 클래스에서는 이 코드가 자동으로 추가 되기 때문에 session 내장변수를 사용하면 됨. • 데이터 저장, 수정 : setAttribute • 데이터 가져오기 : getAttribute • 데이터 삭제 : removeAttribute • 세션끝내기 : invalidate session.setAttribute(“ID”, “주댕이”) ; Stringstr = (String) session.getAttribute(“ID”) ; session.removeAttribute(“ID”) ; session.invalidate() ; IST (Information Sciences & Technology) Laboratory
세션데이터 읽어옴 PersonalInfo.html 세션데이터 저장 세션종료 Subscript.jsp Agreement.jsp Result.jsp
세션 기술의 사용 방법 (5/8) • 세션 기술에서도 웹브라우저로 세션 아이디를 보낼 때, 쿠키 형태로 만들어서 전송함. • 그 쿠키의 이름은 JSESSIONID • 하지만 어떤 경우에는 쿠키 기술을 사용할 수 없음 . • 그런 환경에서는 URL 재작성 메커니즘을 사용해 세션 아이디를 전송함 세션아이디 첫 번째 웹 컴포넌트 첫 번째 웹 컴포넌트 세션 데이터 저장소 세션아이디 저장 JSESSINID=B69997AA065 두 번째 웹 컴포넌트 첫 번째 웹 컴포넌트 세션아이디 JSESSINID=B69997AA065 IST (Information Sciences & Technology) Laboratory
세션 기술의 사용 방법 (6/8) • URL 재작성 메커니즘의 사용 방법 • A는 어떻게 URL을 보낼 수 있을 까? 대부분의 웹 애플리케이션에서 먼저 나오는 화면에 다음 화면에 대한 링크가 있음 • 본래의 URL을 가지고 새로은 URL을 만드는 방법이기 때문에 URL 재작성이라고 부름 URL + 세션아이디 첫 번째 웹 컴포넌트 첫 번째 웹 컴포넌트 세션 데이터 저장소 두 번째 웹 컴포넌트 첫 번째 웹 컴포넌트 URL + 세션아이디 IST (Information Sciences & Technology) Laboratory
세션 기술의 사용 방법 (7/8) • URL 재작성 메커니즘의 사용 방법 • 호출 하기 : encodeURL 재작성된URL : http://localhost:8080/~.jsp ; jsessionid=8080A1AAA619AG5R48 String url = response.encodeURL(http://localhost:8080/~.jsp) IST (Information Sciences & Technology) Laboratory
세션 기술의 사용 방법 (8/8) • URL 재작성 메커니즘의 사용 방법 • 쿠키 차단하기 도구 > 인터넷 옵션 > 개인정보 > 모든쿠키 차단 • 예제 WriteSessionData.jsp ReadSessionData.jsp IST (Information Sciences & Technology) Laboratory 차단 하지 않았을 때
END 감사합니다 임지희 ambomis@kunsan.ac.kr