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

时间:2017-07-27 09:18:32

标签: javascript ajax xml jsp servlets

我想要做的就是将.jsp文件中的按钮值发送到servlet,然后从特定于按钮值的数据库中检索值,将值发送回页面。例如......

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

我想我的问题是......如何将一个参数发送到servlet并让servlet在点击按钮时响应所请求的数据,而不会刷新页面。

2 个答案:

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