2012-02-23 20 views
9

Với Play 1.0, chúng tôi đã có phương thức session.getId() để truy lục số nhận dạng phiên duy nhất.Session.id ở đâu trong Play 2.0?

Id này tiện dụng cho các phím tiền tố trong bộ nhớ cache chung.

Phiên bản Play 2.0 session.id tương đương ở đâu?

Trả lời

12

Vì dữ liệu phiên được lưu trữ dưới dạng cookie nên không có id phiên nào khác với phiên bản 2.0. Trong thực tế, không cần mã thông báo xác định, dữ liệu phiên chỉ được truyền cùng với mọi yêu cầu để máy chủ hoàn toàn không quốc tịch.

Tuy nhiên, bạn vẫn có thể cần id nếu bạn cần lưu trữ trên mỗi dữ liệu người dùng trong bộ nhớ cache chung. Vì mục đích này, hãy sử dụng mã bên dưới

// Generate a unique id 
String uuid=session("uuid"); 
if(uuid==null) { 
    uuid=java.util.UUID.randomUUID().toString(); 
    session("uuid", uuid); 
} 

Id phiên? nó nghe có vẻ như Java EE anyways ...

+0

Làm thế nào để bạn kiểm soát vòng đời của các đối tượng trong bộ đệm ẩn toàn cầu? Bạn cấu hình TTL và các tham số hết hạn khác? –

+0

Vòng đời phụ thuộc vào việc triển khai bộ nhớ cache. Tôi không biết chi tiết, nếu tôi nhớ lại EHCache sử dụng WeakReferences được xóa khi JVM yêu cầu bộ nhớ. EHCache là một trong những api tốt nhất cho bộ nhớ đệm, tôi chắc chắn rằng họ hỗ trợ các thiết lập hết hạn. –

+0

Ok, nhưng về cơ bản khác biệt/tốt hơn trong Play 2.0 như thế nào? Một phiên (nói chung) chỉ là một cửa hàng với một vòng đời nhất định. "Rắc rối trạng thái" là imho gây ra bởi các chi tiết thực hiện. –

Các vấn đề liên quan