In a servlet, what does the following line do?

4 phương ánCó giải thích
Đề bài
session.setAttribute("user", null);

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "It deletes the "user" attribute from the session". Đặc tả servlet quy định gọi đặt thuộc tính với giá trị null có cùng tác dụng như gọi xoá thuộc tính, nên khoá đó bị lấy khỏi phiên và không còn xuất hiện trong danh sách tên thuộc tính; listener về thuộc tính của phiên cũng nhận sự kiện xoá chứ không nhận sự kiện thay giá trị. Lựa chọn "It causes a session invalidation" sai vì phiên vẫn sống với cùng định danh, chỉ lời gọi huỷ phiên mới kết thúc phiên và dọn hết thuộc tính. Lựa chọn "It sets the "user" attribute to null without removing it" là cách hiểu theo trực giác nhưng trái với quy định trên, vì không có khoá nào được giữ lại với giá trị rỗng. Lựa chọn "It throws a NullPointerException" sai vì truyền null vào đây là lời gọi hợp lệ và có nghĩa rõ ràng; đọc lại bằng phương thức lấy thuộc tính sẽ ra null đúng như khi khoá không tồn tại.

Cùng phần 6

Xuất hiện trong 1 bộ đề