JAVA Spring 톰캣 , 세션

윤슬·2025년 9월 22일

Apache Tomcat

  1. 정의 : 자바 기반의 웹 프로그램(애플리케이션)
  2. 주로 JSP와 서블릿 기반
    • Spring Boot 환경에 내장된 웹서버

Servlet

  1. 정의 : 자바 기반의 동적 웹 페이지를 만들기 위한 클래스
  2. 역할 : HTTP 요청(request)을 받고 HTTP 응답(response)으로 전달
  3. 사용처 : HttpServletRequest 클래스, HttpServletResponse 클래스
  4. 환경 : 톰캣 서버 내 서블릿 컨테이너(메모리) 존재
    • Spring Web 환경에서는 @RequestMapping, @ResponseBody 등 사용

톰캣 세션

  • 세션이라는 용어는 여러 곳에서 사용됨
  1. 정의 : 톰캣 서버 내 데이터를 저장하고 관리할 수 있게 메모리 제공
  2. 목적 :
    1. 상태(데이터) 관리
    2. 인증/권한
    3. 효율적인 데이터 관리
  3. 주 사용처
    1. 로그인 상태
    2. (비회원제) 장바구니/세션 vs (회원제) 장바구니/DB
    3. 자동 로그인, 테마 등 사용자의 설정값
    4. 실시간 처리, 웹게임 등
    • 실무에서는 세션 과부하 고려 필요
  4. 특징 : 브라우저(크롬/엣지/사파리 등)마다 별도의 세션 객체 할당
    • 예: 크롬에서 장바구니 담으면 엣지에서는 보이지 않음

HttpServletRequest : 요청 정보 객체

  1. 주요 메소드
    1. .getRemoteAddr() : 요청자 IP 주소 반환
    2. .getRemotePort() : 요청자 PORT 반환
    3. .getHeader("User-Agent") : 요청자 프로그램(브라우저) 정보 확인
    4. .getSession() : 톰캣 내 세션(HttpSession) 객체 반환

HttpSession : 세션 정보 객체

  1. 주요 메소드
    1. .setAttribute("속성명", 속성값) : 세션 내 속성 추가 (속성명 String, 속성값 Object)
    2. .getAttribute("속성명") : 세션 내 속성값 호출 (Object 타입, 필요 시 타입 변환)
    3. .removeAttribute("속성명") : 특정 속성 제거
    4. .invalidate() : 모든 속성 제거
    5. .getId() : 세션 식별번호, 브라우저마다 별도 할당
    6. .getCreationTime() : 세션 생성 시간(ms)
    7. .getLastAccessedTime() : 마지막 접근 시간(ms)
    8. .getMaxInactiveInterval() : 세션 최대 유효 시간(s)
    9. .setMaxInactiveInterval(초) : 세션 최대 유효 시간 설정(s), 1시간: 6060, 24시간: 6060*24
    10. .getAttributeNames() : 세션 내 모든 속성명 반환
profile
우상향그래프

0개의 댓글