Mỗi yêu cầu HTTP có truy cập cùng một đối tượng servlet nhưng trong một chủ đề khác không? hoặc nó tạo ra một chủ đề mới và Servlet Instance mới?Mỗi yêu cầu có truy cập cùng một đối tượng servlet không?
Trả lời
Vùng chứa sẽ sử dụng cùng một cá thể servlet nếu servlet của bạn không triển khai SingleThreadModel
. Nếu không, không có sự đảm bảo rằng cùng một đối tượng Servlet
bị trúng. Thùng chứa là miễn phí để tạo ra nhiều trường hợp servlet nếu nó xem xét cần thiết. Nhưng các yêu cầu đến trên các chủ đề khác nhau, không nhất thiết phải được tạo mới (như Sanjay đã đề cập).
Từ đặc tả Servlet 3.0:
Đối với một servlet không được lưu trữ trong một môi trường phân phối (mặc định), container servlet phải sử dụng duy nhất một trường hợp mỗi khai servlet. Tuy nhiên, đối với servlet triển khai giao diện SingleThreadModel, thùng chứa servlet có thể khởi tạo nhiều trường hợp để xử lý yêu cầu tải nặng và yêu cầu tuần tự cho một trường hợp cụ thể.
...
chung container Web xử lý yêu cầu đồng thời với servlet cùng bởi thực hiện đồng thời của phương pháp dịch vụ trên chủ đề khác nhau.
Mỗi yêu cầu HTTP tạo một chuỗi mới nhưng truy cập cùng một phiên bản của Servlet.
EDIT: Trong trường hợp một nút máy chủ, bạn sẽ có cùng một cá thể Servlet trên nút đó. Trong trường hợp cân bằng tải/nhiều máy chủ, bạn thường sẽ có một cá thể trên mỗi máy ảo Java.
Tôi chắc chắn nó không thực sự * tạo * một chuỗi mới luôn; giống như chọn một chủ đề miễn phí từ nhóm chủ đề hiện có. –
@ SanjayT.Sharma Bạn nói đúng, nó thường được thực hiện theo cách này (vì lý do hiệu suất), nhưng đây là chi tiết thực hiện của máy chủ ứng dụng/thùng chứa servlet và mã của bạn không nên phụ thuộc vào đó –
- 1. C++ truy cập các biến/đối tượng toàn cầu trong không gian tên có biến/đối tượng có cùng tên
- 2. Django: Truy cập yêu cầu đối tượng từ form.clean của admin()
- 3. Nhận URL yêu cầu trong một servlet
- 4. Django Admin: Cách truy cập đối tượng yêu cầu trong admin.py, cho phương thức list_display?
- 5. Android systrace có yêu cầu quyền truy cập root không?
- 6. truy cập đối tượng toàn cầu khi sử dụng requirejs
- 7. Truy cập đối tượng Yêu cầu từ các thẻ JSP tùy chỉnh
- 8. Làm cách nào để truy cập đối tượng yêu cầu trong plugin Django-CMS?
- 9. RestKit - Yêu cầu không có ánh xạ đối tượng
- 10. Làm thế nào để truy cập url băm/đoạn từ đối tượng Yêu cầu Django
- 11. Trang chuyên sâu Ajax: sử dụng lại cùng một đối tượng XMLHttpRequest hoặc tạo một đối tượng mới mỗi lần?
- 12. Truy cập vào đối tượng được yêu cầu chỉ khả dụng từ mạng cục bộ phpmyadmin
- 13. Làm cách nào để truy cập đối tượng Yêu cầu từ RazorViewEngine?
- 14. Rails cho mỗi yêu cầu băm?
- 15. RSpec.configure và đối tượng yêu cầu
- 16. Truy cập yêu cầu web trên toàn cầu ở Tornado
- 17. Chuyển đối tượng JSON tới url có yêu cầu
- 18. Chơi 2.0 truy cập để yêu cầu trong các mẫu
- 19. Pocket Truy Cập API Yêu cầu mã
- 20. X509 Không thể tìm thấy yêu cầu đối tượng
- 21. Mã yêu cầu và truy cập OAuth
- 22. Lỗi VB "đối tượng được yêu cầu"
- 23. phím đối tượng Truy cập JSON có không gian
- 24. django sửa đổi đối tượng yêu cầu
- 25. Cách truy cập một đối tượng từ một lớp khác?
- 26. Kiểm tra mã thông báo truy cập mỗi yêu cầu với Redis
- 27. Ứng dụng luôn yêu cầu quyền truy cập vào keychain
- 28. Cần có một tham chiếu đối tượng để truy cập thành viên không tĩnh
- 29. Đối số dòng lệnh - đối tượng được yêu cầu: 'objshell.NameSpace (...)'
- 30. Truy cập các thuộc tính của một mảng đối tượng
Tại sao không khởi tạo servlet theo yêu cầu? –
bản sao có thể có của [Các servlet hoạt động như thế nào? Khởi tạo, biến phiên và đa luồng] (http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading) – BalusC