홈화면에 유저 아이디를 띄우려고 했는데 왜인지 쿠키값이 홈화면에는 안 들어오는 오류가 생겼다.
로그인 전과 로그인 후를 기준으로 HTML을 나눠보기도 하고, 코드에 잘못된 부분이 있나 세세히 살펴보기도 했는데 고쳐지지 않고 아무리 구글링을 해도 이 오류에 대한 정보가 안 나와서 세션을 사용해보기로 했다.
세션은 쿠키보다 무겁긴 하지만, 보안성이 높아서 나중에 사용해보려 했는데 그 나중이 지금인 것 같다.
[ 세션 생성 ]
세션도 쿠키를 기반으로 하기 때문에 사용 방법이 그다지 다르지 않다. 먼저 HttpServletRequest를 파라미터로 받아준다.
HttpServletRequest.getSession()은 이미 생성된 세션이 있다면 세션을 반환, 없다면 새로운 세션을 생성하여 반환한다. 이 메서드를 이용해 세션을 받고, 키값으로 객체를 저장하는 메서드인 setAttribute를 사용하여 세션값을 저장한다.
HttpSession session = request.getSession();
session.setAttribute("Id", user.getId());
나는 유저Id값을 세션에 저장했다.
[ 세션 읽기 ]
HttpServletRequest를 파라미터로 받아서 getSession() 메서드로 세션을 받아주고, getAttribute("name") 메서드를 이용해 값을 받아준다.
HttpSession session = request.getSession();
Long id = (Long) session.getAttribute("Id");
[ 세션 삭제 ]
getSession()으로 세션을 받은 후, invalidate()로 초기화를 해준다.
후기
세션이 쿠키와 비슷한 면이 많아 배우고 이해하는데 그리 오래 걸리지 않았다. 나중에는 쿠키와 세션을 모두 사용하는 방법이 있다는데 그것도 한 번 사용해보고 싶다.
'개발일지_development diary > YSit' 카테고리의 다른 글
YSit [12] - URL에 변수 넣어서 게시물 수정 기능 구현 (0) | 2022.12.29 |
---|---|
YSit [11] - 게시물 작성 / 목록 기능 구현 (0) | 2022.12.28 |
YSit [9] - 유저 데이터 수정하기, 로그아웃하기 ( 쿠키 사용 ) (0) | 2022.12.27 |
YSit [8] - UserController 개발하기 2 (0) | 2022.12.24 |
YSit [7] - UserController 개발하기 (0) | 2022.12.24 |