Connectionless Protocol
서버의 부하를 줄일 수 있는 장점은 있으나, 클라이언트 요청 시마다 서버와 매번 새로운 연결이 생성되기 때문에 일반적인 로그인 상태 유지, 장바구니 등의 기능을 구현하기 어려움
이러한 불편함을 해결하기 위해 세션과 쿠키를 이용함
세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로 세션은 서버에서 연결 정보를 관리하는 반면 쿠키는 클라이언트에서 연결 정보를 관리하는데 차이가 있음
❓세션, 쿠키를 사용하는 이유
클라이언트와 서버의 연결 상태를 유지시켜주기 위함
세션 사용 방법
1️⃣ HttpServletRequest
2️⃣ HttpSession
둘의 차이점은 거의 없으며, 단지 세션객체를 얻는 방법에 차이가 있음
💡 HttpServletRequest 파라미터로 HttpServletRequest를 받은 후 getSession()으로 세션 얻음 💡 HttpSession 파라미터로 HttpSession을 받아 세션 사용 |
사용 예시 👇
public String memLogin(Member member, HttpServletRequest request) {...}
public String memLogin(Member member, HttpSession session) {...}
HttpServletRequest
스프링 MVC에서 HttpServletRequest를 이용해서 세션을 이용하려면 컨트롤러의 메소드에서 파라미터로 HttpServletRequest를 받으면 됨
사용 방법
1️⃣ HttpServletRequest로 파라미터 받기
2️⃣ HttpSession session = request.getSession(); // 세션 가져오기
3️⃣ session.setAttribute("member", mem); // 속성 추가 👉 세션 생성이라고 말함
HttpSession
사용 방법
1️⃣ HttpSession 파라미터 받기
2️⃣ session.setAttribute("member", mem); // 속성 추가 👉 세션 생성이라고 말함
세션 삭제
세션의 속성을 삭제
세션을 삭제하는 방법은 세션에 저장된 속성이 더 이상 필요 없을때 이루어지는 과정으로 주로 로그아웃 또는 회원 탈퇴 등에 사용됨
사용 예시 👇
session.invalidate();
cookie
cookie값이 required=true가 default이기 때문에 required=false 명시해줘야지만 exception 발생 안함
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] Maven Project 생성 및 pom.xml의 이해 (0) | 2022.07.19 |
---|---|
[Spring] 리다이렉트(rediredt)와 인터셉터(interceptor) (0) | 2022.03.04 |
org.springframework.beans.factory.BeanCreationException 해결 방법 (0) | 2021.12.31 |
스프링 pom.xml 설정(+ 스프링 구조) (0) | 2021.10.22 |
스프링 프로젝트 생성 (0) | 2021.10.21 |