본문 바로가기
자바/Jakarta EE

Jakarta Servlet을 알아보자

by slowcloud_ 2025. 5. 12.

다음 내용은 Jakarta EE에서 제공하는 공식 튜토리얼 문서, 그리고 Jakarta Servlet 6.1 문서를 바탕으로 작성되었음을 알립니다.

 

서블릿은 HTTP 응답을 자바 객체로 받고 반환하는 프레임워크이다. 서블릿은 `jakarta.servlet`에 있는 `Servlet` 인터페이스를 반드시 상속하여야 한다. `GenericServlet`은 `Servlet`의 기본 구현체이며, `HttpServlet`이 이를 상속하고 있다.

 

서블릿 컨테이너는 웹 서버 또는 웹 앱 서버의 일부로, 서블릿을 관리하고, 요청과 응답을 가공하여 서블릿으로 넘겨주고 받는 역할을 한다.

 

Jakarta Servlet에는 Filter가 존재하며, ServletRequest 등이 서블릿을 향하기 전 Filter를 먼저 거치게 된다. 필터는 서블릿에 들어가려는 요청과 반환된 응답을 확인하고 수정할 수 있다. 스프링 시큐리티에서 인터셉터 대신 사용하는 필터가 이에 해당한다.

 

Jakarta Servlet에서는 세션을 관리하고 있으며, ServletRequest에서 getSession 메소드를 통해 이를 가져올 수 있다. 서블릿 컨테이너는 `JSESSIONID`라는 쿠키를 통해 사용자를 구별하며, 이를 바탕으로 세션을 가져올 수 있다. 스프링 세션에서는 분산 환경에서도 세션을 공유하기 위해 인메모리 대신 Redis와 같은 외부 저장소에 저장할 수 있는 기능을 제공하고 있다.

 

참고

Jakarta EE 공식 튜토리얼 - https://jakarta.ee/learn/docs/jakartaee-tutorial/current/index.html

Jakarat Servlet 6.1 문서 - https://jakarta.ee/specifications/servlet/6.1/jakarta-servlet-spec-6.1