AJAX - 使用参数运行servlet并检索值

问题描述:

我只想将一个按钮值从.jsp文件发送到一个servlet,该servlet然后从特定于该按钮的数据库检索值将值发送回页面。例如...AJAX - 使用参数运行servlet并检索值

例如:如果用户单击值为1的按钮,他们应该从数据库中检索用户1的数据。

我想我的问题是......我将如何去发送一个参数给一个servlet,让servlet响应所点击的按钮上的数据,而不刷新页面。

您可以简单地发送数据和ajax请求,并从Servlet中的请求对象中检索它。

第一步 - 按键值发送到JavaScript函数:

<button type="button" value="value1" onclick="loadDoc(this.value)">Get Content</button> 

第二步 - 创建javacript函数来获取此值和Ajax请求发送:

function loadDoc(data) { 
var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
if (this.readyState == 4 && this.status == 200) { 
    document.getElementById("demo").innerHTML = 
    this.responseText; 
} 
}; 
xhttp.open("GET", "http://www.example.com?data1="+data, true); 
xhttp.send(); 
} 

第三步 - 使用你的HttpServletRequest来检索servlet中的这些数据:

String reqData = request.getParameter("data1"); 

这可以很容易地使用基本的jQuery完成。 在jsp/html部分中,您只需定义一个需要传递给servlet的reuqired值的按钮。例如:

<button id="toClick" value="1"></button> 

然后在jquery部分,你应该给这个特定的按钮被点击时的ajax调用。类似这样的,

$("#toClick").click(function() { 
$.ajax({ 
    url:"/servlet_goes_here", 
    data: {id:$("#toClick").val()} 
}) 
.done(function(response) { 
    alert("do whatever you want to do with the response") 
}); 
}); 

响应将是来自servlet端的json响应。如果没有要求/没有json响应,你可以避开done块,或者用它来测试ajax调用。