• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

if (loginMember == null)의 존재 이유

23.02.06 20:36 작성 조회수 454

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 객체가 무조건 존재하는 것이 아닌가요..??

답변 1

답변을 작성해보세요.

2

안녕하세요. 도토리님

세션은 있지만 세션안에 Member 객체가 존재하지 않을 수도 있습니다.

세션에 다른 데이터만 들어있을 수도 있구요.

(세션인 회원을 만드는 것 뿐만 아니라 여러 경우에 사용될 수 있습니다.)

이런 경우도 방어가 필요합니다.

감사합니다.