Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Ajax cho các nhà phát triển Java: Ajax với Direct Web Remoting Sự tuần tự hóa dữ liệu không dễ dàng
Nội dung xem thử
Mô tả chi tiết
Ajax cho các nhà phát triển Java: Ajax với Direct Web Remoting
Sự tuần tự hóa dữ liệu không dễ dàng hơn điều này!
Philip McCarthy, Nhà Phát triển, SmartStream Technologies Ltd
Tóm tắt: Thật thú vị như nó có, việc thêm chức năng Ajax cho các ứng dụng của
bạn có thể mang lại nhiều việc khó khăn. Trong bài viết thứ ba của loạt bài Ajax
cho các nhà phát triển Java™ này, Philip McCarthy cho bạn thấy cách sử dụng
Direct Web Remoting (DWR-Truy cập Web trực tiếp từ xa) để trực tiếp đặt các
phương thức JavaBeans vào mã JavaScript của bạn và tự động hóa công việc đòi
hỏi sự nỗ lực của Ajax.
Hiểu biết những điều căn bản về lập trình Ajax (fundamentals of Ajax
programming) là điều cần thiết, nhưng nếu bạn đang xây dựng các giao diện người
dùng (UI) Ajax phức tạp, điều quan trọng là có thể làm việc ở một mức độ trừu
tượng cao hơn. Trong bài viết thứ ba của loạt bài Ajax cho các nhà phát triển Java
này, tôi thêm phần giới thiệu của số trước vào các kỹ thuật tuần tự hóa dữ liệu cho
Ajax (data serialization techniques for Ajax), giới thiệu một kỹ thuật cho phép bạn
tránh những chi tiết thực dụng của việc tuần tự hóa các đối tượng Java.
Trong bài trước, tôi đã chỉ cho bạn cách sử dụng JavaScript Object Notation
(JSON- Ký hiệu đối tượng JavaScript) để tuần tự hóa dữ liệu theo một định dạng
dễ dàng được chuyển đổi thành các đối tượng JavaScript trên máy khách. Với thiết
lập này, bạn có thể gọi các cuộc gọi dịch vụ từ xa khi sử dụng mã JavaScript và
nhận các đồ thị đối tượng JavaScript trả lời, không giống như việc thực hiện một
cuộc gọi thủ tục từ xa. Bây giờ, bạn sẽ tìm hiểu cách tiến thêm một bước nữa,
bằng cách sử dụng một khung công tác chính thức hóa khả năng của bạn để thực
hiện cuộc gọi thủ tục từ xa trên các đối tượng Java phía máy chủ từ mã máy khách
JavaScript.
DWR là một giải pháp được cấp phép Apache, mã nguồn mở gồm các thư viện
Java phía máy chủ, một servlet DWR và các thư viện JavaScript. Trong khi DWR
không chỉ là bộ công cụ Ajax-RPC có sẵn cho nền tảng Java, mà nó còn là một
trong những giải pháp hoàn thiện nhất và cung cấp rất nhiều chức năng có ích.
Xem Tài nguyên để tải về DWR trước khi tiếp tục các ví dụ.
DWR là gì?
Theo các thuật ngữ đơn giản nhất, DWR là một công cụ đặt các phương thức của
các đối tượng Java phía máy chủ theo mã JavaScript. Thực tế, với DWR, bạn có
thể loại bỏ tất cả máy theo chu trình yêu cầu-trả lời của Ajax ra khỏi mã ứng dụng
của bạn. Điều này có nghĩa là mã phía máy khách của bạn không bao giờ phải xử
lý trực tiếp một đối tượng XMLHttpRequest hoặc xử lý trả lời của máy chủ. Bạn
không cần phải viết mã tuần tự hóa đối tượng hoặc sử dụng các công cụ của bên
thứ ba để chuyển các đối tượng của bạn sang XML. Bạn thậm chí không cần phải
viết mã servlet để dàn xếp các yêu cầu Ajax thành các cuộc gọi trên các đối tượng
miền Java của bạn.
DWR được triển khai như là một servlet trong ứng dụng Web của bạn. Được xem
như hộp đen, servlet này thực hiện hai vai trò chính: Thứ nhất, với mỗi lớp được
trưng ra, DWR tự động tạo Javascript để có trong trang Web của bạn. JavaScript
được tạo có chức năng stub để thể hiện các phương thức tương ứng trên lớp Java
và cũng thực hiện các XMLHttpRequest ở hậu trường. Các yêu cầu này được gửi
tới servlet DWR, mà servlet DWR, trong vai trò thứ hai của mình, dịch chuyển
yêu cầu đó thành một cuộc gọi phương thức trên một đối tượng Java phía máy chủ
và gửi các giá trị trả về tới phía máy khách theo dạng trả lời servlet của nó, được
mã hóa thành JavaScript. DWR cũng cung cấp các hàm tiện ích JavaScript giúp
thực hiện các nhiệm vụ UI chung.
Về ví dụ này
Trước khi giải thích DWR chi tiết hơn, tôi sẽ giới thiệu một kịch bản ví dụ đơn
giản. Như trong các bài viết trước đây, tôi sẽ sử dụng một mô hình tối thiểu dựa
trên một cửa hàng trực tuyến, lúc này có một thể hiện sản phẩm cơ bản, một giỏ
mua hàng của người dùng có thể chứa các mục và một đối tượng truy cập dữ liệu
(DAO) để tìm kiếm các chi tiết sản phẩm từ một kho dữ liệu. Lớp Item là một lớp
giống như được sử dụng trong bài viết trước, nhưng nó không còn thực hiện bất kỳ
các phương thức tuần tự hóa nào bằng thủ công. Hình 1 mô tả thiết lập đơn giản
này: