Embedded Tomcat)@Controller는 내부적으로 Servlet 기반으로 동작HttpServletRequest 클래스// 예시
public String example(HttpServletRequest request) {
String ip = request.getRemoteAddr();
int port = request.getRemotePort();
String userAgent = request.getHeader("User-Agent");
HttpSession session = request.getSession();
}
.getRemoteAddr() : 요청 클라이언트의 IP 주소 반환.getRemotePort() : 요청 클라이언트의 포트 번호 반환.getHeader("User-Agent") : 브라우저 정보 반환.getSession() : 세션 객체 반환HttpServletResponse 클래스⚠️ 실무에서는 세션 과부하 및 메모리 관리에 주의 필요
HttpSession 클래스// HttpServletRequest로부터 세션 객체 얻기
HttpSession session = request.getSession();
// 또는 컨트롤러 메서드에서 직접 주입
public String example(HttpSession session) {
...
}
.setAttribute("name", value) : 세션에 데이터 저장 (Object 타입).getAttribute("name") : 세션에서 데이터 조회.removeAttribute("name") : 특정 속성 제거.invalidate() : 세션 무효화 (모든 속성 제거).getId() : 세션 고유 ID 반환.getCreationTime() : 세션 생성 시간 (ms).getLastAccessedTime() : 마지막 접근 시간 (ms).setMaxInactiveInterval(seconds) : 세션 유효 시간 설정 (초).getMaxInactiveInterval() : 세션 유효 시간 확인.getAttributeNames() : 모든 속성 이름 반환 (Enumeration → 반복문 사용 가능)