<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();
        }
    }




    主站蜘蛛池模板: 毛片基地免费观看| 久9久9精品免费观看| 成在线人永久免费视频播放| 亚洲成AV人综合在线观看| 84pao国产成视频免费播放| 亚洲第一福利视频| 日本免费人成网ww555在线| 老色鬼久久亚洲AV综合| 亚洲精品在线免费看| 亚洲AV一二三区成人影片| 四虎永久在线精品免费网址 | 久久国产美女免费观看精品| 国产日韩成人亚洲丁香婷婷| 182tv免费视频在线观看| 亚洲天天做日日做天天欢毛片 | 成人无码a级毛片免费| 亚洲人成电影在在线观看网色| 中文字幕免费在线| 亚洲成人激情小说| 四虎影在线永久免费四虎地址8848aa| 国产亚洲精品国产福利在线观看| 久久精品国产亚洲Aⅴ蜜臀色欲 | a毛片视频免费观看影院| 亚洲成a人片在线观看播放| 青青在线久青草免费观看| 色一情一乱一伦一视频免费看| 国产成人亚洲综合无码| 91在线手机精品免费观看| 91丁香亚洲综合社区| 亚洲精品无码久久久久AV麻豆| 免费国产成人18在线观看| 亚洲一级片在线播放| 亚洲成A人片在线观看无码3D| 18禁在线无遮挡免费观看网站| 色偷偷亚洲女人天堂观看欧| 亚洲第一永久AV网站久久精品男人的天堂AV | 国产gav成人免费播放视频| 日韩电影免费在线观看网站| 久久精品国产亚洲av麻豆图片| 免费播放春色aⅴ视频| 美女内射无套日韩免费播放 |