我有以下javaScript
功能:
function loadSomething() {
var xhttp;
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET", "javaservlet.java", true);
xhttp.send();
}
我想从 Java Servlet
中获取一个 int 值- “javaservlet”。我应该在javaservlet中编写什么代码doGet()
方法来发送一个值,这样我就可以在 javaScript
中获取并使用它?谢谢!
最佳答案
因此,您希望将 servlet 中的某些内容返回到您调用该 servlet 的 javascript。方法如下,使用这些代码行创建一个 XMLHttpRequest 对象
var reqObject = new XMLHttpRequst(); or new ActiveXObject("Microsoft.XMLHTTP");
现在使用 XMLHttpRequst 的 open 方法向 servlet 的 get 或 post 方法发出请求,您可以简单地这样做
reqObject.open("GET/POST", "ServletName", true);
现在,如果您已向服务器发出请求并且对象 reqObject
的状态正在更改,那么您将希望查看正在进行的更改。当对象的状态改变时调用函数
reqObject.onreadystatechange = processRespose;
如果您想将某些内容作为参数发送给 servlet,请使用 send 方法,否则发送 null。
reqObject.send(null);
现在,如果 servlet 在您从 .open
调用的方法中返回某些内容,则该对象的状态将发生更改,并且将调用函数 processResponse。
function processResponse(){
//check whether the response form the server is intact and correct
if(reqObject.status==200 && reqObject.readyState==200){
//simply means we got the response correctly
//Now you can get the response by
var res = reqObject.responseText;
}
}
您可以在此处阅读有关对象方法和属性的信息
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
在 java servlet 中,您只需使用 PrintWriter 的对象发送预期的字符串。 Get 方法的粗略版本看起来有点像这样
doGet(request, response){
PrintWriter out = response.getWriter();
out.println("Javasrvlet");
}
关于javascript - 如何在Java中使用AJAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37050273/