2012-12-20 36 views

Trả lời

14

HttpSession session = request.getSession(); Bên trong phương pháp dịch vụ chúng tôi yêu cầu cho phiên làm việc và mọi điều trở nên tự động, giống như việc tạo ra các đối tượng HttpSession. Không cần tạo id phiên duy nhất. Không cần phải tạo một đối tượng Cookie mới. Mọi thứ diễn ra tự động sau hậu trường.

Ngay khi gọi phương thức getSession() đối tượng yêu cầu, đối tượng mới của phiên được tạo bởi vùng chứa và id phiên duy nhất được tạo để duy trì phiên. Id phiên này được truyền trở lại đối tượng phản hồi để bất cứ khi nào khách hàng thực hiện bất kỳ yêu cầu nào thì nó cũng sẽ đính kèm id phiên với đối tượng requsest để vùng chứa có thể xác định phiên.

request.getSession(false): Phương pháp này sẽ kiểm tra xem Phiên đã tồn tại cho yêu cầu hay chưa. Nếu nó tồn tại thì nó sẽ trả về phiên đã tồn tại. Nếu Session không tồn tại cho yêu cầu này thì phương thức này sẽ trả về NULL, điều đó có nghĩa là phương thức này nói rằng yêu cầu không có Session trước đó.

+0

nhưng tại sao giá trị thay đổi nếu tôi sử dụng thẻ neo để chuyển hướng đến trang khác – lata

+0

khi bạn chuyển hướng thì bạn đã mất phiên vì vậy trên mỗi tập lệnh Bạn phải sử dụng session_start() ở đầu MỌI script –

+0

có, tôi không thể truy lục giá trị của phiên và thay đổi hai giá trị trên khi tôi chuyển hướng đến một trang khác – lata

14

Nói tóm lại -

request.getSession().getId() - trả về một chuỗi chứa định danh duy nhất được gán cho phiên này. Mã định danh được gán bởi thùng chứa servlet và phụ thuộc thực hiện.

request.getSession(false) - đối tượng phiên trả về hoặc null nếu không có phiên hiện tại.

5

Dòng đầu tiên sẽ trả về "id phiên" trên máy chủ. Dòng thứ hai sẽ trả về đối tượng phiên. Vì vậy, những gì sẽ được in trên system.out sẽ là request.getSession(false).toString();

Việc triển khai mặc định là toString trả về "id đối tượng". Object id về mặt phiên không giống như session id. Session có thể được tuần tự hóa và nhân rộng trên cluster sao cho mỗi nút của cluster trên mỗi JVM nó có thể có id của đối tượng riêng (nhưng phải có cùng id phiên).

Calling phiên get với boolean được giải thích ở đây: http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession(boolean)

2
request.getSession().getId() 

Returs id của phiên.

Request.getsession(false) trả về đối tượng phiên đã tồn tại. Nó sẽ không trả lại bất cứ điều gì tức là sẽ trả về null, nếu phiên không tồn tại. Trong khi đó, với true tham số nó sẽ tạo ra một đối tượng session mới và gửi lại nếu không có phiên tồn tại

1
request.getSession().getId(); 

Sẽ trở lại id chuỗi duy nhất được gán cho đã bắt đầu phiên làm việc. Thế hệ id là nhà cung cấp cụ thể như apache, jboss, v.v.

request.getSession(false); 

Nó sẽ trả về đối tượng phiên được liên kết với yêu cầu cụ thể nếu đối tượng phiên được liên kết sẽ được trả về hoặc nó sẽ trả về null nếu máy chủ không bắt đầu.

0
request.getSession().getId(); 

điều này sẽ trả lại id của phiên hiện tại.

Request.getsession(false) 

nó sẽ trả về phiên nếu nó tồn tại hoặc nó sẽ trả về null nếu không.

và Request.getsession (sai) có nghĩa là: cho tôi phiên nếu nó tồn tại, nếu không sẽ không tạo một phiên bản mới (và do đó trả về null).

3
request.getSession() 

Phương pháp này sẽ kiểm tra phiên hiện tại, nếu có trở lại thì tạo phiên mới cho yêu cầu.

request.getSession().getId(); 

Điều này sẽ trả về mã định danh duy nhất cho phiên đó.

request.getSession(false); 

phương pháp này có việc kiểm tra phương pháp value.This boolean liệu có một phiên trình bày hiện có cho người dùng đó (theo yêu cầu), nếu tồn tại nó trở lại phiên mà nếu không nó trả về null tức là nó sẽ không tạo ra phiên làm việc mới.

Chỉ cần thêm thông tin khác cho phiên.

request.getSession(true); 

Phương pháp này kiểm tra phiên hiện tại cho người dùng đó (yêu cầu) và nếu phiên tồn tại, nó sẽ trả về phiên đó hoặc cách khác tạo phiên mới cho người dùng đó.

request.getSession() works like request.getSession(true) 

tham khảo: http://docs.oracle.com/javaee/1.4/api/javax/servlet/http/HttpServletRequest.html#getSession%28boolean%29

+0

những gì sẽ được trả lại nếu không có phiên và chúng tôi làm điều này: 'request.getSession (true) .getId();' – Abhi

0
request.getSession().getId(); 

trả về định danh duy nhất được gán cho phiên này. Và nó có kiểu trả về của String.

request.getSession(false) 

trả về đối tượng HttpSession nếu nó đã tồn tại khác trả về null.

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