QueryStringParser.java
package sprout.mvc.http.parser;
import sprout.beans.annotation.Component;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@Component
public class QueryStringParser {
public Map<String,String> parse(String rawPath) {
Map<String,String> out = new HashMap<>();
String[] parts = rawPath.split("\\?",2);
if (parts.length == 2) {
for (String token : parts[1].split("&")) {
String[] kv = token.split("=",2);
if (kv.length == 2) {
out.put(
URLDecoder.decode(kv[0], StandardCharsets.UTF_8),
URLDecoder.decode(kv[1], StandardCharsets.UTF_8)
);
} else if (kv.length == 1 && !kv[0].isEmpty()) { // 값이 없는 파라미터 처리 (예: ?param&)
out.put(URLDecoder.decode(kv[0], StandardCharsets.UTF_8), "");
}
}
}
return out;
}
}