Créez d'abord une classe Servlet qui renvoie la réponse souhaitée en fonction de la demande. Ce peut être HTML, XML ou JSON. Je suggère d'utiliser JSON pour cela, car c'est le produit le plus facile à produire en Java et consommable en JavaScript. Vous pouvez utiliser par exemple Google Gson pour convertir un objet Java complet en une chaîne JSON (et vice versa). Par exemple.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOexception {
// Populate response data somehow. Can be a String, Javabean or Collection/Map of either.
Map<String, Object> data = new HashMap<String, Object>();
data.put("success", true);
data.put("message", "Hello World!");
data.put("param", request.getParameter("foo"));
// Write response data as JSON.
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new Gson().toJson(data));
}
Une fois que le servlet est terminée, la carte juste en web.xml
la manière habituelle. Par exemple. sur un url-pattern
de /firstServlet
. Puis, dans jQuery, vous pouvez utiliser $.getJSON()
pour obtenir JSON à partir de la ressource donnée. Le premier argument est l'URL, qui est évidemment firstServlet
. Le deuxième argument est la fonction de rappel dans laquelle vous pouvez travailler sur les données de réponse renvoyées. J'ai passé le paramètre de demande foo
à des fins de démonstration pure, ce n'est pas obligatoire.
$.getJSON('firstServlet?foo=bar', function(data) {
alert('Success: ' + data.success + '\n'
+ 'Message: ' + data.message + '\n'
+ 'Param: ' + data.param);
});
Vous pouvez bien sûr en faire plus que simplement afficher une simple alerte. Par exemple. manupuler/traverser le DOM HTML dans la page courante en fonction des données retournées.
J'ai posté deux réponses avec des exemples pratiques avant ici, vous pouvez le trouver utile ainsi: