본문 바로가기
JAVA/JSP

session, cookie 장,단점 및 사용 예시

by java나유 2022. 8. 17.

session, cookie 

client에 정보를 저장해서 서버와 통신하면서 
페이지 이동시 지속적으로 사용 가능하도록 하는 객체

 

session: 클라이언트 입력 정보-> 서버에 저장 -> 브라우저에 저장하는 형태

cookie: 서버에서 생성->클라이언트에 저장되어 사용

 

실사용:

session : 로그인, 메일발송 정보, 결제정보
cookie: 팝업창, 접속자 PC정보

 

session 단점: 여러서버에서 공유할 수 없음 (JSP) (통합아이디 이런거는 session을 못 만듦) 
cookie 단점: 정보노출 단계가 낮음(Javascript, JSP)

 

세션 사용 법

String user ="hong";
String email ="hong@nate.com";
int level =4;

session.setAttribute("mid", user);
session.setAttribute("mail", email);
session.setAttribute("lv", level);
session.setMaxInactiveInterval(20*60); //20분

long last=session.getLastAccessedTime(); //세션 유지 시간 
long create =session.getCreationTime(); //세션 생성 시간
long user_time=(last-create) / 60000; //세션 경과 시간

//MaxInactiveInterval: 기본이 1800초
//session.setMaxInactiveInterval(-1); 무한
//session.setMaxInactiveInterval(0); 소멸 로그아웃?
session.setMaxInactiveInterval(60*60); //최대 시간 조정하는 부분
int time=session.getMaxInactiveInterval() / 60;
//30분동안 session 유지

int time = session.getMaxInactiveInterval();
실질적으로 로그인에 사용하진 않음 로그인 시간 몇분 설정 되어있는지 확인 할 때 사용

 

쿠키 사용 법

String user="홍길동";
String email="hong@nate.com";
Cookie ck = new Cookie("person",user); //쿠키값 생성
response.addCookie(ck);  //셍성한 쿠키값 서버 전송
Cookie ck2 = new Cookie("email",email);
response.addCookie(ck2);

Cookie[]ck=request.getCookies();
out.print(ck[0].getName()+"<br>"); //[0]서버정보
out.print(ck[1].getName()+"<br>"); //쿠키이름
out.print(ck[2].getName()+"<br>"); //쿠키이름
out.print(ck[1].getValue()+"<br>"); //쿠키 저장된 값
out.print(ck[2].getValue()+"<br>"); //쿠키 저장된 값

Cookie[] ck =request.getCookies(); //서버에서 쿠키값을 가져옴
ck[1].setMaxAge(0); //서버에 있는 쿠키 및 클라이언트 쿠키 모두 삭제
ck[2].setMaxAge(0); //
response.addCookie(ck[1]); //삭제된 쿠키 값을 서버에 재전송
response.addCookie(ck[2]); //
728x90

'JAVA > JSP' 카테고리의 다른 글

DB, delete하기 jsp,java mvc버전  (0) 2022.08.30
DB, insert하기 jsp,java mvc버전  (0) 2022.08.30
Forward / Include 차이점  (0) 2022.08.12
현재 시각 mysql 에 입력하기 / 값 전달  (0) 2022.08.11
[JSP]자바 서버 페이지  (0) 2022.08.08

댓글