/*
 * Name21Servlet.java - a sample servlet for "member.name" version 2.1.
 * 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 checks whether a name is reserved by a member using the new 2.1
 * format of the "member.name" script.
 *
 * @version 08 May 1998
 * @author  John Neffenger
 */

public class Name21Servlet extends Access21Servlet {

  /**
   * 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 {
    res.setContentType("text/plain");
    ServletOutputStream out = res.getOutputStream();
    String name = req.getParameter("name");
    if (name == null || name.length() == 0) {
      out.println(ERROR);		// No name given
      out.println("Missing \"name\" 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());
      if (database.containsKey(memberName))
        out.println(TRUE);	// Name is taken by a member
      else
        out.println(FALSE);	// Name is not taken by a member
    }
  }
}
