Apache Tomcat
- 정의 : 자바 기반의 웹 프로그램(애플리케이션)
- 주로 JSP와 서블릿 기반
Servlet
- 정의 : 자바 기반의 동적 웹 페이지를 만들기 위한 클래스
- 역할 : HTTP 요청(request)을 받고 HTTP 응답(response)으로 전달
- 사용처 : HttpServletRequest 클래스, HttpServletResponse 클래스
- 환경 : 톰캣 서버 내 서블릿 컨테이너(메모리) 존재
- Spring Web 환경에서는 @RequestMapping, @ResponseBody 등 사용
톰캣 세션
- 정의 : 톰캣 서버 내 데이터를 저장하고 관리할 수 있게 메모리 제공
- 목적 :
- 상태(데이터) 관리
- 인증/권한
- 효율적인 데이터 관리
- 주 사용처
- 로그인 상태
- (비회원제) 장바구니/세션 vs (회원제) 장바구니/DB
- 자동 로그인, 테마 등 사용자의 설정값
- 실시간 처리, 웹게임 등
- 특징 : 브라우저(크롬/엣지/사파리 등)마다 별도의 세션 객체 할당
- 예: 크롬에서 장바구니 담으면 엣지에서는 보이지 않음
HttpServletRequest : 요청 정보 객체
- 주요 메소드
.getRemoteAddr() : 요청자 IP 주소 반환
.getRemotePort() : 요청자 PORT 반환
.getHeader("User-Agent") : 요청자 프로그램(브라우저) 정보 확인
.getSession() : 톰캣 내 세션(HttpSession) 객체 반환
HttpSession : 세션 정보 객체
- 주요 메소드
.setAttribute("속성명", 속성값) : 세션 내 속성 추가 (속성명 String, 속성값 Object)
.getAttribute("속성명") : 세션 내 속성값 호출 (Object 타입, 필요 시 타입 변환)
.removeAttribute("속성명") : 특정 속성 제거
.invalidate() : 모든 속성 제거
.getId() : 세션 식별번호, 브라우저마다 별도 할당
.getCreationTime() : 세션 생성 시간(ms)
.getLastAccessedTime() : 마지막 접근 시간(ms)
.getMaxInactiveInterval() : 세션 최대 유효 시간(s)
.setMaxInactiveInterval(초) : 세션 최대 유효 시간 설정(s), 1시간: 6060, 24시간: 6060*24
.getAttributeNames() : 세션 내 모든 속성명 반환