1. 개요
Undertow는 JBoss/WildFly에 내장된 경량 고성능 웹 서버다. 여기서는 HTTP 요청의 쿼리 파라미터(?myParam=...)를 받아 응답으로 돌려주는 최소 예제를 살펴본다.
2. 예제 코드
Undertow server = Undertow.builder()
.addHttpListener(8080, "localhost")
.setHandler(new HttpHandler() {
public void handleRequest(final HttpServerExchange exchange) throws Exception {
// 쿼리 파라미터 myParam 추출 (없으면 null 이므로 방어 처리)
Deque<String> values = exchange.getQueryParameters().get("myParam");
String myParam = (values != null) ? values.getFirst() : "(none)";
exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/html");
exchange.getResponseSender().send(myParam); // 기존 코드의 send(s) 오류 수정
}
})
.build();
server.start();
3. 테스트
$ curl "http://localhost:8080/?myParam=hello" hello
getQueryParameters()는 Map<String, Deque<String>>를 반환하므로, 같은 파라미터가 여러 번 오면 Deque에 순서대로 쌓인다. 첫 값만 필요하면 getFirst()를 쓴다.