in src/main/java/org/apache/sling/servlets/resolver/internal/console/WebConsolePlugin.java [118:182]
protected void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
final String url = request.getParameter(PARAMETER_URL);
String method = request.getParameter(PARAMETER_METHOD);
if (StringUtils.isBlank(method)) {
method = "GET";
}
String requestURI = request.getRequestURI();
try (final ResourceResolver resourceResolver = resourceResolverFactory.getServiceResourceResolver(Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, (Object)SERVICE_USER_CONSOLE))) {
final PrintWriter pw = response.getWriter();
final RequestPathInfo requestPathInfo = getRequestPathInfo(url, resourceResolver);
if (requestURI.endsWith("json")) {
pw.println("{");
if (StringUtils.isNotBlank(url)) {
printJSONDecomposedURLElement(pw, requestPathInfo);
}
if (StringUtils.isNotBlank(requestPathInfo.getResourcePath())) {
printJSONCandidatesElement(pw, resourceResolver, requestPathInfo, method);
}
pw.printf(" \"method\" : \"%s\"%n", StringEscapeUtils.escapeJson(method));
pw.print("}");
response.setContentType("application/json");
} else {
printHTMLInputElements(pw, url);
if (StringUtils.isNotBlank(url)) {
printHTMLDecomposedURLElement(pw, requestPathInfo);
}
if (StringUtils.isNotBlank(requestPathInfo.getResourcePath())) {
Resource resource = resourceResolver.resolve(requestPathInfo.getResourcePath());
final Collection<Resource> servlets = resolveServlets(resourceResolver, requestPathInfo, resource,
method);
tr(pw);
tdLabel(pw, "Candidates");
tdContent(pw);
if (servlets == null || servlets.isEmpty()) {
pw.println("Could not find a suitable servlet for this request!");
} else {
// check for non-existing resources
if (ResourceUtil.isNonExistingResource(resource)) {
pw.println("The resource given by path '");
pw.println(ResponseUtil.escapeXml(resource.getPath()));
pw.println("' does not exist. Therefore no resource type could be determined!<br/>");
}
pw.print("Candidate servlets and scripts in order of preference for method ");
pw.print(ResponseUtil.escapeXml(method));
pw.println(":<br/>");
pw.println("<ol class='servlets'>");
outputHTMLServlets(pw, servlets.iterator());
pw.println("</ol>");
}
closeTd(pw);
closeTr(pw);
}
pw.println("</table>");
pw.print("</form>");
}
} catch (final LoginException e) {
throw new ServletException(e);
}
}