<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學習二

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

    • responseText:將相應作為一個字符串返回;(系列一中已經(jīng)介紹)
    • responseXML:將相應作為一個XML對象返回;(本系列中介紹)
    本節(jié)要介紹的內(nèi)容,很多人應該比較熟悉,比如在網(wǎ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一区二区三区中文 | 亚洲日产2021三区| 色猫咪免费人成网站在线观看| 亚洲中文字幕无码不卡电影| 国产成人精品免费大全| 国产精品亚洲а∨无码播放| 两性色午夜视频免费网| 国产精品免费视频观看拍拍| 国产亚洲成归v人片在线观看| 一级毛片免费播放男男| 77777亚洲午夜久久多人| 一个人免费视频在线观看www| 亚洲人成中文字幕在线观看| 久别的草原电视剧免费观看| 亚洲国产精品张柏芝在线观看| 成人爽A毛片免费看| 综合一区自拍亚洲综合图区 | 国语成本人片免费av无码| 国产亚洲精aa在线看| 免费一级特黄特色大片在线观看| 视频免费1区二区三区| 在线日韩日本国产亚洲| 99re在线免费视频| 一本色道久久88—综合亚洲精品| 国产裸模视频免费区无码| 国产黄片不卡免费| 亚洲免费视频观看| 亚洲av午夜精品一区二区三区 | 成人黄色免费网址| 亚洲精品无码成人| 亚洲乱码一区二区三区在线观看 | 亚洲女初尝黑人巨高清| 最近2019中文字幕免费直播| 综合偷自拍亚洲乱中文字幕| 亚洲国产人成在线观看69网站 | 美女黄频a美女大全免费皮|