[java] 자바 웹 서버(Java web server)

개요

자바 웹 서버는 자바 프로그래밍 언어로 작성된 웹 애플리케이션을 호스팅하기 위한 소프트웨어입니다. 웹 서버는 클라이언트의 요청을 처리하고, 정적 및 동적 웹 콘텐츠를 제공하는 역할을 합니다. 자바 웹 서버는 다양한 HTTP 요청을 처리하기 위해 HTTP 프로토콜을 구현합니다.

특징

주요 컴포넌트

  1. 웹 컨테이너 (Web Container): 동적인 웹 콘텐츠 생성을 담당하며, 서블릿(Servlet)과 JavaServer Pages(JSP)를 실행합니다.
  2. HTTP 서버 (HTTP Server): HTTP 프로토콜을 구현하고, 클라이언트의 요청을 처리합니다.
  3. 세션 관리자 (Session Manager): 클라이언트와 서버 간의 상태를 유지하기 위해 세션 관리를 담당합니다.

예제

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;

public class MyServer {
  public static void main(String[] args) throws IOException {
    HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
    server.createContext("/", new MyHandler());
    server.setExecutor(null);
    server.start();
  }

  static class MyHandler implements HttpHandler {
    @Override
    public void handle(HttpExchange exchange) throws IOException {
      String response = "Hello, Java Web Server!";
      exchange.sendResponseHeaders(200, response.length());
      OutputStream os = exchange.getResponseBody();
      os.write(response.getBytes());
      os.close();
    }
  }
}

위의 예제는 자바 웹 서버를 만들기 위해 com.sun.net.httpserver 패키지를 사용한 간단한 코드입니다. 서버는 8080 포트에서 실행되며, 루트 경로로 접근 시 “Hello, Java Web Server!” 메시지를 반환합니다.

참고 자료