Cách tốt nhất (an toàn nhất) để thực hiện xử lý phiên trong máy chủ web là gì? Tôi muốn thêm điều đó, nhưng không biết làm thế nào để thực hiện nó thực sự. Cookie có phải là "phải" để xử lý phiên không? (Để có thể xác định phiên nào)Thực hiện các phiên trong máy chủ web java?
Trả lời
Việc xử lý phiên không thực sự là mối quan tâm của bạn. Nó được xử lý bởi lớp HttpSession
(đọc mô tả trong javadoc!), Mà bạn có thể lấy bằng cách gọi request.getSession()
.
Nó hoạt động theo hai cách (không cần để bạn có thể làm bất cứ điều gì để hỗ trợ chúng):
- sử dụng cookie phiên (nếu cookie được phép)
- sử dụng url-viết lại - phụ id phiên (
JSESSIONID
) đến URL.
(Lưu ý: nó thực sự xử lý bởi container servlet (Tomcat, cầu cảng, vv) mà cung cấp một thực hiện HttpSession
)
Giả sử rằng bạn đang nói về một container servlet, sau đó xử lý phiên xuất phát được sao lưu. Xem relevant part of if the JavaEE tutorial. Nó bao gồm API phiên, cũng như cách phiên được theo dõi (cookie hoặc viết lại URL).
Xử lý phiên được xử lý bởi vùng chứa web. Nếu bạn muốn an toàn từ con mắt tò mò, hãy sử dụng https (được thực thi trong tệp web.xml).
Điều bạn cũng có thể quan tâm, là cách người dùng tự xác định mình với vùng chứa web. Một số tùy chọn tồn tại, nơi an toàn nhất là ứng dụng khách sử dụng trình duyệt web có chứng chỉ kỹ thuật số. Điều đó khá tẻ nhạt, nhưng rất an toàn :)
- 1. Thực hiện Máy chủ Đẩy
- 2. Thực hiện phía máy chủ Web Sockets cho NodeJS
- 3. Chạy Java trên Máy chủ Web
- 4. Triển khai thực hiện phía máy chủ Java CORS
- 5. Máy chủ web Java nhỏ nhất
- 6. thực hiện kiểm soát phiên bản cho phát triển web
- 7. Lấy tên và phiên bản máy chủ ứng dụng Java
- 8. Máy chủ web nhỏ
- 9. Nhiều phiên bản Ruby trên một máy chủ web?
- 10. Máy chủ web Javascript?
- 11. Máy chủ NFS trong Java
- 12. Lỗi khi thực hiện kết nối SSL từ máy khách Java đến máy chủ .NET
- 13. Chạy phi tiêu trong máy chủ web
- 14. Chức năng thực hiện bên trong xem máy chủ SQL
- 15. Thực hiện vòng lặp máy chủ chính trong Haskell?
- 16. Máy chủ Web đơn giản và khung MVC cho Java
- 17. Thực hiện đồng thời trong ứng dụng Web Java EE
- 18. Máy chủ web Dwscript
- 19. Cách sử dụng cả máy chủ ứng dụng và máy chủ http trong ứng dụng web java
- 20. Cách xác thực người dùng trên máy chủ web TortoiseHg?
- 21. Thực hiện xác thực Facebook: Phía máy khách và phía máy chủ
- 22. Có thực hành tốt để ẩn thông tin máy chủ web trong tiêu đề HTTP không?
- 23. Sự khác biệt giữa các máy chủ ứng dụng .NET và máy chủ ứng dụng Java
- 24. Phiên chứa các mục thực hiện IDisposable
- 25. Làm thế nào để thực hiện tốt nhất Kiểm soát Phiên bản cho Phát triển Web?
- 26. Máy chủ web nhúng trong .NET
- 27. Máy chủ web đơn giản trong C++?
- 28. Cách lấy khóa máy chủ Windows cho các phiên RDP?
- 29. Capistrano có thể thực hiện các tác vụ trên máy chủ liên tục không?
- 30. Máy chủ proxy HTTP Java
+1. Chỉ cần lấy 'HttpSession' từ yêu cầu và sử dụng' get/setAttribute() 'để lấy/thiết lập các công cụ trong phạm vi phiên. Đó thực sự là tất cả :) – BalusC
Thực ra anh ta không bao giờ nói anh ta đang làm việc trong môi trường thùng chứa servlet. Tôi hiểu anh ta viết là máy chủ web riêng. Có thể là sai mặc dù. – whiskeysierra
@Willi thì câu trả lời của tôi lại hữu ích, bởi vì tôi đã chỉ ra hai tùy chọn được sử dụng. Nhưng điều đó cần phải thực sự được làm rõ. – Bozho