◇ LAB · BOARD

세션 깊이 보기

회원과 게시판 — 실습

📍 지금 어디를 만지고 있나요?
브라우저
회원과 게시판
DB

사전 준비

이번 실습의 목표

서버 메모리에 사용자 정보를 저장. 손님에게는 JSESSIONID 쿠키만 발급.

1
코드 작성
@PostMapping("/login")
public String login(@RequestParam String userId,
                     @RequestParam String password,
                     HttpSession session) {
    Member m = service.login(userId, password);
    if (m != null) {
        session.setAttribute("loginUser", m);   // 서버 보관함에 저장
        return "redirect:/";
    }
    return "redirect:/login?error";
}

// 다른 컨트롤러에서 사용
@GetMapping("/mypage")
public String mypage(HttpSession session, Model model) {
    Member m = (Member) session.getAttribute("loginUser");
    if (m == null) return "redirect:/login";
    model.addAttribute("user", m);
    return "mypage";
}

// 로그아웃
session.invalidate();
CHECKPOINT
  • 코드를 작성한 뒤 빨간 줄(컴파일 오류)이 없는가?
2
실행 + 결과 확인

Run on Server 또는 javac+java 로 실행하고 결과를 확인합니다.

CHECKPOINT
  • 예상한 동작이 일어났는가?
  • 안 됐다면 F12 / 콘솔 / 로그 어디서 단서가 보이는가?

실습 완료 체크리스트

HttpSession 객체로 접근
setAttribute / getAttribute
JSESSIONID 쿠키가 매개
invalidate() 로 폐기