AJAX

Ajax

AJAX:即“Asynchronous Javascript And XML”(異步的JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)鳞青,尤其是在一種在無需重新加載整個網(wǎng)頁的情況下计露,能夠更新部分網(wǎng)頁的技術(shù)畅厢。

傳統(tǒng)Web開發(fā)

World Wide Web(簡稱Web):是隨著Internet的普及使用而發(fā)展起來的一門技術(shù)颅和,其開發(fā)模式是一種請求→刷新→響應(yīng)的模式,每個請求由單獨的一個頁面來顯示扳剿,發(fā)送一個請求就會重新獲取這個頁面。

image

Ajax采用異步通信昼激,主要以數(shù)據(jù)交互為主庇绽;傳統(tǒng)的web開發(fā)采用同步通信锡搜,主要以頁面交互為主。

ajax請求步驟

1.創(chuàng)建Ajax對象

var request = new XMLHttpRequest();

2.連接服務(wù)器
open(method,url,async);

request.open("get","query.do",true);//異步請求

3.發(fā)送請求
send(string)
在使用GET方式請求時無需填寫參數(shù)
在使用POST方式時參數(shù)代表著向服務(wù)器發(fā)送的數(shù)據(jù)

        xhr.open('get','random.do?max=100‘,true);
        xhr.send();

//        xhr.open('post','random.do',true);
//        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");//post請求需要設(shè)置HTTP頭信息,否則發(fā)送數(shù)據(jù)有問題
//        xhr.send('max=100');

4.接收服務(wù)器相應(yīng)數(shù)據(jù)

 xhr.onload = function () {
          console.log(xhr.responseText);
        }

一個綜合實例

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title></title>
    <script>
      function getRandom() {
        var max = document.getElementById('max');

        var xhr = new XMLHttpRequest();

        xhr.open('get','random.do?max='+ max.value,true);
        xhr.send();

//        xhr.open('post','random.do',true);
//        xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//        xhr.send('max='+ max.value);
        xhr.onload = function () {
          var div = document.getElementById('num');
          div.innerHTML = xhr.responseText;
        }
      }

    </script>
  </head>
  <body>
  多少以內(nèi)的隨機數(shù):<input type="text" id="max">
  <button onclick="getRandom();">得到一個隨機數(shù)</button>
  <div id="num">

  </div>

  </body>
</html>

@WebServlet(name = "RandomServlet",urlPatterns = "/random.do")
public class RandomServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int max = Integer.parseInt(request.getParameter("max"));
        Random random = new Random();
        int num = random.nextInt(max);
        response.getWriter().println(num);
    }
}

可以寫一個傳統(tǒng)web開發(fā)方式的請求回應(yīng)瞧掺,進行對比耕餐。

ajax校驗用戶名是否已存在

image
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>$Title$</title>
  <script>
    function checkUser() {
      //創(chuàng)建一個XMLHttpRequest類型的對象ajaxReq
      var ajaxReq = new XMLHttpRequest();
      var username = document.getElementById('username');

      //用ajaxReq打開一個連接
      ajaxReq.open("post","valid.do",true);

      ajaxReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      //發(fā)送請求給服務(wù)器
      ajaxReq.send("username="+username.value);
      //設(shè)置一個回調(diào)函數(shù),用來處理服務(wù)器的回應(yīng)夸盟。
      ajaxReq.onload = function () {
            var msg = document.getElementById('msg');
            if(ajaxReq.responseText=="0")//可以注冊蛾方,用戶名還不存在
            {
              msg.innerHTML="可以注冊";
            }
            else
            {
              msg.innerHTML="用戶名已存在";
            }
      }
    }
  </script>
</head>
<body>
用戶注冊
<form method="post" action="valid.do">
  用戶名:<input type="text" id = "username" name="username" onblur="checkUser();">
  <span id="msg"></span>
  密碼:<input type="text" name="pwd">
  <input type="submit">
</form>
</body>
</html>

ValidUserServlet.java

@WebServlet(name = "ValidUserServlet",urlPatterns = "/valid.do")
public class ValidUserServlet extends HttpServlet {
    private List<String> lst = new ArrayList<String>();
    public void init() throws javax.servlet.ServletException
    { /* compiled code */
        lst.add("zhangsan");
        lst.add("lisi");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String strName = request.getParameter("username");
        //contains---包含
        PrintWriter pw = response.getWriter();
        if(lst.contains(strName))//用戶已存在
        {
            pw.print("1");
        }
        else
        {
            pw.print("0");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市上陕,隨后出現(xiàn)的幾起案子桩砰,更是在濱河造成了極大的恐慌,老刑警劉巖释簿,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亚隅,死亡現(xiàn)場離奇詭異,居然都是意外死亡庶溶,警方通過查閱死者的電腦和手機煮纵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來偏螺,“玉大人行疏,你說我怎么就攤上這事√紫瘢” “怎么了酿联?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夺巩。 經(jīng)常有香客問我贞让,道長,這世上最難降的妖魔是什么柳譬? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任喳张,我火速辦了婚禮,結(jié)果婚禮上美澳,老公的妹妹穿的比我還像新娘销部。我一直安慰自己,他們只是感情好人柿,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布柴墩。 她就那樣靜靜地躺著,像睡著了一般凫岖。 火紅的嫁衣襯著肌膚如雪江咳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天哥放,我揣著相機與錄音歼指,去河邊找鬼爹土。 笑死,一個胖子當著我的面吹牛踩身,可吹牛的內(nèi)容都是我干的胀茵。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼挟阻,長吁一口氣:“原來是場噩夢啊……” “哼琼娘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起附鸽,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤脱拼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后坷备,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熄浓,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年省撑,在試婚紗的時候發(fā)現(xiàn)自己被綠了赌蔑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡竟秫,死狀恐怖娃惯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肥败,我是刑警寧澤石景,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站拙吉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏揪荣。R本人自食惡果不足惜筷黔,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仗颈。 院中可真熱鬧佛舱,春花似錦、人聲如沸挨决。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脖祈。三九已至肆捕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盖高,已是汗流浹背慎陵。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工眼虱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人席纽。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓捏悬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親润梯。 傳聞我的和親對象是個殘疾皇子过牙,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容