ajax

    1. Ajax简介

 

Ajax最初是由 Google公司在开发Google地图的使用,后来被大量使用

AJAX应用程序与浏览器和平台无关的

    1. 怎么实现ajax(原生版)
  • Js原生版实现
  • Jquery实现

 

Js原生版实现

1 创建XMLHttpRequest对象

2 然后用这个对象操作open()方法 即 XMLHttpRequest.open("post",url,true);

3 用这个对象操作onreadystatechange这个属性  即XMLHttpRequest.onreadystatechange=callback; //指定响应函数

onreadystatechange=函数名;   //注意这里直接加函数名,而不是function(),否则函数将无法正常执行

4 用这个对象操作send()方法 即 XMLHttpRequest.send(null);

正确的顺序  1 3 2 4

先创建

再设置属性

然后打开

最后发送

 

案例:使用ajax来验证注册的用户名是否存在

代码

页面

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<style type="text/css">

span {

    color: red;

}

</style>

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>

<script type="text/javascript">

 

    function checkUser(username) {

       //获取用户名的值

       var uname = $(username).val();

       //使用ajax异步验证该用户名是否被注册

       //1.创建xmlhttprequest对象

       var xmlhttp;

       if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari

           xmlhttp = new XMLHttpRequest();

       } else {// code for IE6, IE5

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

       }

       //2设置回调函数

       xmlhttp.onreadystatechange=function(){

           if(xmlhttp.status==200&&xmlhttp.readyState==4){

               $("#checkuser").html(xmlhttp.responseText);  

           }

          

          

       }

       //3.open()

       var url="UserServlet.htm?username="+uname;

       xmlhttp.open("get", url, true);

       //4send

       xmlhttp.send();

 

    }

</script>

</head>

<body>

    <form method="post" action="#">

       用户名<input type="text" name="uname" onblur="checkUser(this);">

       <span id="checkuser"></span> <br> 密码:<input type="password" name="pwd"><br>

       <input type="submit" value="注册">

    </form>

</body>

</html>

 

Servlet

package com.ajax.servlet;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/**

 * Servlet implementation class UserServlet

 */

@WebServlet("/UserServlet.htm")

public class UserServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

 

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       response.setContentType("text/html; charset=UTF-8");

       //

       String username = request.getParameter("username");

       PrintWriter pWriter = response.getWriter();

       System.out.println("username:" + username);

       if ("admin".equals(username)) {

           pWriter.write("该用户已被注册");

       } else {

           pWriter.write("放心注册");

       }

       pWriter.flush();

       pWriter.close();

 

    }

 

    /**

     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

     *      response)

     */

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

           throws ServletException, IOException {

       // TODO Auto-generated method stub

       doGet(request, response);

    }

 

}

 

    1. Jquery实现Ajax

$.ajax({

           url : "UserServlet.htm",

           type : "get",

           data : {

              "username" : uname

           },

           dataType : "text",

           success : function(data) {

              $("#checkuser").html(data);

           }

 

       });

    1. Json

      1. JSON 语法规则

JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等

案例: json表示对象

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>

<script type="text/javascript">

    //1.定义json对象

    var user = {

       "id" : "001",

       "username" : "kevin",

       "pwd" : "88888"

    };

    $(function() {

       $("#json").html(

              "<ul><li>编号:" + user.id + "</li><li>用户名:" + user.username

                     + "</li><li>密码:" + user.pwd + "</li></ul>");

 

    });

</script>

</head>

<body>

    <div id="json">

       <!-- <ul><li>编号:001</li><li>用户名:001</li><li>密码:001</li></ul> -->

 

    </div>

 

 

</body>

</html>

 

Json表示普通的数组

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>

<script type="text/javascript">

   

    $(function() {

       //1定义json的普通数组

       var country=["大中国","小日本","韩国棒子"];

       //2 json数组转为jquery对象

       $(country).each(function(i){

      $("#country").append('<option value="'+i+'" >'+this+'</option>');

       });

 

    });

</script>

</head>

<body>

    国家:<select id="country">

    <option value="-1" >请选择</option>

    </select>

 

 

</body>

</html>

 

 

Json表示对象数组 动态添加到table

<script type="text/javascript" src="js/jquery-1.8.3.js"></script>

<script type="text/javascript">

    $(function() {

       //1定义json的对象数组

       var users = [ {

           "id" : "001",

           "username" : "kevin",

           "pwd" : "88888"

       }, {

           "id" : "002",

           "username" : "linda",

           "pwd" : "6666"

       }, {

           "id" : "003",

           "username" : "hanmeimei",

           "pwd" : "77777"

       } ];

       //2 json数组转为jquery对象

       $(users).each(

              function(i) {

                  $("#users").append(

                         '<tr><td>' + this.id + '</td><td>' + this.username

                                + '</td><td>' + this.pwd + '</td></tr>');

              });

 

    });

</script>

</head>

<body>

    <table id="users" border="1" style="text-align: center;">

       <tr>

           <td>编号</td>

           <td>姓名</td>

           <td>密码</td>

       </tr>

    </table>

 

 

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值