Ajax Java 交互(json)

 

 

         很多朋友对于Ajax 不是很理解, 其实Ajax 并不是那些比较流行的框架(jQuery.....)。Ajax是异步的javascript 和 XML

的缩写。其实IE早就实现了异步交互的方式只是没有大规模的应用。后来GOOGLE把他用起来了后期才出现了很多像jQuery

这样的框架。现在跟大家分享一下原生态的Ajax应用。

 

1.编写html页面

<body>

	<input type="button" value="click here" οnclick="ajax();" />
	<br>

	<input type="text" id="value1" />
	<input type="text" id="value2" />


	<div id="div"></div>
</body>
</html>


 

2.在jsp中编写Ajax

<script type="text/javascript">
	var xmlHttpRequest = null; //声明一个空的 xmlHttpRequest对象

	function ajax()
	{

		if (window.ActiveXObject)
		{ //IE浏览器

			xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");

		}
		else if (window.XMLHttpRequest)
		{ //非IE浏览器

			xmlHttpRequest = new XMLHttpRequest;
		}

		if (null != xmlHttpRequest)
		{

			//获取HTML中的文本输入域值。
			var v1 = document.getElementById("value1").value;
			var v2 = document.getElementById("value2").value;

			//设置好ajax的 请求方式、地址、是否异步
			//xmlHttpRequest.open("GET", "AjaxServlet?v1=" + v1 + "&v2=" + v2, true);
			//xmlHttpRequest.send(); //真正的发送请求
			
			xmlHttpRequest.open("POST", "AjaxServlet", true);

			//Ajax的回调函数
			xmlHttpRequest.onreadystatechange = ajaxCallBack;

			//采用POST提交要设置请求头参数
			xmlHttpRequest.setRequestHeader("Content-type",
				"application/x-www-form-urlencoded");

			//采用POST提交
			xmlHttpRequest.send("v1=" + v1 + "&v2=" + v2);//真正的发送请求
		}
	}

	//Ajax的回调函数
	function ajaxCallBack()
	{

		if (xmlHttpRequest.readyState == 4)
		{ //Ajax引擎4个阶段,4为最后一个阶段

			if (xmlHttpRequest.status == 200)
			{

				//XMLHttpReques对象取得服务器相应信息(文本、XML)
				var responseText = xmlHttpRequest.responseText;			

				//将结果写入div中
				//document.getElementById("div").innerHTML = responseText;
				
				//ajax解析json第一种方法
				eval("var json=" + responseText);
				document.getElementById("div").innerHTML = json.name;
				
				//ajax解析json第二种方法
				//var json =eval("[" + responseText + "]");
				//document.getElementById("div").innerHTML = json[0].name;
			}
			else
			{

				document.getElementById("div").innerHTML = "服务器错误";
			}

		}
	}
</script>


 

 

 

 

3.编写后台Servlet

 

package com.ajax.servlet;

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 AjaxServlet extends HttpServlet
{

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException
	{

		PrintWriter out = response.getWriter();

		// out.print("Hello World");

		String value1 = request.getParameter("v1");
		String value2 = request.getParameter("v2");

		out.print(value1 + value2);
		out.flush();
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException
	{

		PrintWriter out = response.getWriter();

		String value1 = request.getParameter("v1");
		String value2 = request.getParameter("v2");

//		out.print(value1 + value2);
		String json = "{" + '"'+ "name" + '"'  +":" + '"' + value1 + '"' + "," + '"' + "age" + '"' +":" + '"' + "20"+ '"' +"}" ;
		out.print(json);
		out.flush();
	}

}


 

4.一个原生态的Ajax应用编写完成运行效果

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