response.setContentType("text/html;charset=utf-8"); String requestURL = request.getRequestURL().toString(); String themeURL; if (requestURL.endsWith("/doc/")) { themeURL = requestURL.substring(0, requestURL.length() - 5); } else if(requestURL.endsWith("/doc/index.jsp")) { themeURL = requestURL.substring(0, requestURL.length() - 14); } else { themeURL = requestURL.substring(0, requestURL.length() - 4); } /*response.getOutputStream().print("themeURL = " + themeURL); response.getOutputStream().print("requestURI = " + request.getRequestURI()); response.getOutputStream().print("requestURL = " + request.getRequestURL());*/ TransformerFactory factory = TransformerFactory.class.getDeclaredConstructor().newInstance(); Transformer transformer = factory.newTransformer(new StreamSource(themeURL + "/start.xsl")); transformer.setParameter("theme-prefix", themeURL); transformer.transform(new StreamSource(themeURL + "/doc/foundry-documentation.xml"), new StreamResult(response.getOutputStream()));