Vollständiger Quell-Code für das Servlet "Info"


/****************************************************************************************
 *  Klasse zur Generierung des Informationsfensters für Katalog- bzw. Herstellerinfos   *
 *                                                                                      *
 ****************************************************************************************/

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;


public class Info extends HttpServlet {

    private OraDBConnect dbcon = null;

    private PageGenerator pageGen = null;

    private String page = null;

    // globaler Fehlercode
    private String error = null;

    // globale Fehlervariable
    private boolean noError = true;

    /************************************************************************************
     *  Initialisierungsabschnitt des Servlets                                          *
     *                                                                                  *
     *  - Verbindungsaufbau zur Datenbank                                               *
     *  - Erzeugung des Objekts zur Generierung der dynamischen HTML-Seiten             *
     ************************************************************************************/
    public void init() throws ServletException {
        try {
            dbcon = new OraDBConnect("jdbc:oracle:thin:user/passwd@141.57.9.9:1521:IMNLehre");
            pageGen = new PageGenerator();
        }
        catch (SQLException e) {
            throw new UnavailableException(this, "Initialisierungsfehler: " + e);
        }
    }

    /************************************************************************************
     *  Beendigungsabschnitt des Servlets                                               *
     *                                                                                  *
     *  - Verbindungsabbau zur Datenbank                                                *
     ************************************************************************************/
    public void destroy() {
        try {
            dbcon.OraDBClose();
        }
        catch (SQLException e) {
            // sollte nicht vorkommen
        }
    }

    /************************************************************************************
     *  Verarbeitungsabschnitt des Servlets für Request mittels HTTP-GET-Operation      *
     *                                                                                  *
     ************************************************************************************/
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        String result = "";
        String producer_id = "";
        String catalog_id = "";
        String query = "";
        String sourceFile = "";
        String replaceString = "";
        String[] param1 = null;

        noError = true;
        String infotype = request.getParameter("p_infotype");
        if (infotype != null) {
            // Informationen über den Hersteller
            if (infotype.equals("Hersteller-Info")) {
                // Parameter "p_producer_id" der Produktseite abfragen
                producer_id = request.getParameter("p_producer_id");
                if (producer_id == null) {
                    producer_id = "-1";
                }
                else {
                    if (producer_id.equals("")) producer_id = "-1";
                }
                String[] param1_1 = {"NAME","STRASSE","NUMMER","PLZ","STADT","BUNDESLAND","LAND","TELEFON","FAX","E_MAIL","INTERNETADRESSE"};
                param1 = param1_1;
                query = "SELECT h.name,a.strasse,a.nummer,a.plz,a.stadt,a.bundesland,a.land,a.telefon,a.fax,a.e_mail,a.internetadresse FROM adresse a, hersteller h WHERE a.hid=h.hid AND h.hid=" + producer_id;
                sourceFile = "/export/pub/jakarta-tomcat-4.0.3/webapps/adia/servlets/producer.html";
                replaceString = "@producer_info@";
            }
            // Informationen über den Katalog
            else {
                // Parameter "p_catalog_id" der Produktseite abfragen
                catalog_id = request.getParameter("p_catalog_id");
                if (catalog_id == null) {
                    catalog_id = "-1";
                }
                else {
                    if (catalog_id.equals("")) catalog_id = "-1";
                }
                String[] param1_2 = {"KATALOG_ID","NAME","ANBIETER","VERSION","ERSTELLUNGSDATUM","IMPLEMENTIERUNGSDATUM"};
                param1 = param1_2;
                query = "SELECT * FROM katalog WHERE cid=" + catalog_id;
                sourceFile = "/export/pub/jakarta-tomcat-4.0.3/webapps/adia/servlets/catalog.html";
                replaceString = "@catalog_info@";
            }

            String[] param2 = {"","","",""};
            // Daten ermitteln
            try {
                Vector Info = dbcon.OraDBgetResult(query, param1, 0);
                // Formatierung durchführen
                result = pageGen.formatTable(Info, param1.length, param2);
            }
            catch (SQLException e) {
                noError = false;
                error = e.toString();  // Fehlercode
            }
        }
        else {
            noError = false;
            error = "Informationstyp nicht definiert!";
        }

        // Erzeugung und Ausgabe der HTML-Seite
        try {
            if (noError) {
                page = pageGen.readPage(sourceFile);
                page = pageGen.replaceParam(page,result,replaceString);
            }
            // Fehlerausgabe
            else {
                page = pageGen.readPage("/export/pub/jakarta-tomcat-4.0.3/webapps/adia/servlets/error.html");
                page = pageGen.replaceParam(page,error,"@error@");
            }
        }
        catch (Exception e) {
            page = e.toString();
        }
        out.println(page);
    }

    /************************************************************************************
     *  Verarbeitungsabschnitt des Servlets für Request mittels HTTP-POST-Operation     *
     *                                                                                  *
     ************************************************************************************/
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        doGet(request, response);
    }
}