AJAX复习
Ajax:
Ajax:采用的是异步刷新的机制,不会影响当前页面。
采用的是javascript的编写。
核心对象:
1.XMLHttpRequest对象(大部分浏览器都支持)
2.ActiveXObject对象(低版本IE浏览器)
原生Ajax:
JSP:
<%@ 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>
<script type="text/javascript">
function getAjax(){
// 1.定义一个 Ajax对象
var ajaxRequest = null;
// 2.根据浏览器的不同创建Ajax对象
if(window.XMLHttpRequest){
ajaxRequest = new XMLHttpRequest();
}else if(window.ActiveXObject){
ajaxRequest = new ActiveXObject();
}else{
alert("你的浏览器 不支持Ajax技术");
}
if(ajaxRequest !=null ){
// 3.建立与服务器的连接
ajaxRequest.open("get","ajaxTest.action?name=刘波");
ajaxRequest.onreadystatechange= function(){
// 4.监听ajax的请求状态
/*
0: 请求未初始化
1:建立服务器的连接
2:正在发送请求
3:请求正在处理中
4:请求处理完毕,并响应以完成
*/
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200){
alert(ajaxRequest.responseText);
}
}
}
// 5.发送Ajax请求
ajaxRequest.send(null);
}
</script>
</head>
<body>
<input type="button" value="测试" οnclick="getAjax()" />
</body>
</html>
Servlet:
package com.liubo.web.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AjaxTest extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置get请求的字符编码
String name = req.getParameter("name");
name = new String(name.getBytes("iso-8859-1"), "utf-8");
System.out.println(name);
// 设置响应的字符编码
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().println(name);
}
}
POST请求:
JSP:
<%@ 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>
<script type="text/javascript">
function getAjax(){
// 1.定义一个 Ajax对象
var ajaxRequest = null;
// 2.根据浏览器的不同创建Ajax对象
if(window.XMLHttpRequest){
ajaxRequest = new XMLHttpRequest();
}else if(window.ActiveXObject){
ajaxRequest = new ActiveXObject();
}else{
alert("你的浏览器 不支持Ajax技术");
}
if(ajaxRequest !=null ){
// 3.建立与服务器的连接
ajaxRequest.open("post","ajaxTest.action");
ajaxRequest.onreadystatechange= function(){
// 4.监听ajax的请求状态
/*
0: 请求未初始化
1:建立服务器的连接
2:正在发送请求
3:请求正在处理中
4:请求处理完毕,并响应以完成
*/
if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200){
alert(ajaxRequest.responseText);
}
}
}
// 5.设置请求消息头
ajaxRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
// 6.发送Ajax请求
ajaxRequest.send("name=科比");
}
</script>
</head>
<body>
<input type="button" value="测试" οnclick="getAjax()" />
</body>
</html>
Servlet:
package com.liubo.web.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AjaxTest extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置get请求的字符编码
req.setCharacterEncoding("utf-8");
String name = req.getParameter("name");
System.out.println(name);
// 设置响应的字符编码
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().println(name);
}
}