用AJAX編寫使用者註冊執行個體及技術小結(2)

來源:互聯網
上載者:User
ajax|使用者註冊 作者:龍犢整理出處:天極網責任編輯: 龍犢 [ 2006-03-17 09:12 ]用AJAX編寫使用者註冊執行個體——我所舉的這個例子是一個企業使用者註冊時的一個應用,當使用者註冊時檢查使用者名稱和企業名是否可用,以前的做法是在旁邊加一個按鈕,點擊“檢查”,就向伺服器發出請求,然後等待……伺服器返回資訊,繼續操作。

FunctionName是用JavaScript建立的函數名,注意不要寫成FunctionName(),當然我們也可以直接將JavaScript代碼建立在onreadystatechange之後。
 我們調用request.open()-它用伺服器開啟通訊端頻道,使用一個HTTP動詞(GET或POST)作為第一個參數並且以資料提供者的URL作為第二個參數。request.open()的最後一個參數被設定為true-它指示該請求的非同步特性。注意,該請求還沒有被提交。隨著對request.send()的調用,開始提交-這可以為POST提供任何必要的有效載荷。在使用非同步請求時,我們必須使用request.onreadystatechanged屬性來分配請求的回呼函數。(如果請求是同步的話,我們應該能夠在調用request.send之後立即處理結果,但是我們也有可能阻斷使用者,直到該請求完成為止。)

  我看再看看資料提供者的URL,url = "/chkUserAndCom",servlet如下:

1/**//*
2 * Created on 2005-12-31
3 *
4 * TODO To change the template for this generated file go to
5 * Window - Preferences - Java - Code Style - Code Templates
6 */
7package com.event;
8
9import javax.servlet.ServletException;
10import javax.servlet.http.HttpServletRequest;
11import javax.servlet.http.HttpServletResponse;
12
13import com.beans.EBaseInfo;
14
15/** *//**
16 * @author Alpha 2005-12-31
17 *
18 * <P>Ajax 示範---企業註冊時檢查企業使用者名和企業名稱</P>
19 *
20 * TODO To change the template for this generated type comment go to
21 * Window - Preferences - Java - Code Style - Code Templates
22 */
23public class CheckUserAndComNm {
24 private String msgStr = "";
25 protected void doGet(HttpServletRequest request,HttpServletResponse response)
26 throws ServletException
27 {
28
29  EComBaseInfo info=new EComBaseInfo();
30  String oprate=request.getParameter("oprate")).trim();
31  String userName=request.getParameter("userName");
32  String passWord=request.getParameter("password");
33  String comName=request.getParameter("comName");
34
35  try
36  {
37   if(oprate.equals("chkUser"))
38   {
39    response.setContentType("text/html;charset=GB2312");
40    if(userName.length()<5||userName.length()>20)
41    {
42     msgStr = "對不起,使用者名稱必須為字母、數字或底線,長度為5-20個字元!";
43    }
44    else
45    {
46     boolean bTmp=info.findUser(userName); //找查資料庫中有無該使用者名稱
47     if(bTmp)
48      msgStr ="對不起,此使用者名稱已經存在,請更換使用者名稱註冊!";
49     else
50      msgStr ="";
51    }
52    response.getWriter().write(msgStr);
53   }
54   else if(oprate.equals("chkCom"))
55   {
56    response.setContentType("text/html;charset=GB2312");
57    if(comName.length()<6||comName.length()>100)
58    {
59     msgStr = "對不起,公司名稱長度為6-100個字元(不包括字元內的空格)!";
60    }
61    else
62    {
63     boolean bTmp=info.findCom(comName); //找查資料庫中有無該企業名
64     if(bTmp)
65      msgStr ="對不起,此企業名稱已經存在,請更換企業名稱註冊!";
66     else
67      msgStr ="";
68    }
69    response.getWriter().write(msgStr);
70   
71   }
72  }
73  catch(Exception ex)
74  {
75  }
76  finally
77  {
78   request.setAttribute("url",url);
79  }
80 }
81
82 protected void doPost(HttpServletRequest request,HttpServletResponse response)
83 throws ServletException
84 {
85  doGet(request,response);
86 }
87}
88

   AJAX技術小結

  1. Ajax(Asynchronous JavaScript and XML)是一個結合了Java技術、XML、以及JavaScript的編程技術,可以讓你構建基於Java技術的Web應用,並打破了使用頁面重載的慣例。

  2. Ajax,非同步JavaScript與XML,是使用用戶端指令碼與Web伺服器交換資料的Web應用開發方法。這樣,Web頁面不用打斷互動流程進行重新加裁,就可以動態地更新。使用Ajax,你可以建立接近本地案頭應用的,直接的、高可用的、更豐富的、更動態Web使用者介面介面。

  3. 對於Mozilla﹑Netscape﹑Safari、Firefox等瀏覽器,建立XMLHttpRequest 方法如下:

xmlhttp_request = new XMLHttpRequest();

  4. IE等建立XMLHttpRequest 方法如下:

  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP") 

  或 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

  5. xmlhttp_request.open('GET', URL, true); xmlhttp_request.send(null);

  6. open()的第一個參數是HTTP請求方式—GET,POST或任何伺服器所支援的您想調用的方式。 按照HTTP規範,該參數要大寫;否則,某些瀏覽器(如Firefox)可能無法處理請求。第二個參數是請求頁面的URL。第三個參數佈建要求是否為非同步模式。如果是TRUE,JavaScript函數將繼續執行,而不等待伺服器響應。這就是"AJAX"中的"A"。

  Ajax技術運用的好的話,給我們的網頁增添了許多友好的效果,給使用者還來更好的感覺。Ajax是個好東西。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.