Ajax简介与用法

Ajax简介

AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML),Ajax可以实现异步请求。AJAX 是一种在 2005 年由 Google 推广开来的编程模式。

Ajax简介与用法

 Ajax语法介绍

学习使用Ajax主要就是学习XMLHttpRequest对象的方法和属性

Ajax简介与用法

Ajax简介与用法 第一个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>
</head>
<!-- ajax
ajax可以实现异步请求
学习使用ajax主要就是学习XMLHttpRequset对象的方法和属性
 -->
<body>
<!-- 第一个ajax -->
<script type="text/javascript">

//xmlHttp不能定义到外面,要把它设为全局变量。
var xmlHttp;
	function fun(){
		//1.创建XMLHttpRequest对象
		
		try { //Firefox, Opera 8.0+, Safari
			//谷歌、火狐浏览器支持
			xmlHttp = new XMLHttpRequest();
		} catch (e) {
			try { //Internet Explorer
				//IE6浏览器支持,不支持IE6以上的
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					//支持IE6以上的
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
					alert("不支持Ajax!");
				}
			}
		}
		//2.建立与服务器的连接
		//为什么获取当前时间,因为让它发送多次请求,不被认为是一次请求
		//get方式传值
		xmlHttp.open("GET","${pageContext.request.contextPath}/AjaxDemo?name=haoren&password=123&time="+new Date().getTime());
		//3.向服务器发送数据
		xmlHttp.send(null);
		//4.设置回调函数,接受服务器返回的数据
		//注意:readState的状态变化都会触发onreadstatechange
		xmlHttp.onreadystatechange = showInfo;
	}
	
//回调函数
	function showInfo(){
		//xmlHttp.readyState	4表示已完成
		if(xmlHttp.readyState == 4){
			if(xmlHttp.status == 200 || xmlHttp.status == 304){//304表示服务器的内容没有变化、200表示请求成功
				document.getElementById("div1").innerHTML = xmlHttp.responseText;
			}
		}
	}
</script>

<a href="#" onclick="fun()">点击</a>
<div style="width:100px;height:100px;border:1px solid blue;" id="div1"></div>
</body>
</html>

servlet代码:

package com.test.ajax;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.xml.internal.fastinfoset.stax.events.ProcessingInstructionEvent;

/**
 * ajax请求
 * 接受ajax请求,返回字符串
 */
@WebServlet("/AjaxDemo")
public class AjaxDemo extends HttpServlet {
	
	protected 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");
		String password = request.getParameter("password");
		System.out.println(name+";"+password);
		response.getWriter().print("小日本不是人");
	}

	/**
	 * @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.get方式传值

xmlHttp.open("get","${pageContext.request.contextPath}/servlet/TestServlet?name=haoren							&password=123&time="+ new Date().getTime());	
xmlHttp.send(null);

2.post方式传值

xmlHttp.open("post","${pageContext.request.contextPath}/servlet/TestServlet?time="+ new Date().getTime());	
//post方式是通过send把参数发送给服务器端,所以一定要指定发的类型,					
//"content-type","application/x-www-form-urlencoded"为普通的表单类型,表单默认就是这个	型
xmlHttp.setRequestHeader("content-type","application/x-www-form-urlencoded");
xmlHttp.send("name=好人&password=123");

上一篇:登录提示ajax入门


下一篇:跨域