// Programm 7-4a: BSP_ROOT/meinewebapp/WEB-INF/classes/muster/ControllerCsv.java
package muster;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Controller extends HttpServlet {
// Steuer- und Parameterliste
  static final String csvdatei = "c:/temp/controller.csv";
  static String codes[][];
  static {
    String zeile; int anzahl = 0;
    try {
      org.apache.regexp.RE trenner = new org.apache.regexp.RE(";");
      BufferedReader in = new BufferedReader(new FileReader(csvdatei));
      while ((zeile = in.readLine()) != null) { anzahl++; }
      codes = new String[anzahl][];
      in = new BufferedReader(new FileReader(csvdatei));
      for (int i = 0; (zeile = in.readLine()) != null; i++) {
        codes[i] = trenner.split(zeile);
      }
      in.close();
    }
    catch(Exception ex) {}
  }
  public void doPost(HttpServletRequest rq, HttpServletResponse rs)
                                     throws ServletException, IOException {
    doGet(rq, rs);
  }
  public void doGet(HttpServletRequest rq, HttpServletResponse rs)
                                        throws ServletException, IOException {
    String fcode = rq.getParameter("fcode");
    fcode = fcode == null ? codes[0][0] : fcode;
    String target = null;
    boolean gefunden = false;
    for (int i = 0; i < codes.length; i++) {
      if (fcode.equals(codes[i][0])) {
        rq.setAttribute(fcode, codes[i]);
        target = codes[i][1];
        gefunden = true; break;
      }
    }
    PrintWriter out = rs.getWriter();
    if (gefunden) {
      rq.getRequestDispatcher(target).forward(rq, rs);
      out.print(rs);
    }
    else
      out.print("<H1>Kein Ziel für diese Anforderung!</H1>");
  }
}