<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 36, comments - 30, trackbacks - 0, articles - 3

    Ajax學(xué)習(xí)二

    Posted on 2009-11-15 09:28 笑看人生 閱讀(255) 評論(0)  編輯  收藏 所屬分類: Web開發(fā)技術(shù)
    Ajax中的XMLHttpRequest對象提供了兩個屬性來訪問服務(wù)器端相應(yīng)。

    • responseText:將相應(yīng)作為一個字符串返回;(系列一中已經(jīng)介紹)
    • responseXML:將相應(yīng)作為一個XML對象返回;(本系列中介紹)
    本節(jié)要介紹的內(nèi)容,很多人應(yīng)該比較熟悉,比如在網(wǎng)上注冊時,在“省”列表框中選擇不同的省份,對應(yīng)的“市”列表框中出現(xiàn)該省的所有市,這個過程,不用刷新整個頁面。

    要實現(xiàn)這個功能,只須修改一下系列一中的index.jsp和AjaxServlet.java這兩個文件。

    index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding
    ="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>

    <script language="javascript">
        
    var xmlHttp;
        
    function refresh() {
            xmlHttp 
    = createXMLHttpRequest();
            
    var url = "AjaxServlet?province="
                    
    + document.getElementById("province").value;
            xmlHttp.open(
    "GET", url);
            xmlHttp.onreadystatechange 
    = handleStateChange;
            xmlHttp.send(
    null);
        }

        
    function handleStateChange() {
            
    if (xmlHttp.readyState == 4) {
                
    if (xmlHttp.status == 200) {
                    updateCity();
                }
            }
        }

        
    function updateCity() {
            clearCity();
            
    var city = document.getElementById("city");
            
    var cities = xmlHttp.responseXML.getElementsByTagName("city");        
            
    for(var i=0;i<cities.length;i++){
                option 
    = document.createElement("option");
                option.appendChild(document.createTextNode(cities[i].firstChild.nodeValue));
                city.appendChild(option);                        
            }
        }

        
    function clearCity() {        
            
    var city = document.getElementById("city");
            
    while(city.childNodes.length > 0) {
                city.removeChild(city.childNodes[
    0]);
            }                    
        }
        
        
    function createXMLHttpRequest() {
            
    if (window.ActiveXObject) {
                xmlHttp 
    = new ActiveXObject("Microsoft.XMLHTTP");
            } 
    else if (window.XMLHttpRequest) {
                xmlHttp 
    = new XMLHttpRequest();
            }
            
    return xmlHttp;
        }
    </script>

    <body>
    <form action="#"><select id="province" onchange="refresh()">
        
    <option value="">Select One</option>
        
    <option value="jiangsu">Jiang Su</option>
        
    <option value="zhejiang">Zhe Jiang</option>
    </select> <br>
    <br>
    <br>
    <select id="city"></select></form>
    </body>

    </html>

    AjaxServlet.java

    package servlet;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class AjaxServlet extends HttpServlet {

        
    private static final long serialVersionUID = 7032718233562299325L;

        @Override
        
    protected void doPost(HttpServletRequest req, HttpServletResponse response)
                
    throws ServletException, IOException {
            processRequest(req, response, 
    "POST");
        }

        @Override
        
    protected void doGet(HttpServletRequest req, HttpServletResponse response)
                
    throws ServletException, IOException {
            processRequest(req, response, 
    "GET");
        }

        
    private void processRequest(HttpServletRequest req,
                HttpServletResponse response, String method) 
    throws IOException {
            String province 
    = req.getParameter("province");
            StringBuffer cities 
    = new StringBuffer("<cities>");
            
            
    if("jiangsu".equals(province)){
                cities.append(
    "<city>Nanjing</city>");
                cities.append(
    "<city>Zhenjiang</city>");
            }
    else if("zhejiang".equals(province)){
                cities.append(
    "<city>Hanzhou</city>");
                cities.append(
    "<city>Wenzhou</city>");
            }        
            
            PrintWriter writer 
    = response.getWriter();    
            cities.append(
    "</cities>");
            response.setContentType(
    "text/xml");
            writer.write(cities.toString());
            writer.close();
        }
    }




    主站蜘蛛池模板: 国产免费牲交视频免费播放| 亚洲精品无码专区久久| 曰韩亚洲av人人夜夜澡人人爽| 亚洲中文字幕久久精品无码A| 无码乱肉视频免费大全合集 | 亚洲AⅤ男人的天堂在线观看 | 久久aⅴ免费观看| 久久精品国产精品亚洲艾| 午夜不卡久久精品无码免费 | 亚洲人成人77777网站不卡| 国产免费毛不卡片| 亚洲成av人片天堂网无码】| 国产免费人成在线视频| 精品久久久久亚洲| 久久久久亚洲AV成人网人人软件 | 69视频免费观看l| 中文字幕亚洲男人的天堂网络| 大学生一级特黄的免费大片视频| 亚洲精品国产va在线观看蜜芽| 午夜不卡AV免费| 久久久久久a亚洲欧洲AV| 1000部拍拍拍18勿入免费视频软件 | 亚洲精品国产av成拍色拍| 日韩中文字幕在线免费观看| 免费夜色污私人影院网站| 亚洲国产精品无码专区在线观看| 91成人在线免费观看| 亚洲精品蜜夜内射| 免费一级毛片不卡不收费| 99久久免费国产精精品| 亚洲午夜精品一级在线播放放 | 精品久久久久久亚洲中文字幕| 亚洲性日韩精品国产一区二区| 国产午夜无码精品免费看| 97se亚洲国产综合自在线| 亚洲av无码成人精品区在线播放 | 免费女人高潮流视频在线观看 | 亚洲va久久久噜噜噜久久男同| 我的小后妈韩剧在线看免费高清版| 国产精品亚洲一区二区在线观看| 亚洲国产一二三精品无码|