/*
 * Copyright 2007 Sun Microsystems, Inc.
 * All rights reserved.  You may not modify, use,
 * reproduce, or distribute this software except in
 * compliance with  the terms of the License at:
 * http://developer.sun.com/berkeley_license.html
 */


package servlets;

import com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;


/**
 * This is a simple example of an HTTP Servlet.  It responds to the GET
 * method of the HTTP protocol.
 */
public class ResponseServlet extends HttpServlet {
    private CatalogResolver resolver = new CatalogResolver();
    
    public void doGet(
        HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();

        // then write the data of the response
        String username = request.getParameter("username");

        //Resolver resolver = new Resolver();
        SAXParserFactory spf = SAXParserFactory.newInstance();
        spf.setValidating(true);
        try {
            SAXParser parser = spf.newSAXParser();
            parser.parse(username, new MyHandler());
        } catch (ParserConfigurationException pce) {
            out.println("Parser configuration failed");
        } catch (SAXException se) {
            out.println ("Parser failed: " + se.toString());
        } catch (IOException ioe) {
            out.println("I/O error");
        }

        out.println("Valid: " + username);
    }

    public String getServletInfo() {
        return "The Response servlet says hello.";
    }
    
    private class MyHandler extends DefaultHandler {
        public InputSource resolveEntity(String publicId, String systemId) throws IOException, SAXException {
            return resolver.resolveEntity(publicId, systemId);
        }
    }
}
