<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<title>This is my JSP page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style type="text/css">
div{
border: 1px solid red;
width: 400px;
height: 300px;
}
</style>
</head>

<body>
<input type="button" value="Ajax" onclick="testAjax()">
<div id="msg"></div>
</body>
<script type="text/javascript">

function testAjax(){
//document.getElementById("msg").innerHTML = "加载中...";
//id;
var request;
//创建 request对象
if(window.XMLHttpRequest){ //兼容性
request = new XMLHttpRequest();
}else if(window.ActiveXObject){ //针对IE
request = new ActiveXObject("Msxml2.XMLHTTP");
}

//写监听 去check request的状态
request.onreadystatechange = function(){
//
//console.log(request.readyState);
if(request.readyState == 4){
//得到 后台写出的数据

//当加载成功以后
if(request.status == 200){
//得到的的是一个json字符串
var data = request.responseText;
//将json字符串转换为json对象
eval("data = "+data);
document.getElementById("msg").innerHTML = data.password;
}else if(request.status == 404){
document.getElementById("msg").innerHTML = "资源没有找到";
}else if(request.status == 500){
document.getElementById("msg").innerHTML = "服务器错误";
}

}else{
document.getElementById("msg").innerHTML = "<img src=\"images/loading.gif\" />";
}
};

//打开请求
//如果在 地址栏上面 的参数 的值中包含 # 应该将其编码 然后在传递
request.open("post", "ajax/ajaxController?name="+encodeURIComponent("lisi#123")+"&d="+new Date().getTime());
//encodeURIComponent(uriComponent)
//发送数据
//如果没有数据 则写null 不然 其他浏览器可能会报错


//如果在 send方法中传参数 则一定要设置 请求头信息中的 Content-Type 为 application/x-www-form-urlencoded
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

//如果是 post传参 他和 参数的组织方式 是有关系的
request.send("username=lisi#123&age=123");
}

</script>
</html>