본문 바로가기
개발자로 가는 길(국비지원과정)/4.Spring+ Ajax

[210722G목] 쿠키와 세션의 차이

by 레아Leah 2021. 7. 22.
반응형

선생님 파일 클래스룸에서 가져옴

 

해야할 것

쿠키, 아이디 중복, 에러가 노출이 되지 않도록, 댓글 

 

 

아이디 저장을 클릭하면 아이디가 저장되어 있도록 쿠키 사용 

 

사용자의 정보를 저장하는 방법 2가지 방법: 세션, 쿠키 

쿠키와 세션의 차이점에 대해~! 

세션 실제로 데이터가 저장이 되는 곳은 서버 session.addattribute

쿠키 사용자의 로컬 컴퓨터에 저장되는 것이다.  

문제 개인pc도 해킹을 하기 때문에 사용자의 정보들이 노출되는 문제되는 상황 발생 

쿠기에 개인정보가 담겨있기 때문에 

프로그래밍 효용성을 위해 다시 사용하는 중! 

 

 

새로운 레가시 생성 

설정을 엄청 빠르게 해주세요 

 

학습목표 쿠키와 세션 구분

HTTPSEssion에 값을 저장할 것임

 

값을 삭제하는 것은 로그아웃을 의미

 

애노테이션으로 하는 방법 

 

컨트롤러

화면 실행

 

기존 수업에서 사용하던 sessionSave을 사용 

HttpSession은 스프링에서 관리하는 객체

 

마치 맵처럼 

 

이미 value로 설정해놓음

 

 

세션은 페이지가 전환되어도 유지되는 장점이 있어 로그인시 사용한다. 

 

 

세션 정보를 지우는 방법, 사용자가 스스로 로그아웃하거나, 창을 닫아버릴 경우이다. 

session.removeAttribut or invalid 

 

세션에 저장된 정보를 한번에 삭제하는 방법(세션 클리어) invalidate 

하나하나 선택적으로 삭제시 removeAttribute

스프링 화면 

 

HttpServletResponse response;

HttpServletRequset request;

사용자가 서버에 요청울 할때, 서버에서 클라이언트 쪽으로 응답하는 것을 response

HttpServlet는 웹의 응답을 해주는 것을 클래스로 개발해준 것,

아래는 참고용 

전달인자로 담아두면 사용가능 스프링에서 기능 제공 

 

 

HttpServletRequset이 스프링으로 넘어오면서 보안상문제가 있다 판단해 이름을 바꿔 Model model로 사용

HttpSession 또한 서블릿에서 제공해줌

 

아래는 세션을 사용하지 않겠다는 표시

 

애노테이션을 이용해 세션에 저장을 하기 위해

 

세션애노테이션을 사용학기 위한 콘트롤러 클래스 생성 

 

 

 

[2교시]

model을 이용해 세션을 처리 

httlpsession을 사용하는 것이 더 간단해보이지만... 

 

@SessionAttributes("value")

value가 키 

 

사용할 때는 모델을 사용 

일회성으로 보통 모델을 사용하지만 @SessionAttributes을 달고 있으면 일반 모델이 아니라 세션의 객체가 되어 사용할 수 있다. model.addAttribute("value", "sessionAnnotaion에서 저장한 값"); 라고 사용하면 session.attribute처럼 사용가능. 여기서는 일반 모델과 다름 

 

삭제!

 

세션의 데이터를 꺼내오는 방법 

getter로 꺼내오지만 오브젝트이기떄문에 형변환 필요

예전엔 이렇게 사용했다만 확인

 

@ModelAttribute()

리퀘스트파람과 같은 역할 

클라이언트에서 넘어오는 것은 아니지만 모델어트리뷰트에서 꺼내 사용 

저장한 데이터가 있으면

지울게 없는데 지운다고 하니 오류?

 

세션어트리뷰트보다 자바스러운 것이 좋으며 애노테이션으로 사용하는 걸 쓰면 된다. 

 

 

쿠키 고고! 

쿠키에 값을 저장하겠다 

HttpServletResponse 잘안씀

쿠키는 사용하려면 쿠키객체를 생성해야함 

 

옛날방식으로 해봄

쿠키는 클라이언트가 사용하는 웹 브라우저에서만 사용 

메모장같아 텍스트? 파일? 형식이라 열린다? 

 

 

하드디스크가 아닌 브라우저에 저장함 

해킹의 대상이 될 수 있다? 

 

 

response.addCookie(cookie1);
response.addCookie(cookie2);

하는 순간 사용자 브라우저에 저장됨 

 

 

쿠키는 로그인 시 체크할 때 사용 

 

 

삭제는 쿠키의 값을 널로 

하드디스크에 저장하는 시간이 필요해 reload하는 시간이 걸림? 

메모리에 저장되는 것이 아니라 클라이언트의 하드디스크에 저장되므로 꺼내와 적용시키기 때문에.. 

 

 

[3교시]

콘솔창 확인

HttpServletRequest 고전적인 방법

 

첫번째 방법 

map처럼 사용가능 

사용자가 쿠키를 저장하도록 유도 

 

 

 

2번째 방법 

 

 

 

 

 

쿠키 배운걸 보드에 가져가서 써보기 

 

 

어디선가 오류남

 

Member member, 실제 정보  
boolean saveid,    체크했나 안했나 

@CookieValue 저장된 것을 불러오는 것 

사용해야할 모델 

저장할때 

 

 

히루동안 쿠키값 하드디스크에서 지워지지 않게 하려면 

 

내일 쿠키가 살아있는지 확인

 

내거 오류난 거 

 

프로젝트 생성해서 복붙해서 에이젝스 만들어 놓기 

 

내일 인터셉터 배울거임  

반응형