Đầu tiên tạo một lớp Servlet trả về phản hồi mong muốn dựa trên yêu cầu. Nó có thể là HTML, XML hoặc JSON. Tôi muốn đề nghị sử dụng JSON cho điều này vì đó là sản phẩm dễ dàng nhất trong Java và có thể sử dụng được trong JavaScript. Bạn có thể sử dụng ví dụ Google Gson để chuyển đổi từ một đối tượng Java đầy đủ thành chuỗi JSON (và ngược lại). Ví dụ.
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));
}
Khi servlet hoàn tất, chỉ cần ánh xạ nó theo cách thông thường web.xml
. Ví dụ. trên url-pattern
của /firstServlet
.
Sau đó, trong jQuery, bạn có thể sử dụng $.getJSON()
để nhận JSON từ tài nguyên đã cho. Đối số đầu tiên là URL, rõ ràng là firstServlet
. Đối số thứ hai là hàm gọi lại trong đó bạn có thể làm việc trên dữ liệu trả về được trả về. Tôi đã chuyển thông số yêu cầu foo
cho mục đích trình diễn thuần túy, đây không phải là bắt buộc.
$.getJSON('firstServlet?foo=bar', function(data) {
alert('Success: ' + data.success + '\n'
+ 'Message: ' + data.message + '\n'
+ 'Param: ' + data.param);
});
Tất nhiên bạn có thể làm được nhiều việc hơn là chỉ hiển thị cảnh báo đơn giản. Ví dụ. manupulating/đi qua DOM HTML trong trang hiện tại dựa trên dữ liệu trả về.
tôi đã đăng hai câu trả lời với các ví dụ thực tế trước đây, bạn có thể tìm thấy nó hữu ích cũng như: