Java中从JSP到servlet的Ajax post?
所以,这就是我想要实现的目标。假设我有一张表格,我填写了详细信息,然后点击提交。数据将被插入到数据库中。现在,我的想法是,我希望使用ajax显示刚才添加到DB中的数据,而不必刷新页面。我正在学习使用ajax的想法,所以我有点迷茫。有人能提出建议吗。 我的想法是,当我单击submit时,将触发两个事件。一个是将数据插入数据库,另一个是从数据库获取数据并将其显示在标记中 这是我的servlet中的get方法。 Home.javaJava中从JSP到servlet的Ajax post?,java,jquery,ajax,jsp,servlets,Java,Jquery,Ajax,Jsp,Servlets,所以,这就是我想要实现的目标。假设我有一张表格,我填写了详细信息,然后点击提交。数据将被插入到数据库中。现在,我的想法是,我希望使用ajax显示刚才添加到DB中的数据,而不必刷新页面。我正在学习使用ajax的想法,所以我有点迷茫。有人能提出建议吗。 我的想法是,当我单击submit时,将触发两个事件。一个是将数据插入数据库,另一个是从数据库获取数据并将其显示在标记中 这是我的servlet中的get方法。 Home.java protected void doGet(HttpServletReq
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
response.setContentType("text/html");
out.println("<html><body>");
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost/apiprovider","root","");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from apiinfo");
// out.println("<table border=1 width=50% height=50%>");
// out.println("<tr><th>EmpId</th><th>EmpName</th><th>Salary</th><tr>");
while (rs.next()) {
String n = rs.getString("apiname");
String nm = rs.getString("apiendpoint");
int s = rs.getInt("id");
response.getWriter().write(n);
// out.println("<tr><td>" + n + "</td><td>" + nm + "</td><td>" + s + "</td></tr>");
}
// out.println("</table>");
// out.println("</html></body>");
con.close();
}
catch (Exception e) {
out.println("error");
}
}
Home.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<div id="ajaxresponse">
</div>
<form>
API Name:<br>
<input type="text" id = "apiname" name="apiname">
API ENDPOINT:<br>
<input type="text" id ="apiendpoint" name="apiendpoint">
<br>
API VERSION:<br>
<input type="text" id="apiversion" name="apiversion">
ACCESSIBLE:<br>
<input type="checkbox" name="source" value="internet"> Internet<br>
<input type="checkbox" name="source" value="vpn"> VPN<br>
<br><br>
<input type="submit" formaction="Home" method="post" value="Submit">
<br>
<input type="submit" name="Submit" value="Submit">
</form>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#Submit').click(function(event) {
console.log("You clicked me");
$.ajax({
url: "Home",
sucess:function(result){
}
});
});
});
</script>
</body>
</html>
我想你不需要有两件事。您应该向servlet发送ajax调用,并从中获得格式正确的JSON,其中包含来自DB的数据。在这种情况下,当您收到数据时,您就知道insert成功了。在此之后,在Success函数中,您需要解析来自servlet的响应,并使用javaScrip集数据将其转换为表单的元素。您可以根据故障转移场景以多种方式实现这一点 请浏览此链接,以便更好地了解单击提交按钮时的情况。如果此调用成功,请先将数据插入数据库,然后再触发一个ajax调用,以从数据库获取数据以显示。请检查下面的sudo代码 如果插入调用失败,您可以提及插入失败之类的一般消息,请稍后重试
<script type="text/javascript">
$(document).ready(function() {
$('#Submit').click(function(event) {
console.log("You clicked me");
$.ajax({
url: "Home",
sucess:function(result){
// here call another servlet which will get the data
}
});
});
});
</script>