Ajax

xiaoxiao2025-12-12  2

JSP部分:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>

   <title>My JSP 'index.jsp' starting page</title>   <meta http-equiv="pragma" content="no-cache">   <meta http-equiv="cache-control" content="no-cache">   <meta http-equiv="expires" content="0">   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">   <meta http-equiv="description" content="This is my page">   <script type="text/javascript">  var xmlHttp;  function createXMLHttpRequest() {     if (window.ActiveXObject) {        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");     }     else if (window.XMLHttpRequest) {      xmlHttp = new XMLHttpRequest();     }  }  function refreshModelList() {     var make = document.getElementById("make").value;     var modelYear = document.getElementById("modelYear").value;     if(make == "" || modelYear == "") {        clearModelsList();        return;     }     var url = "RefreshModelListServlet?"+ createQueryString(make, modelYear) + "&ts=" + new Date().getTime();     createXMLHttpRequest();       xmlHttp.onreadystatechange = handleStateChange;     xmlHttp.open("GET", url, true);     xmlHttp.send(null);  }  function createQueryString(make, modelYear) {     var queryString = "make=" + make + "&modelYear=" + modelYear;     return queryString;  }  function handleStateChange() {     if(xmlHttp.readyState == 4) {      if(xmlHttp.status == 200) {         updateModelsList();      }     }  }  function updateModelsList() {      clearModelsList();     var models = document.getElementById("models");     var results = xmlHttp.responseXML.getElementsByTagName("model");     var option = null;     for(var i = 0; i < results.length; i++) {      option = document.createElement("option");      option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));      models.appendChild(option);     }  }  function clearModelsList() {     var models = document.getElementById("models");     while(models.childNodes.length > 0) {        models.removeChild(models.childNodes[0]);     }  }  </script></head><body>   <h1>    Select Model Year and Make   </h1>   <form action="#">    <span style="font-weight:bold;">Model Year:</span>    <select id="modelYear" οnchange="refreshModelList();">     <option value="">      Select One     </option>     <option value="2006">      2006     </option>     <option value="1995">      1995     </option>     <option value="1985">      1985     </option>     <option value="1970">      1970     </option>    </select>    <br />    <br />    <span style="font-weight:bold;">Make:</span>    <select id="make" οnchange="refreshModelList();">     <option value="">      Select One     </option>     <option value="Chevrolet">      Chevrolet     </option>     <option value="Dodge">      Dodge     </option>     <option value="Pontiac">      Pontiac     </option>    </select>    <br />    <br />    <span style="font-weight:bold;">Models:</span>    <br />    <select id="models" size="6" style="width:300px;">    </select>   </form></body></html>

Servlet部分:

