서블릿은 Java EE로 이루어진 웹 서버의 확장 모듈로 클라이언트(웹 브라우저)로 부터

HTTP 요청을 받아 응답을 생성하여 반환한다.

동적인 웹 페이를 생성하거나 데이터베이스와 상호작용하는 데 사용된다.

 

서블릿의 주요 기능

  • 요청 처리: 클라이언트의 HTTP 요청을 처리하고, 요청에 대한 응답을 생성한다.
  • 세션 관리: 사용자 세션을 관리하여 상태를 유지한다.
  • 비즈니스 로직: 서버 측에서 비즈니스 로직을 구현하여 클라이언트의 요청에 대해 처리한다.
  • 데이터베이스 상호작용: 데이터베이스와 상호작용하여 데이터를 조회하거나 업데이트한다.
  • 응답 생성: HTML, XML, JSON 등 다양한 형식의 콘텐츠를 생성하여 클라이언트에 응답한다.

서블릿의 생명 주기

init()

서블릿이 최초로 생성될 때 호출된다. 초기화 작업을 수행하며, 서블릿이 요청을 처리하기 전에 한 번만 호출된다.

@Override
public void init() throws ServletException {
    // 초기화 코드
}

 

service(HttpServletRequest req, HttpServletResponse res)

클라이언트의 요청이 있을 때마다 호출된다. 요청을 처리하고 응답을 생성하는 메소드이다.

 

@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    // 요청 처리 코드
}

 

destroy()

서블릿이 종료될 때 호출된다. 서블릿이 더 이상 사용되지 않거나 서버가 종료될 때 호출된다.

@Override
public void destroy() {
    // 정리 코드
}

 

서블릿의 구성 및 설정

web.xml 파일은 웹 애플리케이션의 배포 디스크립터로, 서블릿의 매핑과 초기화 매개변수를 정의한다.

<web-app>
    <servlet>
        <servlet-name>exampleServlet</servlet-name>
        <servlet-class>com.example.ExampleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>exampleServlet</servlet-name>
        <url-pattern>/example</url-pattern>
    </servlet-mapping>
</web-app>

 

 

서블릿에서 클라이언트 요청과 응답을 처리하는 방법

 

HttpServletRequest

클라이언트의 요청 정보를 담고 있는 객체로, 요청 파라미터, 세션, 요청 헤더 등을 읽어온다.

String param = req.getParameter("paramName");

 

HttpServletResponse

서버가 클라이언트에게 응답을 보내는 객체로, 응답의 콘텐츠 타입, 응답 데이터 등을 설정할 수 있다.

res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<h1>Hello, World!</h1>");

서블릿에서 세션을 관리하는 방법

세션 생성: HttpServletRequest 객체를 통해 세션을 생성

HttpSession session = req.getSession();

 

세션에 데이터 저장: 세션 객체에 데이터를 저장

session.setAttribute("key", "value");

 

세션에서 데이터 조회: 저장된 데이터를 세션에서 조회합니다

 

String value = (String) session.getAttribute("key");

 

세션 삭제: 세션을 무효화하여 삭제

session.invalidate();

 

+ Recent posts