首先创建一个Servlet类,根据请求返回所需的响应。它可以是HTML、XML或JSON。我建议使用JSON,因为它在Java中最容易生成,并且在JavaScript中最容易消费。您可以使用例如Google Gson将完整的Java对象转换为JSON字符串(反之亦然)。例如:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOexception {
Map<String, Object> data = new HashMap<String, Object>();
data.put("success", true);
data.put("message", "Hello World!");
data.put("param", request.getParameter("foo"));
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new Gson().toJson(data));
}
一旦servlet完成,只需按照惯例在web.xml中映射它。例如,在url-pattern为/firstServlet上。然后,在jQuery中,您可以使用
$.getJSON()从给定资源获取JSON。第一个参数是URL,显然是firstServlet。第二个参数是回调函数,在其中可以处理返回的响应数据。我传递了请求参数foo仅用于演示目的,这不是必需的。
$.getJSON('firstServlet?foo=bar', function(data) {
alert('Success: ' + data.success + '\n'
+ 'Message: ' + data.message + '\n'
+ 'Param: ' + data.param);
});
你当然可以用它来显示简单的警报,但还可以进行更多操作。例如,根据返回的数据,在当前页面上操作/遍历HTML DOM。
我之前在这里发布了两个具有实际示例的答案,您也可能会发现它很有用:
-
从JavaScript调用Java Servlet
-
如何使用jQuery和JSP生成动态下拉列表?