/*

 * 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.");

    }

  }

}

