我想要做的就是将.jsp文件中的按钮值发送到servlet,然后从特定于按钮值的数据库中检索值,将值发送回页面。例如......
例如:如果用户单击值为1的按钮,则应从数据库中检索用户1的数据。
我想我的问题是......如何将一个参数发送到servlet并让servlet在点击按钮时响应所请求的数据,而不会刷新页面。
答案 0 :(得分:1)
您可以简单地将数据与ajax请求一起发送,并从Servlet中的请求对象中检索它。
第1步 - 将按钮值发送到javascript函数:
<button type="button" value="value1" onclick="loadDoc(this.value)">Get Content</button>
Step2 - 创建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();
}
Step3 - 使用您的HttpServletRequest在servlet中检索此数据:
String reqData = request.getParameter("data1");
答案 1 :(得分:0)
这可以使用基本的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响应,你可以避免使用完成块,或者用它来测试ajax调用。