我想在同一页面中打印 servlet 的响应而不刷新页面。我写了这段代码,但我不明白为什么它打开页面:http://localhost:8080/..../NewServlet.do而不是在同一页面中显示结果。
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var form = $('#form1');
form.submit(function () {
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
success: function (data) {
var result=data;
$('#result').attr("value",result);
}
});
return false;
}); </script>
</head>
<body>
<form name=form1 action="NewServlet.do" method="post">
<select id='choose' class='form-control' name='choose'>
<option value='prodotti'>Products</option>
<option value='login'>Objects</option>
</select>
<button type='submit' class='btn btn-default' style="width: 40%;">SUBMIT</button>
<div id='result'>
/// I want the servlet's response is placed here.
</div>
</form>
</body>
<html>
我的servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
String i = request.getParameter("choose");
PrintWriter out = response.getWriter();
out.println("<br>"+i+"</br>");
}
最佳答案
它实际上不是关于Java或JSP的,而是关于JavaScript的。尝试一下
form.submit(function (event) {
event.preventDefault(); // magic!
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
success: function (data) {
var result=data;
$('#result').attr("value",result);
}
});
return false;
});
关于java - Servlet的响应不刷新JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38741731/