-
클라이언트와 서버에서 연결에 관련되어 서로의 연결 통로 관계를 알아야한다.
우리가 인터넷을 하면서 흔하게 봤던 세션(Session)과 쿠키(Cookie0가 그것이다.
일단 클라이언트와 서버는 웹 서비스 HTTP프로토콜을 기반으로 하는데 이 HTTP 프로토콜은 과부하를 방지하기 위해서 관계를 저장해서 유지하지 않는다.
그래서 따로 필요한 것이 세션과 쿠키이다.
세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로 ,세션은 서버에서 기존 연결 정보를 저장하고 쿠키는 클라이언트 브라우저 입장에서 기존 연결 정보를 저장하는 역할을 한다.
예를 들어서 로그인이나 장바구니 같은 기존 정보를 저장하는 것에서 사용한다.
세션의 경우 어떻게 만들어서 사용할까?
HttpServletRequest는
파라미터로 HttpServletRequest를 받고 getSession()메서드를 사용해야 최종적으로 세션을 얻을 수 있다.
HttpSession는
파라미터로 HttpSession을 받아 세션을 사용한다. 이 경우에는 getSession의 과정을 밟지 않기에 조금 더 간단하게 표현이 가능하다.
public String customerLogin (Member member, HttpServletRequest request) {~}
public String customerLogin (Member member, HttpSession session) {~}
에서 볼 수 있듯이 HttpSession을 사용하면 곧바로 session을 갖고 올 수 있다.
쿠키의 경우에는 사용자의 로컬에 기준으로 한다.
쿠키를 생성할 때는 생성자에 2개의 파라미터를 넣는데 쿠키이름, 쿠키 값을 순서대로 넣는다.
예시문을 만들어보면
@RequestMapping("/main")
public String SiteMain(Site site, HttpServletResponse response){
Cookie CustomerCookie = new Cookie("Customer", Site.getCustomer());
~ 으로 HttpServletResponse에 쿠키를 담아서 구현할 수 있다.
}
이렇게 쿠키를 받아와서 사용할 수도 있어야겠다.
그때는 @CookieValue라는 어노테이션을 사용하여
@RequestMapping("/index")
public String SiteIndex(Mall mall, @CookieValue(value="customer", required=false) Cookie genderCookie, HttpServletRequest request){
~
}
으로 사용할 수 있다 .
이때 @CookieValue의 required의 기본값은 true이기에 false로 바꿔줘야 예외발생을 막을 수 있다.
'JSP&스프링 > 스프링 키포인트' 카테고리의 다른 글
[스프링] JDBC의 정의와 순서 단계 그리고 구현 방법 정리하기 (0) 2023.01.31 [스프링] 리다이렉트 & 인터셉트의 정의와 예시문 만들기 (0) 2023.01.31 [스프링] Controller 객체를 만들고 어노테이션을 사용해서 구현하는 방법 (0) 2023.01.30 [스프링] Service 와 DAO 객체를 만들고 어노테이션으로 사용해보는 예시문 만들기 (0) 2023.01.30 [스프링] Controller와 view를 사용하여 로그인 key- value 값 연동하는 연습문 만들기 (0) 2023.01.29 댓글