Sự khác biệt giữa portlet và servlet là gì?

Nâng cao từ Nguồn : Servlets Vs Portlets

Điểm tương đồng



  1. Servlet và Portlet là các thành phần dựa trên web sử dụng Java để triển khai chúng.

  2. Các portlet được quản lý bởi một portlet container giống như servlet được quản lý bởi servlet container.

  3. Cả nội dung tĩnh và động đều có thể được tạo bởi Portlet và Servlet.

  4. Vòng đời của các portlet và servlet được kiểm soát bởi container

  5. Mô hình máy khách / máy chủ được sử dụng cho cả servlet và portlet

  6. Việc đóng gói và triển khai về cơ bản là giống nhau, WAR / EAR.

  7. Phiên ứng dụng tồn tại trong cả vùng chứa Servlet và Portlet. Đó là một trong những cách chia sẻ dữ liệu (Giao tiếp giữa các Portlet thô) từ giai đoạn kết xuất đến giai đoạn hành động (hoặc bất kỳ giai đoạn nào thấp hơn) trong các thùng chứa portlet.

  8. Cả Servlet và Portlet đều sử dụng môi trường máy chủ / VM tương tự hỗ trợ nó. Mặc dù, một số cấu hình bổ sung có thể cần thiết trong trường hợp các portlet để làm cho nó được đánh dấu

  9. Các công cụ xây dựng / DI tương tự cho cả hai – Ant, Maven, Gradle, v.v. đều được hỗ trợ. Chủ yếu là 🙂 – Điều này đã thay đổi một chút với Liferay 7.

Sự khác biệt

  1. Servlet có thể hiển thị các trang web hoàn chỉnh, trong khi các portlet hiển thị các đoạn html. Những đoạn này được cổng thông tin tổng hợp lại thành một trang web hoàn chỉnh.

  2. Loại nội dung của các portlet JSR 168 chỉ có thể là cHTML, XHTML, WML. Nó không hỗ trợ các loại nội dung khác.

  3. Các portlet không được phép tạo mã HTML có chứa các thẻ như body, frame, frameset, head, html hoặc title.

  4. Một Portlet không giống như một servlet không có URL gắn liền với nó nên nó không thể được truy cập trực tiếp. Truy cập chỉ thông qua trang cổng thông tin chứa portlet.

  5. Các portlet có thể được cung cấp các điều khiển để thao tác các trạng thái cửa sổ hoặc chế độ portlet của nó.

  6. Nhiều phiên bản của một portlet có thể được đặt trên cùng một trang.

  7. Các portlet hỗ trợ cấu hình và tùy chỉnh liên tục, thông tin hồ sơ.

  8. Các portlet có thể có hai loại yêu cầu viz. kết xuất yêu cầu và yêu cầu hành động.

  9. Portlet có hai phạm vi trong phiên; phạm vi ứng dụng để giao tiếp giữa các portlet và phạm vi portlet để giao tiếp nội bộ portlet.

  10. Portlet không thể đặt mã hóa bộ ký tự của phản hồi cũng như không thể đặt tiêu đề phản hồi HTTP.

  11. Các portlet không có quyền truy cập để yêu cầu URL. Vì vậy, nó không thể truy cập các tham số truy vấn được thêm vào URL. Các portlet không thể đặt cookie.

  12. Phương pháp điển hình của Portlet API là doView(), doEdit(), doHelp()và processAction()trong khi những người của servlet là service(), doPost(), doGet().

  13. Thông số kỹ thuật của Servlet – JSR 369 (Servlet 4.0), JSR 340 (Servlet 3.1), JSR 315 (Servlet 3.0), JSR 154 (Servlet 2.5 & 2.4). Thông số kỹ thuật của Portlet – JSR 168 (Portlet Spec v1.0), JSR 286 (Portlet Spec v2.0), JSR 362 (Portlet Spec v3.0)

  14. Việc triển khai các Portlet liên quan đến cách tiếp cận khác với ứng dụng Servlet. Một số Nhà cung cấp (Liferay / Alfresco / WebSphere) hỗ trợ triển khai nóng các portlet mà không cần phải khởi động lại máy chủ, điều này không thể thực hiện được trong trường hợp các servlet không mô-đun hóa ứng dụng bằng các thư viện đặc biệt như OSGi.

Chỉnh sửa (Từ nhận xét)

Một thùng chứa Portlet được xây dựng trên một thùng chứa Servlet. Vì vậy, cuối cùng có thể nói rằng portlet chạy trên Servlet Container. Nhưng trong khi phát triển ứng dụng, chúng tôi xem một vùng chứa portlet riêng biệt với vùng chứa Servlet / Java EE.