www.pudn.com > j2mewireless_examples.zip > NetAddressBook.java


/*
 * Copyright (c) 2000-2001 Sun Microsystems, Inc. All Rights Reserved.
 */

package servlets;

import java.lang.*;
import java.util.*;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.*;


/**
 * Simple servlet that answers network address book lookups
 *
 */
public class NetAddressBook extends HttpServlet {
	private static final String[] database = {
			"Mark,VandenBrink_c,5555551212",
			"Mary,VandenBrink_b,5555551212",
			"Marcus,VandenBrink_a,5555551212",
			"Joy,VandenBrink_c,5555552222",
			"Jay,VandenBrink_d,5555552222",
			"Jane,VandenBrink_a,5555552222",
			"Jody,VandenBrink_v,5555552222",
			"Zach,VandenBrink_c,5555553333",
			"Zeke,VandenBrink_d,5555553333",
			"Zoe,VandenBrink_x,5555553333",
			"Zar,VandenBrink_z,5555553333",
	};
		

    /**
     * Respond to a GET request for the content produced by
     * this servlet.
     *
     * @param request The servlet request we are processing
     * @param response The servlet response we are producing
     *
     * @exception IOException if an input/output error occurs
     * @exception ServletException if a servlet error occurs
     */
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) throws IOException, ServletException {

		String[] matches = new String[database.length];
		int index = 0;
		String firstS = request.getParameter("first").toLowerCase();
		String lastS = request.getParameter("last").toLowerCase();
		String sortOrder = request.getParameter("sort");

		response.setContentType("text/html");
		PrintWriter writer = response.getWriter();
		for (int i = 0; i < database.length; i++) {
			StringTokenizer st = new StringTokenizer(database[i], ",");
			String f = st.nextToken().toLowerCase();
			String l = st.nextToken().toLowerCase();

			if (f.startsWith(firstS) &&
				l.startsWith(lastS)) {
				matches[index++] = database[i];
			}
		}

		if (index > 0) {
			Arrays.sort(matches, 0, index, new MyComparator(sortOrder.equals("0")));
			for (int i = 0; i < index; i++) {
				writer.println(matches[i]);
			}
		}
	}
}