[java] 서블릿과 RESTful 웹 서비스
목차
서블릿
서블릿은 Java를 기반으로 하는 웹 애플리케이션 개발에 사용되는 기술입니다. 서블릿은 웹 서버에서 동작하며, HTTP 요청을 처리하고 응답을 생성하는 역할을 담당합니다. 이를 통해 동적인 웹 페이지를 생성하거나 데이터를 처리할 수 있습니다.
서블릿은 javax.servlet 패키지에 포함되어 있으며, HttpServlet 클래스를 상속받아 구현합니다. 웹 애플리케이션 개발 시에는 web.xml 파일에 서블릿의 매핑 정보를 등록해야 합니다.
RESTful 웹 서비스
REST (Representational State Transfer)는 클라이언트와 서버 사이의 통신을 위한 아키텍처 스타일입니다. RESTful 웹 서비스는 REST 원칙을 따르는 웹 서비스를 의미합니다. RESTful 웹 서비스는 HTTP 프로토콜을 기반으로 구현되어 다양한 플랫폼에서 호환될 수 있습니다.
RESTful 웹 서비스는 자원을 URI로 표현하고, HTTP 메서드(GET, POST, PUT, DELETE)를 이용하여 해당 자원을 조작합니다. 데이터는 일반적으로 XML 또는 JSON 형태로 전달됩니다.
예제 코드
다음은 서블릿과 RESTful 웹 서비스를 구현하는 예제 코드입니다.
@WebServlet("/api/books/*")
public class BookServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 책 목록 조회 로직
List<Book> books = BookService.getAllBooks();
// JSON 형태로 변환하여 응답
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(books);
response.setContentType("application/json");
response.getWriter().write(json);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 책 추가 로직
String title = request.getParameter("title");
String author = request.getParameter("author");
BookService.addBook(title, author);
response.setStatus(HttpServletResponse.SC_CREATED);
}
@Override
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 책 삭제 로직
String bookId = request.getParameter("id");
BookService.deleteBook(bookId);
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
}
}
위 코드는 “/api/books” 경로로 HTTP GET 요청을 받아 책 목록을 조회하는 서블릿입니다. HTTP POST 요청을 받으면 책을 추가하고, HTTP DELETE 요청을 받으면 책을 삭제합니다.