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

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

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

    Java進行時
          把握現在,成就未來!
    posts - 23,comments - 30,trackbacks - 0
    今天無意間看見一個這樣的AJAX例子,覺得很有價值,于是便記錄了下來,以供以后參考。
    原文地址:http://hi.baidu.com/casa2/blog/item/7a6bc1c684e81c1f9d163df5.html
    本例將在頁面的參數以Get和POST兩種方式傳遞到服務器,并回顯到頁面;

    本例共包括兩個主要文件getAndPostExample.html和GetAndPostExample.java以及一個配置文件web.xml
    建立文件的步驟:
    1.在Eclipse新建一個web project-->ajax1
    2.在ajax1里面新建一個getAndPostExample.html
    3.在ajax1里面新建一個servlet-->GetAndPostExample.java

    getAndPostExample.html如下

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <title>getAndPostExamplel.html</title>
       
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="this is my page">
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
       
        <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
        <script type="text/javascript">
            var xmlHttp;
            //創建XMLhttpRequest對象
            function createXMLHttpRequest() {
                if (window.ActiveXObject) {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
                else if (window.XMLHttpRequest) {
                    xmlHttp = new XMLHttpRequest();
                }
            }

            //生成傳遞到服務器的參數查詢串,參數值由頁面表單填寫得到
           function createQueryString() {
                var firstName = document.getElementById("firstName").value;
                var middleName = document.getElementById("middleName").value;
                var birthday = document.getElementById("birthday").value;
                var queryString = "firstName=" + firstName + "&middleName=" + middleName
                + "&birthday=" + birthday;
                return queryString;
            }

            //點擊按鈕響應的Get方法主函數
            //Get方法把參數值以名=值方式在xmlHttp.open("GET", queryString, true)中傳遞,queryString的形式為URL?參數名=值&參數名=值...;而xmlHttp.send(null);

            function doRequestUsingGET() {
                createXMLHttpRequest();//第一步:創建XMLHttpRequest對象
                var queryString = "GetAndPostExample?";
                queryString = queryString + createQueryString()
                + "&timeStamp=" + new Date().getTime();//第二步:定義傳遞的參數值字符串
                xmlHttp.open("GET", queryString, true);//第三步:建立與服務器的請求
                xmlHttp.onreadystatechange = handleStateChange;//第四步:監聽狀態-->轉到監聽狀態函數   
                xmlHttp.send(null);//第五步:發送請求,并且立即返回
            }

            //點擊按鈕響應的POST方法主函數
            //POST方法把參數值以名=值方式在xmlHttp.send(queryString)中傳遞,queryString的形式為參數名=值&參數名=值...;

            function doRequestUsingPOST() {
                createXMLHttpRequest();//第一步:創建XMLHttpRequest對象
                var url = "GetAndPostExample?timeStamp=" + new Date().getTime();
                var queryString = createQueryString();//第二步:定義傳遞的參數值字符串
                xmlHttp.open("POST", url, true);//第三步:建立與服務器的請求
                xmlHttp.onreadystatechange = handleStateChange;//第四步:監聽狀態-->轉到監聽狀態函數
                xmlHttp.setRequestHeader("Content-Type",
                "application/x-www-form-urlencoded;");
                xmlHttp.send(queryString);//第五步:發送請求,并且立即返回
            }

            //監聽狀態函數
            function handleStateChange() {
                if(xmlHttp.readyState == 4) {
                    if(xmlHttp.status == 200) {
                    parseResults();//-->轉到函數parseResults輸出從服務器返的值
                    }
                }
            }

            //在頁面顯示從服務器傳來的結果
           function parseResults() {
                var responseDiv = document.getElementById("serverResponse");
                if(responseDiv.hasChildNodes()) {
                responseDiv.removeChild(responseDiv.childNodes[0]);
            }
            var responseText = document.createTextNode(xmlHttp.responseText);//
            responseDiv.appendChild(responseText);
            }
    </script>
    </head>

    <body>
        <h1>Enter your first name, middle name, and birthday:</h1>
        <table>
            <tbody>
                <tr>
                    <td>First name:</td>
                    <td><input type="text" id="firstName"/>
                </tr>
                <tr>
                    <td>Middle name:</td>
                    <td><input type="text" id="middleName"/>
                </tr>
                <tr>
                    <td>Birthday:</td>
                    <td><input type="text" id="birthday"/>
                </tr>
            </tbody>
        </table>
        <form action="#">
            <input type="button" value="Send parameters using GET"
            onclick="doRequestUsingGET();"/>
    <!--調用Get方法主函數-->
            <br/><br/>
            <input type="button" value="Send parameters using POST"
            onclick="doRequestUsingPOST();"/>
    <!--調用POST方法主函數-->
        </form>
        <br/>
        <h2>Server Response:</h2>
        <div id="serverResponse"></div>
    </body>
    </html>

    GetAndPostExample.java 如下

    package com.ajax1;

    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 GetAndPostExample extends HttpServlet {

        protected void processRequest(HttpServletRequest request,
                HttpServletResponse response, String method)
                throws ServletException, IOException {
                    //把響應內容類型設置為 text/xml
                    response.setContentType("text/xml");
                    //得到用戶參數值
                    String firstName = request.getParameter("firstName");
                    String middleName = request.getParameter("middleName");
                    String birthday = request.getParameter("birthday");
                   //生成包含用戶參數值的返回字符串
                    String responseText = "Hello " + firstName + " " + middleName
                    + ". Your birthday is " + birthday + "."
                    + " [Method: " + method + "]";
                    //寫回瀏覽器
                    PrintWriter out = response.getWriter();
                    out.println(responseText);
                    out.close();
                }
                protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                    //Get主函數調用processRequest,完成Get方法的參數接受,返回的過程
                    processRequest(request, response, "GET");
                }
                protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                    //POST主函數調用processRequest,完成POST方法的參數接受,返回的過程
                    processRequest(request, response, "POST");
                }
    }

    web.xml 如下

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4"
        xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>GetAndPostExample</servlet-name>
        <servlet-class>com.ajax1.GetAndPostExample</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>GetAndPostExample</servlet-name>
        <url-pattern>/GetAndPostExample</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    </web-app>

    在這個簡單的AJAX的例子里getAndPostExaple.html負責表單參數的輸入和傳遞,而servlet GetAndPostExample.java負責在服務器端接受參數。參數傳遞時加的時間戳是保證URL的唯一性。
    posted on 2008-04-21 12:22 biiau 閱讀(5846) 評論(8)  編輯  收藏

    FeedBack:
    # re: 一個MyEclipse里的AJAX例子
    2008-04-27 19:34 | ioworks
    多謝!

    這個真的是很好,一拷過去就可以運行!  回復  更多評論
      
    # re: 一個MyEclipse里的AJAX例子
    2008-09-27 14:42 | luanma
    可是,返回的是亂碼…………  回復  更多評論
      
    # re: 一個MyEclipse里的AJAX例子[未登錄]
    2011-11-18 13:24 | 李鵬飛
    @luanma
    如果亂碼給get 或者 post 方法 加上charset=“utf-8”;  回復  更多評論
      
    # re: 一個MyEclipse里的AJAX例子
    2012-02-23 19:40 | 編程小強
    很感謝樓主分享  回復  更多評論
      
    # re: 一個MyEclipse里的AJAX例子
    2012-05-07 11:25 | 垂涎三尺
    查詢出  回復  更多評論
      
    # re: 一個MyEclipse里的AJAX例子[未登錄]
    2013-08-16 23:07 | Ariel
    為什么我試了之后Server Response下面沒有響應出來呢?求助~  回復  更多評論
      
    # re: 一個MyEclipse里的AJAX例子[未登錄]
    2013-08-17 12:00 | Ariel
    知道怎么錯了,是web.xml錯了@Ariel
      回復  更多評論
      
    # re: 一個MyEclipse里的AJAX例子
    2013-11-07 09:48 | xlqcode
    很不錯 考過來就能運行  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲成a人一区二区三区| 亚洲一日韩欧美中文字幕在线| 中文字幕亚洲综合久久综合| 亚洲欧洲免费视频| 亚洲第一福利视频| 99久久人妻精品免费二区| 中文字幕亚洲色图| 国产成人精品免费视| 久久精品国产亚洲av水果派| 91精品全国免费观看含羞草| 亚洲日本国产精华液| 免费毛片在线看片免费丝瓜视频 | 亚在线观看免费视频入口| 国产精品亚洲一区二区三区在线 | 一级毛片人与动免费观看| 亚洲一级特黄大片无码毛片| 一级做a爱过程免费视| 亚洲欧洲美洲无码精品VA| 怡红院免费的全部视频| 亚洲av中文无码乱人伦在线r▽| 今天免费中文字幕视频| 亚洲精品国产专区91在线| 在线成人a毛片免费播放| 羞羞视频免费网站入口| 亚洲国产精品嫩草影院在线观看 | 成人一区二区免费视频| 亚洲人成亚洲精品| 成全视频免费高清| 高清免费久久午夜精品| 亚洲国产精品久久久久久| 青娱分类视频精品免费2| 亚洲heyzo专区无码综合| 国产亚洲精品成人AA片新蒲金| 精品熟女少妇a∨免费久久| 亚洲乱码国产乱码精华| 国产精品亚洲mnbav网站 | 精品免费AV一区二区三区| 国产亚洲福利精品一区| 永久免费av无码网站韩国毛片| 污污的视频在线免费观看| 亚洲欧洲国产日韩精品|