Ajax, Asynchronous JAvaScript and XML.
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" 是工程名;