DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 用AJAX編寫用戶注冊實例及技術小結(2)
用AJAX編寫用戶注冊實例及技術小結(2)
編輯:AJAX詳解     
用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是個好東西。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved