<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)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91老湿机福利免费体验| 免费黄色app网站| 亚洲午夜无码久久久久小说| 国产精品极品美女免费观看| 好湿好大好紧好爽免费视频| 亚洲经典在线观看| 亚洲阿v天堂在线2017免费| 午夜免费福利视频| 国产精品亚洲综合网站| 亚洲国产综合91精品麻豆| 日日操夜夜操免费视频| 免费精品99久久国产综合精品| 亚洲 暴爽 AV人人爽日日碰| 国产亚洲自拍一区| 免费鲁丝片一级观看| 日韩视频在线观看免费| 国产偷国产偷亚洲高清在线| 91久久亚洲国产成人精品性色 | 希望影院高清免费观看视频| 十八禁的黄污污免费网站| 亚洲福利一区二区| 亚洲精品午夜无码电影网| 处破痛哭A√18成年片免费| 精品免费视在线观看| 无遮挡a级毛片免费看| 亚洲第一男人天堂| 亚洲男人的天堂在线播放| 亚洲&#228;v永久无码精品天堂久久| 久久久久国色av免费看| 成人精品综合免费视频| 亚洲中文字幕久久精品蜜桃| 91大神亚洲影视在线| 亚洲精品字幕在线观看| 亚洲精品国自产拍在线观看| 午夜视频免费观看| 亚洲免费二区三区| 久久99精品视免费看| 91成人免费福利网站在线| 色吊丝性永久免费看码| 国产精品国产亚洲区艳妇糸列短篇| 亚洲人成电影在线观看青青|