1 16 19 package servlet; 20 import javax.servlet.*; 21 import javax.servlet.http.*; 22 import java.io.*; 23 import java.util.Enumeration ; 24 import java.net.URL ; 25 26 import org.xml.sax.*; 27 import javax.xml.transform.TransformerFactory ; 28 import javax.xml.transform.Transformer ; 29 import javax.xml.transform.Source ; 30 import javax.xml.transform.stream.StreamSource ; 31 import javax.xml.transform.stream.StreamResult ; 32 33 49 50 public class XSLTServletWithParams extends HttpServlet { 51 52 55 public final static String FS = System.getProperty("file.separator"); 56 57 public void init(ServletConfig config) throws ServletException 58 { 59 super.init(config); 60 } 61 62 public void doGet (HttpServletRequest request, 63 HttpServletResponse response) 64 throws ServletException, IOException 65 { 66 response.setContentType("text/html; charset=UTF-8"); 69 PrintWriter out = response.getWriter(); 70 try 71 { 72 TransformerFactory tFactory = TransformerFactory.newInstance(); 73 String xml = getRequestParam(request, "URL"); 75 String xsl = getRequestParam(request, "xslURL"); 76 Source xmlSource = null; 77 Source xslSource = null; 78 Transformer transformer = null; 79 String ctx = getServletContext().getRealPath("") + FS; 81 82 if (xml != null && xml.length()> 0) 84 xmlSource = new StreamSource (new URL ("file", "", ctx + xml).openStream()); 85 if (xsl != null && xsl.length()> 0) 87 xslSource = new StreamSource (new URL ("file", "", ctx + xsl).openStream()); 88 if (xmlSource != null) { 90 if (xslSource == null) { 92 String media= null , title = null, charset = null; 93 xslSource = tFactory.getAssociatedStylesheet(xmlSource,media, title, charset); 94 } 95 if (xslSource != null) { 97 transformer = tFactory.newTransformer(xslSource); 98 setParameters(transformer, request); transformer.transform(xmlSource, new StreamResult (out)); 101 } 102 else 103 out.write("No Stylesheet!"); 104 } 105 else 106 out.write("No XML Input Document!"); 107 } 108 catch (Exception e) 109 { 110 e.printStackTrace(out); 111 } 112 out.close(); 113 } 114 115 String getRequestParam(HttpServletRequest request, String param) 117 { 118 if (request != null) 119 { 120 String paramVal = request.getParameter(param); 121 return paramVal; 122 } 123 return null; 124 } 125 126 void setParameters(Transformer transformer, HttpServletRequest request) 128 { 129 Enumeration paramNames = request.getParameterNames(); 130 while (paramNames.hasMoreElements()) 131 { 132 String paramName = (String ) paramNames.nextElement(); 133 try 134 { 135 String paramVal = request.getParameter(paramName); 136 if (paramVal != null) 137 transformer.setParameter(paramName, paramVal); 138 } 139 catch (Exception e) 140 { 141 } 142 } 143 } 144 } 145 | Popular Tags |