public class RefreshModelListServlet extends HttpServlet {private static List<MakeModelYear> availableModels = new ArrayList();public void init() throws ServletException {   availableModels.add(new MakeModelYear(2006, "Dodge", "Charger"));   availableModels.add(new MakeModelYear(2006, "Dodge", "Magnum"));   availableModels.add(new MakeModelYear(2006, "Dodge", "Ram"));   availableModels.add(new MakeModelYear(2006, "Dodge", "Viper"));   availableModels.add(new MakeModelYear(1995, "Dodge", "Avenger"));   availableModels.add(new MakeModelYear(1995, "Dodge", "Intrepid"));   availableModels.add(new MakeModelYear(1995, "Dodge", "Neon"));   availableModels.add(new MakeModelYear(1995, "Dodge", "Spirit"));   availableModels.add(new MakeModelYear(1985, "Dodge", "Aries"));   availableModels.add(new MakeModelYear(1985, "Dodge", "Daytona"));   availableModels.add(new MakeModelYear(1985, "Dodge", "Diplomat"));   availableModels.add(new MakeModelYear(1985, "Dodge", "Omni"));   availableModels.add(new MakeModelYear(1970, "Dodge", "Challenger"));   availableModels.add(new MakeModelYear(1970, "Dodge", "Charger"));   availableModels.add(new MakeModelYear(1970, "Dodge", "Coronet"));   availableModels.add(new MakeModelYear(1970, "Dodge", "Dart"));   availableModels.add(new MakeModelYear(2006, "Chevrolet", "Colorado"));   availableModels.add(new MakeModelYear(2006, "Chevrolet", "Corvette"));   availableModels.add(new MakeModelYear(2006, "Chevrolet", "Equinox"));   availableModels.add(new MakeModelYear(2006, "Chevrolet", "Monte Carlo"));   availableModels.add(new MakeModelYear(1995, "Chevrolet", "Beretta"));   availableModels.add(new MakeModelYear(1995, "Chevrolet", "Camaro"));   availableModels.add(new MakeModelYear(1995, "Chevrolet", "Cavalier"));   availableModels.add(new MakeModelYear(1995, "Chevrolet", "Lumina"));   availableModels.add(new MakeModelYear(1985, "Chevrolet", "Cavalier"));   availableModels.add(new MakeModelYear(1985, "Chevrolet", "Chevette"));   availableModels.add(new MakeModelYear(1985, "Chevrolet", "Celebrity"));   availableModels.add(new MakeModelYear(1985, "Chevrolet", "Citation II"));   availableModels.add(new MakeModelYear(1970, "Chevrolet", "Bel Air"));   availableModels.add(new MakeModelYear(1970, "Chevrolet", "Caprice"));   availableModels.add(new MakeModelYear(1970, "Chevrolet", "Chevelle"));   availableModels.add(new MakeModelYear(1970, "Chevrolet", "Monte Carlo"));   availableModels.add(new MakeModelYear(2006, "Pontiac", "G6"));   availableModels.add(new MakeModelYear(2006, "Pontiac", "Grand Prix"));   availableModels.add(new MakeModelYear(2006, "Pontiac", "Solstice"));   availableModels.add(new MakeModelYear(2006, "Pontiac", "Vibe"));   availableModels.add(new MakeModelYear(1995, "Pontiac", "Bonneville"));   availableModels.add(new MakeModelYear(1995, "Pontiac", "Grand Am"));   availableModels.add(new MakeModelYear(1995, "Pontiac", "Grand Prix"));   availableModels.add(new MakeModelYear(1995, "Pontiac", "Firebird"));   availableModels.add(new MakeModelYear(1985, "Pontiac", "6000"));   availableModels.add(new MakeModelYear(1985, "Pontiac", "Fiero"));   availableModels.add(new MakeModelYear(1985, "Pontiac", "Grand Prix"));   availableModels.add(new MakeModelYear(1985, "Pontiac", "Parisienne"));   availableModels.add(new MakeModelYear(1970, "Pontiac", "Catalina"));   availableModels.add(new MakeModelYear(1970, "Pontiac", "GTO"));   availableModels.add(new MakeModelYear(1970, "Pontiac", "LeMans"));   availableModels.add(new MakeModelYear(1970, "Pontiac", "Tempest"));}

public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {    this.doPost(request, response);}

public void doPost(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {    processRequest(request, response);}protected void processRequest(HttpServletRequest request,    HttpServletResponse response) throws ServletException, IOException {   response.setContentType("text/html;charset=UTF-8");   int modelYear = Integer.parseInt(request.getParameter("modelYear"));   String make = request.getParameter("make");   StringBuffer results = new StringBuffer("<models>");   MakeModelYear availableModel = null;   for (Iterator it = availableModels.iterator(); it.hasNext();) {    availableModel = (MakeModelYear) it.next();    if (availableModel.modelYear == modelYear) {     if (availableModel.make.equals(make)) {      results.append("<model>");      results.append(availableModel.model);      results.append("</model>");     }    }   }   results.append("</models>");   response.setContentType("text/xml");   response.getWriter().write(results.toString());}

private static class MakeModelYear {   private int modelYear;

   private String make;

   private String model;

   public MakeModelYear(int modelYear, String make, String model) {    this.modelYear = modelYear;    this.make = make;    this.model = model;   }}

}

转载请注明原文地址: https://www.6miu.com/read-5040750.html

最新回复(0)