AutoCompleteServlet.java
上传用户:shen332233
上传日期:2021-09-03
资源大小:7478k
文件大小:2k
源码类别:

Ajax

开发平台:

Java

  1. /*
  2.  * AutoCompleteServlet.java
  3.  *
  4.  * Created on June 20, 2005, 7:24 PM
  5.  */
  6. package ajaxbook.chap4;
  7. import java.io.*;
  8. import java.util.ArrayList;
  9. import java.util.Iterator;
  10. import java.util.List;
  11. import javax.servlet.*;
  12. import javax.servlet.http.*;
  13. /**
  14.  *
  15.  * @author nate
  16.  * @version
  17.  */
  18. public class AutoCompleteServlet extends HttpServlet {
  19.     private List names = new ArrayList();
  20.     public void init(ServletConfig config) throws ServletException {
  21.         names.add("Abe");
  22.         names.add("Abel");
  23.         names.add("Abigail");
  24.         names.add("Abner");
  25.         names.add("Abraham");
  26.         names.add("Marcus");
  27.         names.add("Marcy");
  28.         names.add("Marge");
  29.         names.add("Marie");
  30.     }
  31.     
  32.     /** Handles the HTTP <code>GET</code> method.
  33.      * @param request servlet request
  34.      * @param response servlet response
  35.      */
  36.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  37.     throws ServletException, IOException {
  38.         String prefix = request.getParameter("names");
  39.         NameService service = NameService.getInstance(names);
  40.         List matching = service.findNames(prefix);
  41.         if (matching.size() > 0) {
  42.             PrintWriter out = response.getWriter();
  43.             response.setContentType("text/xml");
  44.             response.setHeader("Cache-Control", "no-cache");
  45.             out.println("<response>");
  46.             Iterator iter = matching.iterator();
  47.             while(iter.hasNext()) {
  48.                 String name = (String) iter.next();
  49.                 out.println("<name>" + name + "</name>");
  50.             }
  51.             out.println("</response>");
  52.             matching = null;
  53.             service = null;
  54.             out.close();
  55.         } else {
  56.             response.setStatus(HttpServletResponse.SC_NO_CONTENT);
  57.             //response.flushBuffer();
  58.         }
  59.     }
  60.     
  61.     /** Handles the HTTP <code>POST</code> method.
  62.      * @param request servlet request
  63.      * @param response servlet response
  64.      */
  65.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  66.     throws ServletException, IOException {
  67.         doGet(request, response);
  68.     }
  69.         
  70.     /** Returns a short description of the servlet.
  71.      */
  72.     public String getServletInfo() {
  73.         return "Short description";
  74.     }
  75. }