웹 서비스를 위한 자바 클래스 (자바를 이용하여 웹을 만들기 위해 필요한 기술)
서블릿(Servlet)은 웹에서 동적인 데이터를 처리하기 위해 사용하는 자바 프로그램이다.
쉽게 말해, 클라이언트(브라우저)에서 보낸 요청을 받아서 처리하고, 결과를 다시 클라이언트에게 응답하는 역할을 한다.
웹사이트에서 단순한 HTML만 제공하면 정적인 페이지밖에 만들 수 없음.
하지만 로그인, 게시판, 데이터 처리 같은 기능을 만들려면 서버에서 프로그램이 동작해야한다.
이 때, 자바 기반의 서버 프로그램인 서블릿을 사용하면 동적인 웹 페이지를 만들 수 있다.
→ 클라이언트 요청에 대한 서버 응답 시 미리 만들어둔 화면(정적)이 아닌 요청을 받을 때 마다
알맞은 화면을 만들어(동적) 응답함.
- 사용자가 브라우저에서 요청(예: 로그인 버튼 클릭)을 보냄.
- 웹 서버(Apache, Nginx 등)가 이 요청을 받아 WAS(Tomcat 등)에 전달함.
- WAS가 서블릿을 실행하여 요청을 처리함.
- 서블릿이 필요한 데이터를 DB에서 가져오거나 계산한 후, HTML 응답을 생성함.
- 웹 서버가 브라우저에게 최종 결과를 전달함.


- 사용자가 HTTP 요청을 전송
- 웹 서버(Apache, Nginx 등)가 요청을 받아 Servlet Container(WAS)로 전달
- Servlet Container는 두 개의 객체를 생성함.
HttpServletRequest : 요청 URL, 파라미터, 헤더 등의 정보를 포함한 요청 객체
HttpServletResponse : 응답 내용, 상태 코드, 헤더 등의 정보를 설정하는 응답 객체- 배포 서술자(DD, Deployment Descriptor) 또는 @WebServlet 어노테이션을 이용하여
요청을 처리할 서블릿을 결정 과거에는 web.xml 파일을 사용했으나,
현재는 @WebServlet 을 이용하여 URL과 서블릿을 매핑하는 것이 일반적임.- 서블릿의 생명주기 메서드 실행
init() : 서블릿이 처음 생성될 때 한 번만 호출되며, 초기화 작업을 수행
service() : 요청이 들어올 때마다 실행되며, 요청 방식(GET, POST 등)에 따라 doGet() , doPost() 등을 호출- doGet() 또는 doPost() 메서드에서 동적인 웹 페이지를 생성하고 HttpServletResponse
객체를 통해 응답을 보냄- 응답이 완료되면 HttpServletRequest , HttpServletResponse 객체가 소멸됨.
GET / POST : 클라이언트가 서버로 요청을 보내는 방법
- URL에 변수(데이터)를 포함시켜 요청.
- 보안 유지를 안 하기 때문에 로그인 같은 경우는 get방식으로 하면 부적합
- 데이터를 서버로 제출하여 추가 또는 수정하기 위해 데이터를 전송하는 방식.
- URL에 변수(데이터)를 노출하지 않고 요청 데이터를 HTTP Body에 포함하여 전송
