/*
 * DocumentServlet.java - a sample servlet for returning a member document.
 * John Neffenger <john@volano.com>
 */

package COM.volano;
import  java.io.*;
import  java.net.*;
import  java.util.*;
import  javax.servlet.*;
import  javax.servlet.http.*;

/**
 * This servlet returns the document defined for a member.
 *
 * @version 30 April 1999
 * @author  John Neffenger
 */

public class DocumentServlet extends AccessServlet {

  /**
   * Called when an HTTP GET request is received for this servlet.
   *
   * @param req encapsulates the request to the servlet.
   * @param res encapsulates the response from the servlet.
   * @exception javax.servlet.ServletException if a servlet error occurs.
   * @exception java.io.IOException if an I/O error occurs.
   */

  public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    String name = req.getParameter("for");
    if (name == null || name.length() == 0)
      res.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing \"for\" parameter.");
    else {

      // Here is where you would do a lookup in the real database.  We simply
      // access the in-memory database as an example here.

      String   memberName  = URLEncoder.encode(name.toLowerCase());
      String[] memberValue = (String[]) database.get(memberName);
      if (memberValue != null && memberValue[DOCUMENT] != null)
        res.sendRedirect(memberValue[DOCUMENT]);
      else
        res.sendError(HttpServletResponse.SC_NOT_FOUND,
          "The member <i>" + memberName + "</i> has not defined a Web page.");
    }
  }
}
