Thuộc tính ServletContext là một đối tượng bị ràng buộc vào ngữ cảnh thô phương pháp ServletContext.setAttribute()
và có sẵn cho TẤT CẢ Servlets (do đó JSP) trong ngữ cảnh đó hoặc đến các ngữ cảnh khác thông qua phương thức getContext()
. Theo định nghĩa, một thuộc tính context tồn tại cục bộ trong VM, nơi chúng được định nghĩa. Vì vậy, chúng không khả dụng trên các ứng dụng được phân phối.
Phiên thuộc tính được ràng buộc với Phiên, là phương tiện để cung cấp trạng thái cho một tập hợp các yêu cầu HTTP có liên quan. Thuộc tính phiên chỉ có sẵn cho các Servlets tham gia phiên. Chúng cũng không có sẵn cho các JVM khác nhau trong các kịch bản phân tán. Các đối tượng có thể được thông báo khi chúng bị ràng buộc/không liên kết với phiên thực hiện giao diện HttpSessionBindingListener
.
Yêu cầu thuộc tính được ràng buộc với một đối tượng yêu cầu cụ thể và chúng cuối cùng theo yêu cầu được giải quyết hoặc trong khi nó được gửi từ Servlet đến Servlet. Chúng được sử dụng nhiều hơn như kênh giao tiếp giữa Servlets thông qua Giao diện RequestDispatcher
(vì bạn không thể thêm Tham số ...) và theo vùng chứa. Các thuộc tính yêu cầu rất hữu ích trong các ứng dụng web khi bạn phải cung cấp thông tin thiết lập giữa các nhà cung cấp thông tin và lớp trình bày thông tin (một JSP) bị ràng buộc với một yêu cầu cụ thể và không cần nữa, thường xảy ra với các phiên không có kiểm soát nghiêm ngặt chiến lược.
Nói tóm lại, chúng ta có thể nói rằng:
- Context thuộc tính có nghĩa là cho hạ tầng, như hồ kết nối chia sẻ.
- Phiên thuộc tính dành cho thông tin theo ngữ cảnh, chẳng hạn như nhận dạng người dùng.
- Yêu cầu thuộc tính dành cho thông tin yêu cầu cụ thể, chẳng hạn như kết quả truy vấn.
Nguồn: Servlets Interview Questions by Krishna Srinivasan @ javabeat.net
liên quan: http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading/3106909#3106909 – BalusC