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

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

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

    Nothing is impossible for a willing heart

    I belive I can

     

    AJAX+Servlet實現(xiàn)客戶端無刷新請求服務(wù)器實踐

    AJAX+Servlet實現(xiàn)客戶端無刷新請求服務(wù)器實踐
    www.yjyunda.com/art??2005-12-22??星語文章


    最近需要做一個在網(wǎng)頁中要不斷檢測服務(wù)器端數(shù)據(jù)程序,當(dāng)然最簡單的方法是在html頁面頭部加以下標(biāo)簽
    <META http-equiv=V="REFRESH" content="5;URL=本頁面url">
    實現(xiàn)將網(wǎng)頁設(shè)成每隔5秒鐘將自身頁面刷新一次;從而檢測或加載服務(wù)器端數(shù)據(jù).
    但該方法有一個不雅的問題是,頁面要不停地閃爍刷新,而且在每次刷新時都會發(fā)出windows點擊鏈接的聲音.如果時間久了,沒有人能忍受的了吧.
      現(xiàn)在找到了AJAX(異步 JavaScript 和 XML)這個技術(shù),他可以幫我們解決客戶端無需提交頁面即可發(fā)送對服務(wù)器的請求,這些均通過客戶端javascript實現(xiàn),以下為實現(xiàn)代碼:
    第一部分:
    <body onload="checknew()">
    頁面加載時即開始調(diào)用腳本checknew.
    第二部分:頁面腳本
    //頁面聲明對象var http_request;
    function checknew()
    {
    http_request = false;
    //下面需要建立一個XMLHttpRequest對象,用它進(jìn)行服務(wù)器請求,針對不同瀏覽器建立方法不同 if (window.XMLHttpRequest)
    { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType)
    {
    http_request.overrideMimeType('text/xml');
    }
    }
    else if (window.ActiveXObject)
    { // IE
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
    try
    {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) {}
    }
    }
    if (!http_request) {
    alert('出現(xiàn)錯誤,不能建立一個XMLHTTP實例!');
    return false;
    }
    //funccallback為請求返回后要調(diào)用的javascript方法
    http_request.onreadystatechange = funccallback;
    //該請求用get方式發(fā)送至url為/servlet/CheckServlet的Servlet,url可以帶參數(shù)或數(shù)據(jù)方式同一般url傳值,Servlet請看后面代碼
    http_request.open('GET',url, true);
    http_request.send(null);
    //如果要使用HTTP POST方式,必須要對 XMLHttpRequest 對象設(shè)置一個 Content-Type 頭,使用以下語句(url中也可包含參數(shù)):
    //http_request.open('POST',url, true);
    //http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //http_request.send("這里為傳的參數(shù)");
    //每隔5秒循環(huán)一次服務(wù)器請求 setTimeout('checknew()',5000);
    }
    //請求返回后調(diào)用方法
    function funccallback()
    {
    //檢測請求狀態(tài)http_request.readyState有以下幾種狀態(tài) 0 (未初始化) 1 (正在裝載) 2 (裝載完畢) 3 (交互中) 4 (完成)
    if (http_request.readyState == 4)
    {
    //XMLHttpRequest的status屬性被測試用來確定請求是否成功完成。當(dāng)處理簡單的GET與POST請求,你可以認(rèn)為只要不是200(OK)的狀態(tài)就表示發(fā)生了錯誤。
    if (http_request.status == 200)
    {
    //http_request.responseText為服務(wù)器返回的文本內(nèi)容,可自行做各種處理
    alert(http_request.responseText);
    }
    else
    {
    alert('對不起,請求出現(xiàn)錯誤!');
    }
    }
    }
    //第三部分 ,java Servlet的代碼:
    首先在web.xml中配置web Servlet,如下:
    <servlet>
    <servlet-name>CheckServlet</servlet-name>
    <servlet-class>com.view.CheckServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>CheckServlet</servlet-name>
    <url-pattern>/servlet/CheckServlet</url-pattern>
    </servlet-mapping>
    下面為Servlet實例:
    package com.view;
    //導(dǎo)入包略去,可在ide中自動導(dǎo)入(以下代碼包含部分ide自動生成代碼,可略去)
    public class CheckServlet extends HttpServlet
    {
    public void destroy()
    {
    super.destroy();
    // Just puts "destroy" string in log
    // Put your code here
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {
    //用get方式發(fā)送請求,因此在此處理,
    response.setContentType("text/xml");
    response.setHeader("Cache-Control", "no-cache");
    String ids="hello,China!";
    //將ids返回給客戶端
    response.getWriter().write(ids);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {
    //如果用post方式請求,則在此處理
    }
    public void init() throws ServletException
    {
    // Put your code here
    }

    posted on 2006-10-21 18:57 JAVA_UFO 閱讀(1630) 評論(1)  編輯  收藏 所屬分類: ajax

    評論

    # re: AJAX+Servlet實現(xiàn)客戶端無刷新請求服務(wù)器實踐[未登錄] 2014-06-03 09:42 1

    1  回復(fù)  更多評論   


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


    網(wǎng)站導(dǎo)航:
     

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成人午夜影视全部免费看| 成全视频免费观看在线看| 99热免费在线观看| 67194熟妇在线永久免费观看| 亚洲嫩模在线观看| 1000部羞羞禁止免费观看视频| 国产一级淫片免费播放电影| 亚洲AV一区二区三区四区| 日本中文一区二区三区亚洲 | 亚洲综合偷自成人网第页色| 皇色在线视频免费网站| 亚洲色最新高清av网站| 免费a级毛片18以上观看精品| 国产精品免费大片一区二区| 亚洲级αV无码毛片久久精品| 无码国产精品一区二区免费3p| 亚洲欧洲尹人香蕉综合| 中文字幕手机在线免费看电影| 亚洲AV无码一区二区二三区入口 | 永久在线毛片免费观看| 羞羞视频网站免费入口| 国产精品亚洲综合一区| 日韩午夜理论免费TV影院| 亚洲成年网站在线观看| 亚洲国产中文字幕在线观看| 免费在线看黄的网站| 亚洲人精品亚洲人成在线| 国产免费看插插插视频| 暖暖免费在线中文日本| 国产精品亚洲精品青青青| 亚洲精品成人网久久久久久| 日韩免费在线视频| 亚洲av无码日韩av无码网站冲| 亚洲色偷偷狠狠综合网| 国产精品1024永久免费视频 | 亚洲卡一卡2卡三卡4卡无卡三| 九九九精品成人免费视频| 日韩免费高清一级毛片| 亚洲福利视频导航| 国产一级特黄高清免费大片| 人妻丰满熟妇无码区免费 |