-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
if (loginMember == null)의 존재 이유
23.02.06 20:36 작성 조회수 82
1
HomeController.java
@GetMapping("/")
public String homeLoginV3(HttpServletRequest request, Model model) {
HttpSession session = request.getSession(false);
//세션 저장소에 해당 세션이 존재하지 않음
if (session == null) {
return "home";
}
//세션 저장소에 해당 세션이 존재함
Member loginMember = (Member) session.getAttribute(SessionConst.LOGIN_MEMBER);
if (loginMember == null) {
return "home";
}
model.addAttribute("member", loginMember);
return "loginHome";
}
위 코드에서 'if (loginMember == null) { ... }' 코드가 존재하는 이유는, loginMember가 null인 경우는 없지만 session.getAttribute()가 스펙상 null을 반환할 수 있기 때문인 것이 맞을까요..?
세션 저장소에 세션이 없는 경우는 있지만, 세션이 있다고 하면 Member 객체가 무조건 존재하는 것이 아닌가요..??
답변을 작성해보세요.
0
김영한
23.02.10 23:16
안녕하세요. 도토리님
세션은 있지만 세션안에 Member 객체가 존재하지 않을 수도 있습니다.
세션에 다른 데이터만 들어있을 수도 있구요.
(세션인 회원을 만드는 것 뿐만 아니라 여러 경우에 사용될 수 있습니다.)
이런 경우도 방어가 필요합니다.
감사합니다.
답변 1