我需要一些帮助。 我有一个由Java Servlet和html表单组成的小应用程序。 用户将一些数据放入html表单中,单击提交按钮后,java servlet将获取其post方法中的数据(将其加载到数据库中)。直到现在一切正常。我正在使用java servlet和tomcat。 我现在要做的是在html上的同一页面上的表格中显示数据。我发现,这可以通过ajax get方法实现。但不知何故,我无法做到正确。 这里简化了我的应用程序代码: Java Servlet:
@WebServlet(name = "MyServlet", urlPatterns = { "/MyServlet" })
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
// getting the values submitted by the user from the html form
String name = request.getParameter("name");
String surname = request.getParameter("surname");
// here goes some logic to load data in the database
// data from database is recieved as an array and is then converted to
// json
// here I can only print the whole json retrieved from DB
// and it is displayed on another page with myurl/MyServlet
response.setContentType("application/json");
PrintWriter out = response.getWriter();
response.setCharacterEncoding("UTF-8");
out.println(json);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
// nothing happens here
}
在我的html表单中,我有以下内容(此处仅提供最重要的内容):
<form action="MyServlet" method="post">
<input class="form-control" type="text" name="name" id="name">
<input class="form-control" type="text" name="surname" id="surname">
<input type="submit" class="btn btn-info" id="MyS"value="MyServlet">
<table class="table" id="table">
<tr>
<th>name</th>
<th>surname</th>
</tr>
用户输入存储在数据库中,一切正常。 问题是,我没有得到任何回复,我希望在表格中显示用户提供的所有数据,每次提交后都应该更新,用户应该保持在同一页面上(实际上并不知道,如何做这个)。 从数据库中我得到一个我可以转换为JSON的数组,所有这些信息都应该显示在一个表中。 我试着像这样写一些ajax.get(我在javascript中是一个真正的新手):
<script>
<script type="text/javascript">
$("#MyS").click(function() {
}
$.ajax({
url: "/MyServlet",
type: "POST",
dataType: '{json: json}',
data: myvalue,
success: function(data) {
$('#table').append(data);
},
});
</script>
但是没有数据显示在表格或某处。 我很乐意得到一些提示,我做错了什么,应该如何正确完成? 提前谢谢。
答案 0 :(得分:0)
使用这些行执行它并告诉我您在浏览器的控制台中得到了什么回复:
$.ajax({
url: "/MyServlet",
type: "POST",
dataType: '{json: json}',
data: myvalue,
success: function(data)
{
console.log( data ); // logs this on success
$('#table').append(data);
},
**error: function (textStatus, errorThrown)
{
console.log( textStatus ); // log this on error
console.log( errorThrown );
}**
});