질문&답변
session을 model에 등록하지 않아도 되는 이유
하지 않아도 된다는 것보단 서로 model.addAttribute와 session.setAttribute의 차이점이 존재합니다. model.addAttribute는 요청당이고 session.setAttribute는 세션당이라는 점입니다. Model 어느 한 요청으로 model에 값을 할당하고 응답으로 view를 보내면 그 view에만 해당 model값을 렌더링 할 수 있습니다. 그 후 요청을 처리한 후 모델이 삭제되고 다음 요청의 대한 새로운 모델이 생성됩니다. Session 로그인 같은 경우를 예시로 들 수 있는데 로그인이 된 아이디 같은 경우는 후속 요청이 들어와서 웹페이지상에 그대로 로그인정보가 있어야 되기 때문에 session을 사용하는 겁니다. 만약 로그인을 하는 페이지에서 클라이언트가 로그인 요청을 했을 때 관련정보를 model에 담았을 경우 일회성으로 어느 한 view에서만 그 정보들이 보여지겠죠. 혹시나 하는 생각에 간략한 코드로 보여드리겠습니다. @GetMapping("/test") public String login() { return "/test"; } @PostMapping("/login") public String postLogin(HttpSession session, @RequestParam String id, Model model) { //Session에 담긴 값 session.setAttribute("id", id); //Model에 담긴 값 model.addAttribute("id", id); return "/login"; } @GetMapping("/login2") public String postLogin() { return "/login2"; } test.html ID PWD 로그인 login.html Session에 담긴 값 확인 [[${session.id}]]님 안녕하세요 Model에 담긴 값 확인 [[${id}]]님 안녕하세요 login2.html Session에 담긴 값 재확인 [[${session.id}]]님 안녕하세요 Model에 담긴 값 재확인 [[${id}]]님 안녕하세요
- 좋아요수
- 1
- 댓글수
- 1
- 조회수
- 2086





