1 16 19 20 import java.io.IOException ; 21 import java.io.PrintWriter ; 22 23 import javax.servlet.ServletException ; 24 import javax.servlet.http.HttpServlet ; 25 import javax.servlet.http.HttpServletRequest ; 26 import javax.servlet.http.HttpServletResponse ; 27 28 import javax.xml.transform.Transformer ; 29 import javax.xml.transform.TransformerFactory ; 30 import javax.xml.transform.TransformerException ; 31 import javax.xml.transform.stream.StreamResult ; 32 import javax.xml.transform.stream.StreamSource ; 33 34 import org.xml.sax.SAXException ; 35 36 49 public final class TransformServlet extends HttpServlet { 50 51 54 public void doGet(HttpServletRequest request, 55 HttpServletResponse response) 56 throws IOException , ServletException { 57 58 response.setContentType("text/html"); 60 PrintWriter out = response.getWriter(); 61 62 String transletName = request.getParameter("class"); 64 String documentURI = request.getParameter("source"); 65 66 try { 67 if ((transletName == null) || (documentURI == null)) { 68 out.println("<h1>XSL transformation error</h1>"); 69 out.println("The parameters <b><tt>class</tt></b> and " + 70 "<b><tt>source</tt></b> must be specified"); 71 } 72 else { 73 TransformerFactory tf = TransformerFactory.newInstance(); 74 try { 75 tf.setAttribute("use-classpath", Boolean.TRUE); 76 } catch (IllegalArgumentException iae) { 77 System.err.println( 78 "Could not set XSLTC-specific TransformerFactory " 79 + "attributes. Transformation failed."); 80 } 81 Transformer t = 82 tf.newTransformer(new StreamSource (transletName)); 83 84 final long start = System.currentTimeMillis(); 86 t.transform(new StreamSource (documentURI), 87 new StreamResult (out)); 88 final long done = System.currentTimeMillis() - start; 89 out.println("<!-- transformed by XSLTC in "+done+"msecs -->"); 90 } 91 } 92 catch (Exception e) { 93 out.println("<h1>Error</h1>"); 94 out.println(e.toString()); 95 } 96 } 97 } 98 | Popular Tags |