/** * @param req The request. * @return The query string of the request in its raw (not URI-encoded) form. This is suitable for * passing as the 'query' parameter to one of the multi-argument {@link URI} constructors. */ private static String getQueryString(HttpServletRequest req) throws UnsupportedEncodingException { StringBuilder buf = new StringBuilder(); Map<String, String[]> params = req.getParameterMap(); if (params.size() == 0) return null; for (Entry<String, String[]> entry : params.entrySet()) { String name = entry.getKey(); String[] values = entry.getValue(); if (values.length == 0) { buf.append("&").append(name); } else { for (String value : values) { buf.append("&").append(name).append("=").append(value); } } } return buf.substring(1); }