강의

멘토링

로드맵

Inflearn Community Q&A

hyunji00332681's profile image
hyunji00332681

asked

Spring MVC Part 2 - Backend Web Development Application Techniques

Handling Login - Servlet HTTP Session 1

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

Written on

·

662

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

mvcMVCspring

Answer 1

3

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 도토리님

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

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

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

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

감사합니다.

hyunji00332681's profile image
hyunji00332681

asked

Ask a question