我正在开发一个webapp,现在我想在提交一个数据后从我的数据库( MySQL )检索数据到 JSP (同一页面)形成。我找到了一些使用 AJAX 的教程,但它对我没用。
有人可以帮我找到检索数据的方法,或者只是告诉我为什么这段代码不起作用。当我在服务器上运行它并单击提交按钮时,我被重定向到空白页面。我希望与表格中的数据保持同一页面。
这是我的servlet代码:
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public static final String VUE = "/WEB-INF/upload.jsp";
private static List<Fichier> files = new LinkedList<Fichier>();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.getServletContext().getRequestDispatcher( VUE ).forward(
request, response );
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UploadForm.uploadByJavaServletAPI(request);
UploadForm.getData(response);
}
getData()
方法:
public static void getData(HttpServletResponse response){
Site2GDAO site2GDAO = new Site2GDAOImpl();
List<RNP_Site2G> Site2G=new ArrayList<RNP_Site2G>();
Site2G=site2GDAO.getAllData();
Gson gson2G = new Gson();
JsonElement element2G = gson2G.toJsonTree(Site2G, new TypeToken<List<RNP_Site2G>>() {}.getType());
JsonArray jsonArray2G = element2G.getAsJsonArray();
response.setContentType("application/json");
try {
response.getWriter().print(jsonArray2G);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我的JSP代码:
<html>
<head>
<meta charset="utf-8" />
<title>Envoi des fichiers RNP</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="js/fileupload.js"></script>
<link type="text/css" rel="stylesheet" href="css/form.css">
</head>
<body>
<form action="Upload" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Envoi de fichier</legend>
<label for="fichier">Emplacement du premier fichier <span class="requis">*</span></label>
<input type="file" id="fichier" name="fichiers[]" multiple value="<c:out value="${fichier.nom}"/>"/>
<span class="erreur">${form.erreurs['fichier']}</span>
<br />
<br />
<input type="submit" value="Envoyer" id="showTable"/>
<br />
</fieldset>
</form>
<div id="tablediv">
<table cellspacing="0" id="site2G">
<tr>
<th scope="col">CGI</th>
<th scope="col">BSC</th>
<th scope="col">Site Name</th>
<th scope="col">Cells</th>
<th scope="col">EA</th>
</tr>
</table>
</div>
</body>
</html>
Javascript代码:
$(document).ready(function() {
$("#tablediv").hide();
$("#showTable").click(function(event){
$.post('../Upload',function(responseJson) {
if(responseJson!=null){
$("#site2G").find("tr:gt(0)").remove();
var table1 = $("#site2G");
$.each(responseJson, function(key,value) {
var rowNew = $("<tr><td></td><td></td><td></td><td></td><td></td></tr>");
rowNew.children().eq(0).text(value['bsc']);
rowNew.children().eq(1).text(value['sitename']);
rowNew.children().eq(2).text(value['cells']);
rowNew.children().eq(3).text(value['cgi']);
rowNew.children().eq(4).text(value['ea']);
rowNew.appendTo(table1);
});
}
});
$("#tablediv").show();
});
});
答案 0 :(得分:0)
您需要在web.xml中使用名称Upload
映射您的servlet,如下所示:
//Initialze the servlet
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>package.FileUploadServlet</servlet-class>
</servlet>
//Then map it with a url so it can be used.
<servlet-mapping>
<servlet-name>Upload</servlet-name>
<url-pattern>/Upload</url-pattern>
</servlet-mapping>
请查看Creating and Configuring Servlets教程以获取更多信息。