Ajax?
  • AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
  • 一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
Ajax请求的date数据格式有三种(本文以标准参数格式为例讲解后台如何接收参数)
  • json对象格式
  • json字符串格式
  • 标准参数格式
首先先了解 json?
  • JSON 指的是 JavaScript Object Notation;是轻量级的数据交换格式; 独立于语言 *;是“自描述的”且易于理解
  • JSON 语法规则
    • 数据是名称/值对
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组
  • [1] json对象格式
{nickname:nickname,region:region,signature:signature}

ajax请求:

$.ajax({
			type : "POST",
			url : "servlet/TestServlet", // servlet映射地址
			statusCode : {
				404 : function() {
					alert("url地址异常!");
				}
			},
			cache : false,
			data:{nickname:nickname,region:region,signature:signature},//json对象形式
			success : function(result) {
				alert(result);//将后台返回结果弹出
			}
		})
  • [2] json字符串格式
{nickname: 'nickname', region: 'region',signature: 'signature'}

ajax请求:

$.ajax({
			type : "POST",
			url : "servlet/TestServlet", // servlet映射地址
			statusCode : {
				404 : function() {
					alert("url地址异常!");
				}
			},
			cache : false,
			data:JSON.stringify({nickname: 'nickname', region: 'region',signature: 'signature'}),//json字符串形式
			dataType: "json",
			contentType: 'application/json;charset=utf-8', 
			success : function(result) {
				alert(result);//将后台返回结果弹出
			}
		})
  • [3] 标准参数格式
"nickname=" + nickname + "®ion=" + region + "&signature="+ signature

ajax请求:

$.ajax({
			type : "POST",
			url : "servlet/TestServlet", // servlet映射地址
			statusCode : {
				404 : function() {
					alert("url地址异常!");
				}
			},
			cache : false,
			data : "nickname=" + nickname + "®ion=" + region + "&signature="+ signature,//标准参数形式
			success : function(result) {
				alert(result);//将后台返回结果弹出
			}
		})
  • GET 还是 POST?
    get 比 post 更简单更快,可用于大多数情况下。不过,在以下情况始终使用 post:
    • 缓存文件不是选项(更新服务器上的文件或数据库)
    • 向服务器发送大量数据(post无大小限制)
    • 发送用户输入(可包含未知字符),post 比 get 更强大更安全
    post请求能用json对象,json字符串,标准参数类型传递参数;而get请求不能用json字符串类型传递参数 ,因为get请求无法将json字符串解析成参数 ,因此以上三种格式统一使用了post。
    ps:使用字符串形式传递参数时,需要添加 contentType: 'application/json;charset=utf-8',
后台接收参数?
  • 1、3两种方式可直接使用request.getParameter接收ajax请求;json字符串格式则需要结合@RequestBody解析
protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		String nickname = request.getParameter("nickname");
		String region = request.getParameter("region");
		String signature = request.getParameter("signature");

在另一篇文章swfupload图片上传中,博主会讲解swfupload上传插件的使用实例,同时会涉及到ajax请求及后台响应,有兴趣的读者戳我