<%-- Spielzeugauktion Version 0.9 --%> <%@ page import="java.util.*, java.sql.*, auktion.*" %> <%@ page session="true" %> <%! /* Controller: Dispatch-Tabelle Identifizierung: Verweis auf Zielkenndaten, z.B. Home -> (target -> Login.jsp, privileg -> 0 ...) Die erkannte Tabelle wird im session-Objekt gespeichert. */ static Hashtable ctrls = new Hashtable(); static { Hashtable par; // temporär // Homepage mit Login ctrls.put("Home", par = new Hashtable()); par.put("target", "Login.jsp"); par.put("privileg", "0"); par.put("title", "Spielzeugauktion - Home"); // Homepage mit Login ctrls.put("Login", par = new Hashtable()); par.put("target", "Login.jsp"); par.put("privileg", "0"); par.put("title", "Spielzeugauktion - Login"); // Seite mit Logoff ctrls.put("Logoff", par = new Hashtable()); par.put("target", "Login.jsp"); par.put("privileg", "2"); par.put("title", "Spielzeugauktion - Logoff"); // Auktionskatalog anzeigen ctrls.put("AuktionskatalogAnzeigen", par = new Hashtable()); par.put("target", "Auktionskatalog.jsp"); par.put("privileg", "0"); par.put("title", "Spielzeugauktion - Auktionskatalog anzeigen"); // Bieterkatalog anzeigen ctrls.put("BieterkatalogAnzeigen", par = new Hashtable()); par.put("target", "Bieterkatalog.jsp"); par.put("privileg", "2"); par.put("title", "Spielzeugauktion - Bieterkatalog bearbeiten"); // in Bieterkatalog aufnehmen ctrls.put("BieterkatalogAufnehmen", par = new Hashtable()); par.put("target", "Bieterkatalog.jsp"); par.put("privileg", "2"); par.put("title", "Spielzeugauktion - Bieterkatalog bearbeiten"); // im Bieterkatalog löschen ctrls.put("BieterkatalogLoeschen", par = new Hashtable()); par.put("target", "Bieterkatalog.jsp"); par.put("privileg", "2"); par.put("title", "Spielzeugauktion - Bieterkatalog bearbeiten"); // im Bieterkatalog bieten ctrls.put("BieterkatalogBieten", par = new Hashtable()); par.put("target", "Bieterkatalog.jsp"); par.put("privileg", "2"); par.put("title", "Spielzeugauktion - Bieterkatalog bearbeiten"); // Artikel anzeigen ctrls.put("ArtikelAnzeigen", par = new Hashtable()); par.put("target", "Artikel.jsp"); par.put("privileg", "6"); par.put("title", "Spielzeugauktion - Artikel anzeigen"); // Artikel bearbeiten ctrls.put("ArtikelAendern", par = new Hashtable()); par.put("target", "Artikelbearbeiten.jsp"); par.put("privileg", "4"); par.put("title", "Spielzeugauktion - Artikel ändern"); ctrls.put("ArtikelLoeschen", par = new Hashtable()); par.put("target", "Artikelbearbeiten.jsp"); par.put("privileg", "4"); par.put("title", "Spielzeugauktion - Artikel löschen"); ctrls.put("ArtikelNeu", par = new Hashtable()); par.put("target", "Artikelbearbeiten.jsp"); par.put("privileg", "4"); par.put("title", "Spielzeugauktion - Artikel einfügen"); } String[] loeschattliste = {"target", "privileg", "title", "quelle", "ziel"}; %><% //===== Allgemeines ==================== String quelle = (String) request.getParameter("quelle"); quelle = quelle == null ? "Home" : quelle; String ziel = (String) request.getParameter("ziel"); ziel = ziel == null ? "Login" : ziel; session.setAttribute("ziel", ziel); String uid = request.getParameter("uid"); String passwd = request.getParameter("passwd"); String target; for (int i = 0; i < loeschattliste.length; i++) // Ausgewählte Session-Attribute session.removeAttribute(loeschattliste[i]); // löschen target = (String)((Hashtable) ctrls.get(ziel)).get("target"); Enumeration keys = ((Hashtable) ctrls.get(ziel)).keys(); // session-Attribute setzen while (keys.hasMoreElements()) { String tmp = (String) keys.nextElement(); session.setAttribute(tmp, ((Hashtable) ctrls.get(ziel)).get(tmp)); } //===== Einloggen ==================== if ("BieterkatalogAnzeigen".equals(ziel) && "Login".equals(quelle)) { session.setAttribute("bieter", new Bieter(uid, passwd)); } //===== Ausloggen ==================== if ("Logoff".equals(ziel)) { session.removeAttribute("bieter"); target = (String)((Hashtable) ctrls.get(quelle)).get("target"); } //===== Zum Bieterkatalog (*muss* nach "Einloggen" stehen!) ==================== if ("BieterkatalogAnzeigen".equals(ziel)) { Bieter bieter = ((Bieter) session.getAttribute("bieter")); if (bieter == null || !bieter.status || bieter.privileg < 2) { session.setAttribute("ziel", "Login"); target = (String)((Hashtable) ctrls.get("Login")).get("target"); session.setAttribute("title", (String)((Hashtable) ctrls.get("Login")).get("title")); } else { Bieterkatalog bieterkatalog = new Bieterkatalog(); session.setAttribute("bieterkatalog", bieterkatalog.getBieterkatalog(bieter.bnr)); } } //===== Im Bieterkatalog aufnehmen ==================== if ("BieterkatalogAufnehmen".equals(ziel)) { Bieter bieter = (Bieter) session.getAttribute("bieter"); Bieterkatalog bieterkatalog = new Bieterkatalog(); bieterkatalog.setItem(bieter, request.getParameter("snr")); session.setAttribute("bieterkatalog", bieterkatalog.getBieterkatalog(bieter.bnr)); } //===== Im Bieterkatalog löschen ==================== if ("BieterkatalogLoeschen".equals(ziel)) { Bieter bieter = (Bieter) session.getAttribute("bieter"); Bieterkatalog bieterkatalog = new Bieterkatalog(); bieterkatalog.delItem(bieter, request.getParameter("snr")); session.setAttribute("bieterkatalog", bieterkatalog.getBieterkatalog(bieter.bnr)); } //===== Im Bieterkatalog bieten ==================== if ("BieterkatalogBieten".equals(ziel)) { Bieter bieter = (Bieter) session.getAttribute("bieter"); Gebot gebot = (Gebot) new Gebot(); gebot.putGebot(bieter.bnr, Integer.parseInt(request.getParameter("snr"))); Bieterkatalog bieterkatalog = new Bieterkatalog(); session.setAttribute("bieterkatalog", bieterkatalog.getBieterkatalog(bieter.bnr)); } //===== Auktionskatalog anzeigen ==================== if ("AuktionskatalogAnzeigen".equals(ziel)) { Auktionskatalog auktionskatalog = new Auktionskatalog(); String[] kategorien = auktionskatalog.getKategorien(); session.setAttribute("kategorien", kategorien); String kategorie = request.getParameter("kategorie") == null ? kategorien[0] : request.getParameter("kategorie"); session.setAttribute("auktionskatalog", auktionskatalog.getAuktionskatalog(kategorie)); } //===== Artikel anzeigen ==================== if ("ArtikelAnzeigen".equals(ziel)) { Auktionskatalog auktionskatalog = new Auktionskatalog(); session.setAttribute("artikel", auktionskatalog.getArtikel(request.getParameter("snr"))); } //===== Artikel ändern ==================== if ("ArtikelAendern".equals(ziel)) { Artikel item = new Artikel(request.getParameter("snr")); session.setAttribute("item", item); } //===== Artikel einfügen ==================== if ("ArtikelNeu".equals(ziel)) { Artikel item = (Artikel) session.getAttribute("item"); item.newArtikel(item.kategorie); session.setAttribute("ziel", "AuktionskatalogAnzeigen"); target = (String)((Hashtable) ctrls.get("AuktionskatalogAnzeigen")).get("target"); session.setAttribute("title", (String)((Hashtable) ctrls.get("AuktionskatalogAnzeigen")).get("title")); Auktionskatalog auktionskatalog = new Auktionskatalog(); session.setAttribute("auktionskatalog", auktionskatalog.getAuktionskatalog(item.kategorie)); } //===== Artikel löschen ==================== if ("ArtikelLoeschen".equals(ziel)) { Artikel item = (Artikel) session.getAttribute("item"); item.delArtikel(item.snr); target = (String)((Hashtable) ctrls.get("AuktionskatalogAnzeigen")).get("target"); session.setAttribute("title", (String)((Hashtable) ctrls.get("AuktionskatalogAnzeigen")).get("title")); Auktionskatalog auktionskatalog = new Auktionskatalog(); session.setAttribute("auktionskatalog", auktionskatalog.getAuktionskatalog(item.kategorie)); } //===== Forward! ==================== request.getRequestDispatcher(target).forward(request, response); %>