- 2019/09/17 myweb 쿠키(아이디 저장)2019년 09월 17일
- 조별하
- 작성자
- 2019.09.17.:03
[01] Cookie 클래스
- javax.servlet.http.Cookie 클래스를 이용.
- Tomcat 서버가 Client에 저장하는 텍스트 파일로 된 정보
- 보안성이 없음으로 계정과 패스워드를 동시에 쿠키에 저장하면, 쿠키의 내용을 전부 편집기로
열어 볼 수 있음으로 보안에 문제가 될 수 있다.
- 4Kb까지 저장할 수 있다. 네트워크 트래픽이 많아짐으로 1KB안쪽으로 사용 권장.- 쿠키는 웹페이지 접속시 서버로 자동으로 전송되고 서버에 의해서 클라이언트에 쓰여지므로
쿠키를 사용하지 않는 옵션을 브러우저에서 지정가능.
- 쿠키의 저장 폴더(최근의 브러우저는 보안상의 이유로 쿠키 내용을 볼 수 없도록 변경함):
. Window XP IE의 경우: 탐색기 --> 도구 --> 폴더 옵션 --> 보기:
보호된 운영 체제 파일 숨기기 체크 해제, 숨김 파일 및 폴더 표시 선택.
"C:\Documents and Settings\각 계정(Administrator)\Cookies"가 지정됨- 사용예)
.하루동안 이벤트창 오픈 하지 않기
.ID/PASSWORD 자동으로 저장기능 등 입력된 값의 자동 출력
.내가 클릭한 상품 목록
- setMaxAge()
.쿠키의 생존 기간 초 단위 지정, 12시간의 경우 12*60*60
.브러우저는 시간이 지난 쿠키는 서버로 전송하지 않고 자동으로 삭제하며
사용자가 직접 삭제도 가능. 쿠키는 브러우저가 사용하는 데이터임.- 쿠키변수 선언 및 초기값
Cookie cname=new Cookie(쿠키 변수명, 쿠키 값)
예) Cookie cname=new Cookie("cname", "user1");- 접속자의 브러우저의 옵션에서 쿠키를 사용할 수 없도록하면 쿠키는 작동되지 않음으로
중요한 기능은 세션이나 데이터베이스를 이용한다.
쿠키에 쇼핑카트등의 사용은 주의할 것.
[02] 아이디 저장
▲ 위와 같은 checkbox표시로 아이디에 대한 정보를 유지시켜 주는것이 Cookie 이다
1. loginForm
로그인 폼에서 input 태그의 checkbox type으로 아이디 저장을 구현
※여기서 아이디 저장을 check하지 않으면 null값이 넘어 가기 때문에
Utility 함수의 checkNull함수를 이용해서 null값이 넘어가면 ""로 반환되서 넘어가게 하자2. loginProc
> 로그인이 되었을 때 cookie값을 받아 와야 하기 때문에 proc 에서 쿠키 설정
▶ Utility.checkNull() 이용
//쿠키(아이디저장)------------------------------------------------------------- String c_id=Utility.checkNull(request.getParameter("c_id")); Cookie cookie=null; //1) if(c_id.equals("SAVE")){ //아이디 저장 체크를 했다면 //쿠키변수 선언 //new Cookie("쿠키변수",값) cookie=new Cookie("c_id",id); //2) 쿠키의 생존기간, 1개월 cookie.setMaxAge(60*60*24*30); }else{ cookie=new Cookie("c_id",""); cookie.setMaxAge(0); }//if end //3)요청한 사용자 PC에 쿠키값을 저장 response.addCookie(cookie); //-------------------------------------------------------------------------------
▶ 1) 에서의 "SAVE" 는 checkbox의 value값이고, 그 값이 c_id와 같다면 쿠키변수 c_id 에 id 값을 넣어 변수를
선언해 준다▶ 2) 쿠키 생종 기간을 60*60*24*30초로 설정을 해준다
▶ 3) 은 팩스 형태대로 사용자 PC에 저장을 해주는 것이다
3. loginForm
>Proc에서 설정에서 쿠키값을 다시 로그인 폼에서 받아온다
<% if(s_id.equals("guest")||s_passwd.equals("guest")){ //로그인을 하지 않은 경우 //쿠키값 가져오기-------------------------------------- //1) Cookie[] cookies=request.getCookies(); //return값이 배열이다 String c_id=""; if(cookies!=null){//쿠키가 존재하는지? //2) for(int idx=0; idx<cookies.length; idx++){ Cookie cookie=cookies[idx]; //쿠키변수 c_id 인지? if(cookie.getName().equals("c_id")==true){ c_id=cookie.getValue(); }//if end }//for end }//if end //------------------------------------------------------- %>
▶ 1) Proc에서 설정해준 쿠키값을 불러온다
▶ 2) 쿠키값이 null이 아니면 배열에 담긴 쿠키값을 for 반복문을 돌려서 그값을 c_id에 넣어준다
<input type="checkbox" name="c_id" value="SAVE" <%if(!(c_id.isEmpty())){out.println("checked");} %>>아이디저장
▲ check박스에서 c_id 가 빈값이 아니면, 그 아이디저장이 check 되어있게 설정
'JAVA 교육 > myWeb' 카테고리의 다른 글
2019/10/01 EL과 JSTL (0) 2019.10.01 2019/09/20 메일보내기 (0) 2019.09.20 2019/09/19 myWeb 포토 갤러리 (0) 2019.09.19 2019/09/18 [파일 첨부] (0) 2019.09.18 2019/09/16 myWeb 회원가입과 아이디 중복확인 (1) 2019.09.16 다음글이전글이전 글이 없습니다.댓글