JQuery入門實例

  1. 1.此實例主要通過JQuery將提交到servlet,處理後將數據返回

AjaxServlet.java

  1. import javax.servlet.http.HttpServlet;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import javax.servlet.ServletException;
  5. import java.io.IOException;
  6. import java.io.PrintWriter;
  7. public class AjaxServlet extends HttpServlet{
  8.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  9.        doGet(request, response);    
  10.     }
  11.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  12.         try{
  13.                response.setContentType("text/html;charset=GB2312");
  14.                PrintWriter out=response.getWriter();
  15.                String old = request.getParameter("name");
  16.                if(old == null || old.length()==0){
  17.                    out.println("用戶名不能爲空!");
  18.                }else{
  19.                    String name = old;
  20.                    if(name.equals("unicorn")){
  21.                        //4.和傳統應用不同之處,這步需要將用戶感興趣的數據返回,而不是將一個新的頁面發送給用戶
  22.                        //寫法沒有變化,本質發生了改變
  23.                        out.println("用戶名:"+name+"已經存在");
  24.                    }else{
  25.                        out.println("用戶名:"+name+"尚未存在");
  26.                    }
  27.                }
  28.            }catch(Exception e){
  29.                e.printStackTrace();
  30.            }
  31.     }
  32. }
index.html
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.         "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5.   <title>ajax用戶名校驗實例</title>
  6.     <script type="text/javascript" src="js/jquery-1.2.6.js"></script>
  7.     <script type="text/javascript" src="js/unicorn.js"></script>
  8. </head>
  9. <body>
  10.     請輸入用戶名:<br/>
  11.     <!-- ajax方式下不需要用form來提交數據-->
  12.     <!-- ajax方式不需要name屬性,但是要有id屬性-->
  13.     <input type="text" id="userName"/>
  14.     <input type="button" value="校驗" onclick="verify()" />
  15.     <!-- 此div用於存放服務器返回信息,初始爲空 -->
  16.     <!-- id屬性定義爲了用dom方式找到某節點,進行操作-->
  17. <div id="result"></div>
  18. </body>
  19. </html>

unicorn.js

  1. //JQuery方式傳送數據
  2. function verify(){
  3.     $.get("AjaxServer?name="+$("#userName").val(),null,function (data){
  4.         $("#result").html(data);
  5.     });
  6. }
  7. //這個方法將使用XMLHTTPRequest對象來進行AJAX的異步數據交換
  8. var xmlhttp;
  9. function verify1(){
  10.     //1.使用dom的方式獲取文本框中的值
  11.     alert("haha");
  12.     var userName = document.getElementById("userName").value;
  13.     //2.創建XMLHTTPRequest對象
  14.     //這是XMLHTTPRequest對象使用中最複雜的一步
  15.     //需要針對IE和其他類型的瀏覽器建立這個對象的不同方式寫不同的代碼
  16.     if(window.XmlHttpRequest){
  17.         //針對FireFox,Mozillar,Opera,Safari,IE7,IE8
  18.         xmlhttp = new XMLHttpRequest();
  19.         //針對某些特定版本的mozillar瀏覽器到BUG進行修正
  20.         if(xmlhttp.overrideMimeType){
  21.             xmlhttp.overrideMimeType("text/xml");
  22.         }
  23.     }else if(window.ActiveXObject){
  24.         //針對IE6,IE5.5,IE5
  25.         //兩個可以用於創建XMLHTTPRequest對象的控件名,保存在一個js的數組中
  26.         //排在前面的版本較新
  27.         var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
  28.         for(var i = 0;i<activexName.length;i++){
  29.             try{
  30.                 //取出一個控件名進行創建,如果創建成功就終止循環
  31.                 //如果創建失敗,會拋出異常,然後可以繼續循環,繼續嘗試創建
  32.                 xmlhttp = new ActiveXObject(activexName[i]);
  33.                 break;
  34.             }catch(e){
  35.                 
  36.             }
  37.         }
  38.         
  39.     }
  40.     //確認XMLHTTPRequst對象創建成功
  41.     if(!xmlhttp){
  42.         alert("XMLHttpRequest對象創建失敗!!");
  43.         return;
  44.     }else{
  45.         alert(xmlhttp);
  46.     }
  47.     //2.註冊回調函數
  48.     //註冊回調函數時,只需要函數名,不要加括號
  49.     //我們需要將函數名註冊,如果加上括號,就會把函數的返回值註冊上,這是錯誤的
  50.     xmlhttp.onreadystatechange = callback;
  51.     //3.設置連接信息
  52.     //第一個參數表示http的請求方式,支持所有的http請求方式,主要是get和post
  53.     //第二個參數表示請求的url地址,get方式請求的參數也在url中
  54.     //第三個參數表示採用異步還是同步方式交互,true表示異步
  55.     xmlhttp.open("GET","AjaxServer?name="+userName,true);
  56.     //4.發送數據,開始和服務器端進行交互
  57.     //同步方式下,send這句話會在服務器端數據回來後才執行完
  58.     //異步方式下,send這句話會立即完成執行
  59.     xmlhttp.send(null);
  60. }
  61. //回調函數
  62. function callback(){
  63.     //判斷對象的狀態是否交互完成
  64.     if(xmlhttp.readyState==4){
  65.      //判斷http的交互是否成功
  66.         if(xmlhttp.status==200){
  67.             //獲取服務器端返回的數據
  68.             //獲取服務器端輸出的純文本數據
  69.             var responseText = xmlhttp.responseText;
  70.             //將數據顯示在頁面上
  71.             var divNode = document.getElementById("result");
  72.             //設置元素節點中的html內容
  73.             divNode.innerHTML = responseText;
  74.         }
  75.     }
  76.     
  77. }

以上是傳智的部分筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章