ajax之get、post、send

这是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>ajax获取数据</title>
<script type="text/javascript">
function loadName(){
	// 创建XMLHttpRequest
	var XMLHttp;
	// 判断浏览器内核是否支持XMLHttpRequest对象
	if (window.XMLHttpRequest) {
		XMLHttp = new XMLHttpRequest;
	}else {
		XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	// 打印状态
	alert("readyState状态:"+XMLHttp.readyState+";status状态:"+XMLHttp.status);
	
	// 当状态发生改变时就会调用onreadystatechange事件,重写onreadystatechange
	XMLHttp.onreadystatechange = function() {
		// 打印状态
		alert("readyState状态:"+XMLHttp.readyState+";status状态:"+XMLHttp.status);
		if(XMLHttp.readyState == 4 && XMLHttp.status == 200) {
			// 获取字符串形式的响应数据
			alert("XMLHttp.responseText:"+XMLHttp.responseText+";XMLHttp.responseXML:"+XMLHttp.responseXML);
			document.getElementById("name").value = XMLHttp.responseText;
		}
	}
	
/* 	// 通过XMLHttp对象请求后台(GET方式)
	// 规定请求的类型、url、是否异步处理
	XMLHttp.open("get", "getAjaxName?name=李程&age=11", true);
	// 将请求发送到服务器
	XMLHttp.send(); */
	
/* 	// 通过XMLHttp对象请求后台(POST方式)
	// 规定请求的类型、url、是否异步处理
	XMLHttp.open("post", "getAjaxName?name=李程&age=11", true);
	// 将请求发送到服务器
	XMLHttp.send(); */
	
 	// 通过XMLHttp对象请求后台(模拟HTML)
	// 规定请求的类型、url、是否异步处理
	XMLHttp.open("post", "getAjaxName", true);
	// 设置头信息
	XMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	// 将请求发送到服务器
	XMLHttp.send("name=李程&age=11"); 
}
</script>
</head>
<body>
<div align="center">
<input type="button" οnclick="loadName()" value="Ajax获取数据">  <input type="text" id="name" value="" />
</div>
</body>
</html>

这是处理ajax请求的servlet

package com.java1234.web;

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 GetAjaxNameServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 设置编码
		request.setCharacterEncoding("UTF-8");
		// 接收参数
		String name = request.getParameter("name");
		String age = request.getParameter("age");
		// 输出
		System.out.println("name:"+name+"\nage:"+age);
		
		// 返回内容
		// 设置返回类型
		response.setContentType("text/html;charset=UTF-8");
		// 创建输出流
		PrintWriter out = response.getWriter();
		// 输出
		out.print("ajax返回文本");
		// 刷新
		out.flush();
		// 关闭流
		out.close();
	}

}

1.使用get方式请求后台时出现中文乱码,首先保证页面编码,和请求编码设置为utf-8。然后可以在tomcat的server.xml文件中
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" />
这句话后面加URIEncoding="UTF-8",如下
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

2.将参数放到send中传到后台时,要在send之前设置头信息,语句为

XMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
否则后台接收不到参数。我开始在这句话中还设置了编码信息,但是后台接收不到参数值,去掉编码信息就可以接收了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zerlinda_Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值