求一个完整版的Ajax例子,JSP+servlet的就OK了,简单的省市联查就行,
送分呐,亲们。

解决方案 »

  1.   

    function ajax(){
    var xmlHttp;
    var browser = navigator.appName;
        if(browser == "Microsoft Internet Explorer"){
    try{
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
    try{
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch (e2){
    xmlHttp = false;
    }
    }
        }else{
            xmlHttp = new XMLHttpRequest();
        }
    xmlHttp.onreadystatechange=function(){
            if (xmlHttp.readyState == 4) {
                if(xmlHttp.status==200){  
    callback(xmlHttp.responseText);
    }
    }
    }
    var getUrl="http://127.0.0.1/..";
    xmlHttp.open("GET",getUrl,true);
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
    xmlHttp.send(null);
    }function callback(result){
      doSomething..
    }
      

  2.   

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <base href="<%=basePath%>">
        
      <title>My JSP 'province.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">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script type="text/javascript">
    function loadXMLDoc()
    {  
    xmlhttp = null;
    var country = document.getElementById("country");
    country.length = 1;
    country.selectedIndex = 0;
    var province = document.getElementById("province");
    if(province.value == ""){
    return ;
    }
    var url="http://localhost:8080/Ajax_Province/GetProvince?&province="+encodeURIComponent(province.value);
    if (window.XMLHttpRequest) {// code for Firefox, Mozilla, IE7, etc.
    xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {// code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp != null) {
    xmlhttp.onreadystatechange = state_Change;
    xmlhttp.open("post", url, true);
    xmlhttp.send(null);
    } else {
    alert("Your browser does not support XMLHTTP.");
    }
    }function state_Change() {
    var province = document.getElementById("province");   
    var country = document.getElementById("country");
    if (xmlhttp.readyState == 4&&xmlhttp.status == 200) {// 4 = "loaded"
    var serviceData = xmlhttp.responseText;
    if(serviceData == null||serviceData == ""){
    return;
    }
    var s = serviceData.split(",");
    for(var i=0;i<s.length-1;i++){
    country.options[i+1] = new Option(s[i],s[i]);
    }
    }
    }
    </script>
      </head>
        
      <body>
    出生地:<select id="province" onchange="loadXMLDoc()">
    <option value="">------请选择省-----</option>
    <option value="江西省">江西省</option>
    <option value="江苏省">江苏省</option>
    <option value="浙江省">浙江省</option>
    <option value="山东省">山东省</option>
    <option value="辽宁省">辽宁省</option>
    <option value="福建省">福建省</option></select>   <select id="country"><option value="">-----请选择市-----</option></select>
      </body>
    </html>
    servlet:
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.neusoft.zjl.service.ProvinceService;
    public class GetProvince extends HttpServlet {/**
    * Constructor of the object.
    */
    public GetProvince() {
    super();
    }/**
    * Destruction of the servlet. <br>
    */
    public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
    }/**
    * The doGet method of the servlet. <br>
    *
    * This method is called when a form has its tag value method equals to get.
    *   
    * @param request the request send by the client to the server
    * @param response the response send by the server to the client
    * @throws ServletException if an error occurred
    * @throws IOException if an error occurred
    */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {doPost(request, response);
    }/**
    * The doPost method of the servlet. <br>
    *
    * This method is called when a form has its tag value method equals to post.
    *   
    * @param request the request send by the client to the server
    * @param response the response send by the server to the client
    * @throws ServletException if an error occurred
    * @throws IOException if an error occurred
    */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    List list = null;
    ProvinceService provinceService = new ProvinceService();
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    String strprovince = request.getParameter("province");
    if(strprovince == null||"".equals(strprovince)){
    return ;
    }
    String province = new String(strprovince.getBytes("ISO-8859-1"),"UTF-8");
    list = provinceService.getCountry(province);//这个是查询数据库的你可以换你的对数据库的操作
    if(list ==null){
    return;
    }
    StringBuffer sb = new StringBuffer();
    for(int i=0;i<list.size();i++){
    String s = (String)list.get(i);
    sb.append(s+",");
    }
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.print(sb);
    out.flush();
    out.close();
    }/**
    * Initialization of the servlet. <br>
    *
    * @throws ServletException if an error occurs
    */
    public void init() throws ServletException {
    // Put your code here
    }}