ajax之简单示例

Ajax,AsynchronousJAvaScriptandXML.

Ajax让web开发者创建交互式的网站,功能比缓慢的、静态的网站更像桌面应用。

多种方法让Ajax可以在浏览器中直接放置交互,取代浏览器不得不频繁联系web服务器获取信息的状况。

当访问一个Ajax站点,浏览器象通常那样装载HTML页面。

然后,Ajax使用JavaScript进行交互。当一个站点访问者请求更多的信息时--例如,

装载一个地图--JavaScript产生请求。

JavaScript不是向web站点发送一个请求,而是使用API调用XMLHttpRequest把数据从后台转到前台。

(被请求的数据通常是XML格式,尽管不是必须的)

这使得当XMLHttpRequest处理和服务器的通讯时,网页和JavaScript能够继续和用户进行交互。

JavaScript通过XMLHttpRequest处理信息,然后使用或显示它。

但仅仅需要这些数据的部分页面被刷新。这提高了信息的显示速度,因为不必改变整个页面。

代码部分:

function forAjax() {
		alert("js forAjax");

		// var url = '/wicketHello/tempFile/ajax01.txt';
                // this path will be related the "servlet"
		var url = '/wicketHello/ajaxtest?flg=1&word=fuck';
		xmlhttp = null;
		if (window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc.
			xmlhttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {// code for IE6, IE5
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		if (xmlhttp != null) {
			[b]xmlhttp.onreadystatechange = state_Change;
			xmlhttp.open("GET", url, true);
			xmlhttp.send(null);[/b]
		} else {
			alert("Your browser does not support XMLHTTP.");
		}
	}

	function state_Change() {
		if (xmlhttp.readyState == 4) {// 4 = "loaded"
			if (xmlhttp.status == 200) {// 200 = "OK"
				//document.getElementById('ajaxMsg').innerHTML = xmlhttp.statusText;
				document.getElementById('divAjaxMsg').innerHTML = xmlhttp.responseText;
			} else {
				alert("Problem retrieving XML data:" + xmlhttp.statusText);
			}
		}
	}
<div id="divAjax">
    <input type="button" value="Ajax Test" onclick="forAjax()"/>
    <span wicket:id="ajaxMsg">Message goes here</span>
    <br />
    gogogogog
    <div id="divAjaxMsg"/>
    </div>

关键,servelet部分:

String par1 = request.getParameter("flg");
		String par2 = request.getParameter("word");
		// it is nessary to use "printWriter" to output the 
                // infomation(String, json, xml...)
		PrintWriter out = response.getWriter();
		out.println("these words come from servlet."+ " par1: " + par1 + " par2:" + par2);
		out.flush();
		out.close();

web.xml

<servlet-mapping>
    	<servlet-name>ajax</servlet-name>
    	<url-pattern>/ajaxtest</url-pattern>
  </servlet-mapping>

备注:

"wicketHello"是工程名;

相关推荐