[java] 자바 웹 서버(Java web server)
개요
자바 웹 서버는 자바 프로그래밍 언어로 작성된 웹 애플리케이션을 호스팅하기 위한 소프트웨어입니다. 웹 서버는 클라이언트의 요청을 처리하고, 정적 및 동적 웹 콘텐츠를 제공하는 역할을 합니다. 자바 웹 서버는 다양한 HTTP 요청을 처리하기 위해 HTTP 프로토콜을 구현합니다.
특징
- 자바 언어로 작성되어 있어 다양한 플랫폼에서 실행 가능합니다.
- 다른 웹 애플리케이션 서버와 함께 동작하거나 독립적으로 실행될 수 있습니다.
- 다양한 자바 기반 웹 애플리케이션과의 통합이 용이합니다.
주요 컴포넌트
- 웹 컨테이너 (Web Container): 동적인 웹 콘텐츠 생성을 담당하며, 서블릿(Servlet)과 JavaServer Pages(JSP)를 실행합니다.
- HTTP 서버 (HTTP Server): HTTP 프로토콜을 구현하고, 클라이언트의 요청을 처리합니다.
- 세션 관리자 (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!” 메시지를 반환합니다.