Ajax案例(1)

来源:互联网 发布:大数据技术基础知识 编辑:程序博客网 时间:2024/06/14 16:20

原文地址:http://xiongjiajia.iteye.com/blog/1319245

1.简单的级联下拉框 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  3.   <servlet>  
  4.     <servlet-name>SelectCityServlet</servlet-name>  
  5.     <servlet-class>com.demo.servlet.SelectCityServlet</servlet-class>  
  6.   </servlet>  
  7.   <servlet-mapping>  
  8.     <servlet-name>SelectCityServlet</servlet-name>  
  9.     <url-pattern>/servlet/SelectCityServlet</url-pattern>  
  10.   </servlet-mapping>  
  11.   <welcome-file-list>  
  12.     <welcome-file>index.jsp</welcome-file>  
  13.   </welcome-file-list>  
  14. </web-app>  

Java代码  收藏代码
  1. package com.demo.servlet;  
  2.   
  3.  import java.io.IOException;  
  4.  import java.io.PrintWriter;  
  5.    
  6.  import javax.servlet.ServletException;  
  7.  import javax.servlet.http.HttpServlet;  
  8.  import javax.servlet.http.HttpServletRequest;  
  9.  import javax.servlet.http.HttpServletResponse;  
  10.    
  11.   
  12.  public class SelectCityServlet extends HttpServlet {  
  13.      public SelectCityServlet(){super();}  
  14.      public void destory(){super.destroy();}  
  15.     @Override  
  16.     protected void doGet(HttpServletRequest request, HttpServletResponse response)  
  17.             throws ServletException, IOException {  
  18.         // TODO Auto-generated method stub  
  19.         response.setContentType("text/xml");  
  20.         response.setHeader("Cache-Control""no-cache");  
  21.         response.setCharacterEncoding("UTF-8");  
  22.         String state=request.getParameter("state");  
  23.         StringBuffer buffer=new StringBuffer("<state>");  
  24.         if("hn".equals(state)){  
  25.             buffer.append("<city>郑州</city><city>洛阳</city>");  
  26.         }else if("hb".equals(state)){  
  27.             buffer.append("<city>武汉</city><city>荆州</city><city>黄冈</city>");  
  28.         }  
  29.         buffer.append("</state>");  
  30.         PrintWriter out=response.getWriter();  
  31.         out.write(buffer.toString());  
  32.         out.close();  
  33.     }  
  34.  }  

Html代码  收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9. <head>  
  10.  <script type="text/javascript">  
  11.  function getResult(stateVal) {  
  12.        var url = "servlet/SelectCityServlet?state="+stateVal;   
  13.        if (window.XMLHttpRequest) {   
  14.                req = new XMLHttpRequest();   
  15.        }else if (window.ActiveXObject) {   
  16.                req = new ActiveXObject("Microsoft.XMLHTTP");   
  17.        }   
  18.        if(req){   
  19.                req.open("GET",url, true);   
  20.                req.onreadystatechange = complete;   
  21.                req.send(null);   
  22.        }   
  23.  }   
  24.  function complete(){  
  25.        if (req.readyState == 4) {   
  26.                if (req.status == 200) {   
  27.                        var city = req.responseXML.getElementsByTagName("city");   
  28.                        file://alert(city.length);  
  29.                        var str=new Array();  
  30.                        for(var i=0;i<city.length;i++){  
  31.                                str[i]=city[i].firstChild.data;  
  32.                        }  
  33.                        file://alert(document.getElementById("city"));  
  34.                        buildSelect(str,document.getElementById("city"));  
  35.                }  
  36.        }  
  37.  }  
  38.  function buildSelect(str,sel) {  
  39.        sel.options.length=0;  
  40.        for(var i=0;i<str.length;i++) {  
  41.                sel.options[sel.options.length]=new Option(str[i],str[i])  
  42.        }  
  43.  }  
  44.  </script>  
  45. </head>  
  46.  <body>  
  47.  <select name="state" onChange="getResult(this.value)">  
  48.        <option value="">Select</option>  
  49.        <option value="hn">河南</option>  
  50.        <option value="hb">湖北</option>  
  51.  </select>  
  52.  <select id="city">  
  53.    <option value="">CITY</option>  
  54.  </select>  
  55. </body>  
  56. </html>