在使用javaweb时我们常常会用到ajax,可是在刚刚接触ajax时便会思考,ajax有什么用,为什么需要用到ajax,难道没有别的方法使界面和后端有联系了吗?
当然,现在我也只是刚刚使用ajx,所以对ajx的理解还是很浅显的。
首先看这几行代码
第一个button会调用test的doget方法,进而实现前后端的联系。
第二个button会调用js 的ajax()的方法。(以下是js的代码)
function ajax(){
alert("hello");
var xmlhttprequest =new XMLHttpRequest();
xmlhttprequest.open("GET","http://localhost:8080/exercise2/test_ajx",true);
xmlhttprequest.send();
}
很显然这一段代码是实现调用test_ajx的doget方法,进而实现前后端的联系。
似乎从功能层面上来说,第一种和使用ajax都能使前后端建立联系,但是实际上来说这两种有着很大区别,至少在运用场景上有很大区别。
第一种方法,一般运用在账户登录时使用,而第二种一般来说使用场景可以更复杂,更多变。(实际上使用ajax是对局部的作用,不需要刷新整个界面即可显示,这也是ajax的特点之一)
其实在使用ajax对前端数据获得和第一种还是有点区别的,主要获得方式是
open("get","http://localhost:8080/exercise2/test_ajx?name="+document.getElementById("content").value,true);
这里相当于传了一个数据name,那么java 代码中只要使用
req.getParameter("name");
就能获得前端的数据.这里介绍几个js的代码可以获得前端的内容
document.getElementById()
document.getElementsByName()
document.getElementsByClassName()
document.getElementsByTagName()
上面分别可以获得id,name,class,tag的对象
这些对象有value和innerHTML的属性
两个虽然类似,但是区别还是很大的。
再补充几个方法:
resp.getWriter().write();可以返回,java代码中的数据
接收
xmlhttprequest.responseText;可以获得返回的数据。
xhr.onreadystatechange = function() { // 判断请求完成并且成功
if (xhr.readyState == 4 && xhr.status == 200)
{ document.getElementById("div01").innerHTML =xhr.responseText; } }
表示ajax请求成功
总结:
以上使用的方法实际上很多已经被淘汰了,不过便于理解还是要多多了解,现在使用的方法大多是用jquery实现。实际上,我有很多观点有一定的错误,希望提出,一定会积极改正。




