Web Application Server

Undertow Query Parameter 처리

sstdio.h·2018년 3월 28일·조회 2,357

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()를 쓴다.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.