Ich versuche, JSON-Array von Servlet zu empfangen und Daten zu einer Tabelle hinzuzufügen. Aber JSON oder Text kommen nicht zu Jsp. Ich habe viele Dinge versucht. Hier ist mein JSP
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Search a User</title>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#search1').click(function()
{
var searchdata = $("#searchword").val();
$.ajax({
type: "GET",
url: "Search", //this is my servlet
data: {searchword :searchdata },
success: function(data){
alert(data);
}
});
});
});
</script>
</head>
<body>
<form method="post" class="form-horizontal">
<fieldset>
<div class="form-group">
<label class="col-md-4 control-label" for="searchword">Search a User</label>
<div class="col-md-5">
<input id="searchword" type="text" placeholder="Add User's name" class="form-control input-md" required="">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for=""></label>
<div class="col-md-3">
<button id="search1" class="btn btn-block btn-success">Search</button>
</div>
</div>
</fieldset>
</form>
</body>
</html>
Hier versuche ich nur, um sicherzustellen, dass die Erfolgsfunktion funktioniert. Aber Alarm funktioniert nicht. Ich habe Alerts ohne String hinzugefügt, die wir vom Servlet zur Demo vorschlagen. Aber sie haben auch nicht funktioniert. Ich bin mir ziemlich sicher, dass mein Fehler auf der JSP-Seite liegt, weil ich das JSON-Array und das Servlet beim Abrufen des Suchwortes in den log4j-Protokollen sehen kann. Aber stellen Sie sicher, dass ich das Servlet auch hier hinzufügen werde.
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import hsenid.DBConnector;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Search extends HttpServlet {
private static final Logger logger = LogManager.getLogger(Search.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("application/json");
PrintWriter out = resp.getWriter();
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
String username = req.getParameter("searchword");
DBConnector dbpool = (DBConnector) getServletContext().getAttribute("DBConnection");
JsonArray jsonArray = new JsonArray();
logger.info(username);
try {
Connection myConn = dbpool.getConn();
String likeQuery = "Select * from userdetails WHERE username LIKE ?";
preparedStatement = myConn.prepareStatement(likeQuery);
preparedStatement.setString(1, "%" + username + "%");
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("firstName", resultSet.getString("fname"));
jsonObject.addProperty("lastName", resultSet.getString("lname"));
jsonObject.addProperty("dob", resultSet.getString("dob"));
jsonObject.addProperty("country", resultSet.getString("country"));
jsonObject.addProperty("email", resultSet.getString("email"));
jsonObject.addProperty("mobile", resultSet.getString("mnumber"));
jsonObject.addProperty("username", resultSet.getString("username"));
jsonArray.add(jsonObject);
}
logger.info("JSON ARRAY Created");
logger.info(jsonArray.toString());
resp.getWriter().write(jsonArray.toString());
out.println(jsonArray);
} catch (SQLException e) {
logger.error(e.getMessage());
}
}
}
Siehe den Fehler in der Browserkonsole und teilen Sie uns dies mit. Zum Öffnen der Konsole in Firefox 'STRG + UMSCHALT + J' –
Danke Ataur. In diesem Moment hatte ich keine Ahnung, wie ich deine Frage beantworten sollte, und dann habe ich von Feuerwanzen erfahren. Frage gelöst :) –
Prost. @Menuka Ishan :) –