我在JSP中有一个表单,它有两个输入框,还有提交按钮和清除按钮,如下所示
<form name="loginForm" method="GET" action="Ajaxexample" id="loginForm">
<table>
<tr>
<td>From Date</td><td><input type="text" name="n1" value=""/></td>
</tr>
<tr>
<td>End Date</td><td><input type="text" name="n2" value=""/></td>
</tr>
<tr></tr>
<tr>
<td><input type="submit" name="validpro_insert" value="Insert"></td>
<td><input type="reset" name="validpro_clear" value="Clear"></td>
</tr>
</table>
</form>由于我已经调用servlet,使用表单标记中的get方法,该方法用于通过JDBC从数据库中获取数据,并处理响应,因此我使用ajax如下所示
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
System.out.println("In get");
PrintWriter out = response.getWriter();
String responseStr = "";
responseStr = addUser(request); // Return either error/success
System.out.println("Reponse:" + responseStr);
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
response.getWriter().write(responseStr);
out.print(responseStr);由于我必须编写一些代码来从servlet中的DB获取数据,并将响应返回给ajax,该响应处理相同jsp上的成功和错误,如下所示
<script type="text/javascript" src="js/jq.js"></script>
<script type="text/javascript">
var form = $('#loginForm');
form.submit(function () {
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
error: function (theRequest,textStatus, errorThrown) {
// Success = false;
alert (theRequest.responseText);
alert(errorThrown);
alert('No graph found');//doesnt goes here
},
success: function (data) {
var result=data;
alert(result);
}
});
return false;
});
</script>但问题是,我无法从ajax中的servlet中获得任何价值来处理成功或错误。
由于servlet ()方法代码..如果还有其他问题,请告诉我。任何帮助都应该受到感谢。
发布于 2018-02-15 09:37:19
使用代码中的这些更改,它将成功运行。
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter())
String responseSend = "";
String from = request.getParameter("n1");
String to = request.getParameter("n2");
if ((from == null) || (from.equals(""))) {
System.out.println("From null");
responseSend = "error";
}
else if ((to == null) || (to.equals(""))) {
System.out.println("End null");
responseSend = "error";
}
else{
//jdbc code
System.out.println("got it");
int n1 = Integer.parseInt(request.getParameter("n1"));
int n2 = Integer.parseInt(request.getParameter("n2"));
responseSend = "code";
}
out.print(responseSend);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("In get");
processRequest(request, response);
}由于我添加了一个带有请求和响应参数的新方法processrequest(),它将在同一个jsp.Firstly上将文本/HTML返回到我们的Ajax代码中,我对ajax代码中的成功/错误感到困惑,但现在我发现
error: function (theRequest,textStatus, errorThrown) {
alert (theRequest.responseText);
alert(errorThrown);
},
success: function (data) {
var result=data;
alert(result);
} 当在给定的URL上没有找到servlet时,将调用错误,当它成功地使用给定类型和servlet URL调用servlet时,将调用成功。
https://stackoverflow.com/questions/48800333
复制相似问题