2019.02.01 Cookie 만들기(2)
2019. 2. 1. 12:04ㆍJSP
#1 Cookie 와 Session의 차이
① Session
- 세션이란 서버측의 컨테이너에서 관리되는 정보, 세션의 정보는 컨테이너에 접속해서 종료되기까지,즉
브라우저를 종료할 때까지 유지되며, 접속 시간에 제한을 두어 일정 시간 응답이 없다면 정보는 더이상
유지되지 않게 설정 가능.
- 정보가 서버측에서 저장된다는 면에서 보안적으로 유리
- 보안이 필요한 정보를 공유하기 위해서는 서버측에서 관리될 수 있는 세션을 이용하는 것이 좋다.
② Cookie
- 클라이언트측에서 관리되는 정보를 의미.
- 세션은 서버측에서 관리되지만 ,쿠키는 클라이언트에 정보가 저장된다.
- 브라우저의 종료와는 관계없이 쿠키 생성시 설정된 생존기간에 따라 쿠키가 유지된다.
- 쿠키는 클라이언트에 관리되기 때문에 보안에 취약하다 -> 하드디스크에 존재
#2 Cookie의 사용 예제
① cookieTest.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>cookie</title> </head> <body> <% // 클라이언트(브라우저)로부터 요청받을 때 전달받은 쿠키정보를 검색 String name ="쿠키 이름값이 없음"; String age = "쿠키 나이값이 없음"; Cookie[] cookies = request.getCookies(); // 전달받은 쿠키는 배열로 저장 ,없다면 Null값이 전달받는다. if(cookies !=null){ for(int i=0; i<cookies.length; i++){ if(cookies[i].getName().equals("name")){ name = cookies[i].getValue(); } if(cookies[i].getName().equals("age")){ age = cookies[i].getValue(); } }//for } %> <h1>cookieTest.jsp</h1> <h3>쿠키 이름값 : <%=name %></h3> <h3>쿠키 나이값 : <%=age %></h3> <input type="button" value="쿠키값 생성" onclick="location.href='cookieSet.jsp'"> <input type="button" value="쿠키값 삭제" onclick="location.href='cookieDel.jsp'"> </body> </html> | cs |
② cookieSet.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% // Step1. 쿠키 생성 Cookie cookie1 = new Cookie("name","박보검"); // 쿠기는 문자열로만 저장이 가능 Cookie cookie2 = new Cookie("age","27"); // Step2. 쿠키 유효기간 설정 -반드시설정해야됨. cookie1.setMaxAge(60*10); //초단위로 설정 , 수식으로 들어가도 된다. cookie2.setMaxAge(60*5); // 쿠기가 생성이 될 경로 지정 // 경로에 상관없이 항상 쿠리를 받고자 하면 루트경로 ("/")로 지정 cookie1.setPath("/"); // 루트 경로를 프로그램 최상위 경로이므로 항상 서버로 돌아온다. /* Step3. 클라이언트가 쿠키를 저장하도록 응답객체에 포함시킨다. 응답받은 클라이언트, 즉 브라우저는 서버가 시킨 대로 쿠키정보,유효기간, 쿠키를 보낸 웹서버의 URL주소와 함께 쿠키내용을 덱스트 파일로 저장한다. */ response.addCookie(cookie1); response.addCookie(cookie2); %> <script> alert('쿠키값이 생성됨'); //서버로 요청시 이전에 받은 쿠키들은 해당 서버에 전송 location.href='cookieTest.jsp'; // 쿠키전송도 같이 돌아온다. </script> | cs |
③ cookieDel.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% // Step1. 클라이언트(브라우저)가 보낸 모든 쿠키 가져오기 Cookie[] cookies =request.getCookies(); // Step2. 쿠키값이 존재하는 지 null체크 // Step3. 쿠키값의 유효기간을 0으로 설정 // Step4. 해당 쿠키를 클라이언트로 보내서 갱신된 유효기간으로 저장하도록함 -> 0으로 설정된 유효기간으로 업데이트 // Step5. 유효기간이 0이 된 쿠키는 자동삭제됨 if(cookies != null){ for(int i=0; i<cookies.length; i++){ if(cookies[i].getName().equals("name")){ cookies[i].setMaxAge(0); // 유효기간 0으로 변경 // 쿠키를 생성할 때 경로지정을 했기 때문에 마친가지로 삭제할때도 경로지정을 해줘야된다. cookies[i].setPath("/"); response.addCookie(cookies[i]); // 변경된 쿠키를 재전송 } }//for } %> <script> alert('쿠키 name값이 삭제됨'); location.href='cookieTest.jsp'; </script> | cs |
④ 실행화면
'JSP' 카테고리의 다른 글
2019.02.01 JDBC의 연동 (0) | 2019.02.01 |
---|---|
2019.02.01 Cookie와 Session의 활용 : 로그인 유지 상태 (0) | 2019.02.01 |
2019.01.31 Session의 활용 : 로그인페이지 (0) | 2019.01.31 |
2019.01.31 Session의 이해 (0) | 2019.01.31 |
2019.01.31 get형식 & post형식 (0) | 2019.01.31 |