当前位置:编程学习 > JAVA >>

最简单的Ajax应用,异步验证用户名

Ajax异步交互技术在现在网页制作方面非常的流行,这里先介绍一下使用jQuery完成Ajax的异步验证用户名的做法,

然后再深入剖析,使用纯JS创建XMLHttpRequest对象,完成jQuery底层封装的内容,下面先演示jQuery的实现,其实

非常简单。

[html]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
  <head> 
    <title>ajax.html</title> 
    <script type="text/javascript" src="/Ajax/js/jquery-1.7.2.js"></script> 
    <script type="text/javascript"> 
        function test(){ 
            //1.获取文本框中的值 
            var value = $("#userName").val(); 
            //2.将文本框中的内容发送给后台服务器 
            //使用jQuery的XMLHTTPRequest的方法的封装 
            $.get("/Ajax/servlet/AjaxServlet?name="+value,null,callback); 
        } 
         
        function callback(data){//回调函数 
            //3.接受服务器的返回的数据 
            //alert(data); 
            //4.将结果显示在页面中 
            $("#div1").html(data); 
        } 
    </script> 
  </head> 
   
  <body> 
    用户名:<input type="text" id="userName" onblur="test();"/><span id="div1" style="color: red"></span> 
    <br/> 
    密码:<input type="password" id="password" /><br/> 
    邮箱:<input type="text" id="mail" /> 
  </body> 
</html> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>ajax.html</title>
 <script type="text/javascript" src="/Ajax/js/jquery-1.7.2.js"></script>
 <script type="text/javascript">
  function test(){
   //1.获取文本框中的值
   var value = $("#userName").val();
   //2.将文本框中的内容发送给后台服务器
   //使用jQuery的XMLHTTPRequest的方法的封装
   $.get("/Ajax/servlet/AjaxServlet?name="+value,null,callback);
  }
  
  function callback(data){//回调函数
   //3.接受服务器的返回的数据
   //alert(data);
   //4.将结果显示在页面中
   $("#div1").html(data);
  }
 </script>
  </head>
 
  <body>
    用户名:<input type="text" id="userName" onblur="test();"/><span id="div1" style="color: red"></span>
 <br/>
    密码:<input type="password" id="password" /><br/>
    邮箱:<input type="text" id="mail" />
  </body>
</html>

大部分讲解都已经写在了代码的注释上面,其实不需要解释什么,这个是使用get方面后缀数据传递给后台服务器的。

 


当然,后台服务器代码如下

[java]
package com.bird.servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
public class AjaxServlet extends HttpServlet { 
 
    /**
     * 获取前台传递过来的参数
     */ 
    private static final long serialVersionUID = 1L; 
 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException { 
        request.setCharacterEncoding("UTF-8"); 
        response.setContentType("text/html;charset=UTF-8"); 
        String name = request.getParameter("name"); 
        name = new String(name.getBytes("ISO-8859-1"),"UTF-8"); 
        PrintWriter out = response.getWriter(); 
        if(name.equals("bird")){ 
            out.println("用户名"+name+"已经存在"); 
             
        }else{ 
            out.println("用户名不存在,可以使用"); 
        } 
    } 
 
    public void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException { 
        doGet(request, response); 
 
    } 
 

package com.bird.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxServlet extends HttpServlet {

 /**
  * 获取前台传递过来的参数 www.zzzyk.com
  */
 private static final long serialVersionUID = 1L;

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  request.setCharacterEncoding("UTF-8");
  response.setContentType("text/html;charset=UTF-8");
  String name = request.getParameter("name");
  name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
  PrintWriter out = response.getWriter();
  if(name.equals("bird")){
   out.

补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,