XsltDomServlet.java Source code

Java tutorial

Introduction

Here is the source code for XsltDomServlet.java

Source

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import javax.xml.parsers.*;

public class XsltDomServlet extends HttpServlet {

    private DOMImplementation dom;
    private Transformer transformer;

    public void init() throws ServletException {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        try {
            DocumentBuilder db = dbf.newDocumentBuilder();
            dom = db.getDOMImplementation();
        } catch (ParserConfigurationException pce) {
            throw new ServletException(pce);
        }

        // prepare the XSLT transformer
        TransformerFactory tf = TransformerFactory.newInstance();
        StreamSource ss = new StreamSource("/var/www/stylesheets/paramTable.xslt");
        try {
            transformer = tf.newTransformer(ss);
        } catch (TransformerConfigurationException tce) {
            throw new ServletException(tce);
        }
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        Document doc = dom.createDocument("", "parameters", null);
        Element parameters = doc.getDocumentElement();

        parameters.setAttribute("title", "XSLT DOM Servlet");
        Enumeration parameterNames = request.getParameterNames();
        while (parameterNames.hasMoreElements()) {
            String parameterName = parameterNames.nextElement().toString();
            Element parameter = doc.createElement("parameter");
            parameters.appendChild(parameter);
            parameter.setAttribute("name", parameterName);
            parameter.appendChild(doc.createTextNode(request.getParameter(parameterName)));
        }

        DOMSource domSource = new DOMSource(doc);
        StreamResult streamResult = new StreamResult(response.getWriter());

        try {
            transformer.transform(domSource, streamResult);
        } catch (TransformerException te) {
            throw new ServletException(te);
        }
    }
}