본문 바로가기
GD's IT Lectures : 기초부터 시리즈/자바(JAVA) 기초부터 ~

[자바(JAVA)] 자바 서블릿

by GDNGY 2023. 4. 30.

28. 자바 서블릿

자바 서블릿은 동적인 웹 페이지를 생성하기 위한 자바 기반의 서버 측 프로그래밍 기술입니다. 이를 이용하여 클라이언트의 요청에 대해 동적인 결과를 생성하고 웹 애플리케이션을 개발할 수 있습니다.

 

28.1. 서블릿 개요

서블릿은 웹 애플리케이션 서버에서 실행되며, 웹 애플리케이션과 웹 서버 사이의 통신을 처리합니다. 서블릿은 자바로 작성되어 있으며, 자바 웹 애플리케이션에서 사용될 수 있습니다. 서블릿은 HTTP 요청을 처리하고, HTML, JSON 등의 동적인 컨텐츠를 생성하여 웹 페이지를 동적으로 생성합니다.

 

28.2. 서블릿 생명주기

서블릿은 서버가 시작될 때, init() 메소드를 호출하여 초기화하고, 서버가 종료될 때, destroy() 메소드를 호출하여 자원을 해제합니다. 클라이언트가 서블릿에 요청을 보내면, 웹 컨테이너는 해당 서블릿의 service() 메소드를 호출합니다. service() 메소드는 클라이언트의 요청 방식(GET, POST )에 따라 doGet() 또는 doPost() 메소드를 호출합니다. 이후, 클라이언트의 요청에 따라 필요한 작업을 수행하고, 응답을 생성하여 클라이언트에 전송합니다.

 

28.3. 서블릿 요청 및 응답 처리

클라이언트의 요청은 HttpServletRequest 객체로 전달됩니다. HttpServletRequest 객체는 요청 메서드, 요청 헤더, 요청 매개변수 등을 포함합니다. 서블릿은 이 정보를 바탕으로 요청에 대한 작업을 수행합니다.

응답은 HttpServletResponse 객체를 사용하여 생성합니다. HttpServletResponse 객체는 HTTP 응답 코드, 응답 헤더, 응답 바디 등을 포함합니다. 서블릿은 이 객체를 사용하여 응답을 생성하고, 클라이언트에게 전송합니다.

 

28.4. 세션 관리

서블릿에서는 클라이언트와의 상태를 유지하기 위해 세션(session) 개념이 사용됩니다. 세션은 클라이언트와 서버 간의 상태 유지를 위한 기술로, 클라이언트가 서버에 요청을 보낼 때 생성되어 요청을 처리하는 동안 유지되며, 해당 클라이언트와의 모든 통신이 끝나면 삭제됩니다.

세션을 이용한 상태 유지는 쿠키와 비슷한 기능을 하지만, 쿠키와 달리 클라이언트 측에 저장되지 않고 서버에 저장됩니다. 그리고 세션은 서버에서 처리하므로 보안상 더 안전합니다.

 

세션을 사용하기 위해서는 javax.servlet.http.HttpSession 인터페이스를 사용해야 합니다. HttpSession 인터페이스는 세션에 대한 정보를 저장하고 관리하는 메서드를 제공합니다.

 

  • 세션 생성하기

서블릿에서는 세션을 생성하기 위해 HttpServletRequest 객체의 getSession() 메소드를 호출합니다. 이 메소드는 요청된 클라이언트에 대한 세션이 있으면 해당 세션을 반환하고, 세션이 없으면 새로운 세션을 생성합니다.

HttpSession session = request.getSession();
  • 세션 속성 추가하기

세션에 속성을 추가하기 위해서는 HttpSession 객체의 setAttribute() 메소드를 사용합니다. 이 메소드는 속성의 이름과 값을 인자로 받습니다.

session.setAttribute("userId", "user123");
  • 세션 속성 가져오기

세션에서 속성을 가져오기 위해서는 HttpSession 객체의 getAttribute() 메소드를 사용합니다. 이 메소드는 속성의 이름을 인자로 받아서 해당 속성의 값을 반환합니다.

String userId = (String) session.getAttribute("userId");
  • 세션 속성 삭제하기

세션에서 속성을 삭제하기 위해서는 HttpSession 객체의 removeAttribute() 메소드를 사용합니다. 이 메소드는 속성의 이름을 인자로 받아서 해당 속성을 삭제합니다.

session.removeAttribute("userId");
  • 세션 만료시키기

세션은 클라이언트와 서버 간의 상태를 유지하기 위한 것이므로, 일정 시간이 지나면 자동으로 만료됩니다. 하지만 만료 시간을 지정하거나, 세션을 강제로 삭제하고 싶은 경우에는 HttpSession 객체의 invalidate() 메소드를 호출합니다.

session.invalidate();
  • 세션 만료 시간 설정하기

세션의 만료 시간을 설정하기 위해서는 HttpSession 객체의 setMaxInactiveInterval() 메소드를 사용합니다. 이 메소드는 세션의 유효 시간을 초 단위로 설정합니다.

session.setMaxInactiveInterval(60); // 60
반응형

댓글