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调用。