과정
1. HttpServer를 통해 HTTP 서버 생성
- HttpServer.create(InetSocketAddress address, int backlog) 메서드를 사용해 HttpServer 객체(서버) 생성
- InetSocketAddress(ip, port) = 지정한 IP 주소와 포트 번호를 서버의 주소 및 포트로 설정하여 소켓 생성
2. createContext()를 통해 특정 경로로 들어오는 요청에 대한 Handler 정의
- 해당 Handler는 HttpHandler 인터페이스를 구현
- HttpHandler 인터페이스의 handle(HttpExchange exchange)에서 client 요청을 처리
- HttpExchange = 서버와 클라이언트 간의 HTTP 요청과 응답을 처리하는 데 사용되는 클래스
- exchange.sendResponseHeaders(200, int length)를 통해 상태 코드 200과 함께 응답 데이터의 길이 설정
- exchange.getResponseBody()로 출력 스트림을 얻어 응답 데이터를 client로 전송하도록 설정
3. 생성한 HttpServer 객체에 start()를 통해 서버 실행
예시
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.io.*;
import java.io.OutputStream;
import java.net.InetSocketAddress;
public class javaServer {
public static void main(String[] args) throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress("localhost",8080));
server.createContext("/test", new requestHandler());
server.start();
System.out.println("Server Running.");
}
static class requestHandler implements HttpHandler {
@Override
public void handle(HttpExchange exchange) throws IOException {
String response = "Hello, World!";
exchange.sendResponseHeaders(200, response.getBytes(StandardCharsets.UTF_8).length);
OutputStream outputStream = exchange.getResponseBody();
outputStream.write(response.getBytes(StandardCharsets.UTF_8));
outputStream.close();
}
}
}
'Java' 카테고리의 다른 글
Jsoup (0) | 2024.10.23 |
---|---|
java.nio.file.Files (0) | 2024.03.12 |
java.io.FileWriter & FileReader (0) | 2024.01.29 |
com.google.gson.Gson (1) | 2024.01.15 |
java.util.Iterator (0) | 2023.12.21 |
댓글