What is a common pitfall when updating mutable objects stored as session attributes?
4 phương ánCó giải thích
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "The container may not detect the change if you don't re-set the attribute.". Khi lưu một đối tượng khả biến vào phiên rồi sửa trực tiếp trường bên trong nó, container không nhận được tín hiệu nào: nó chỉ biết có thay đổi tại lời gọi setAttribute, và chính lời gọi đó mới kích hoạt bộ lắng nghe thuộc tính cùng cơ chế nhân bản phiên giữa các node trong cụm. Vì thế quy ước an toàn là sửa xong thì đặt lại thuộc tính với cùng khoá. Lựa chọn "You must always remove the session attribute before updating its contents." dựng ra một bước bắt buộc không có thật: gọi setAttribute đè lên là đủ, xoá rồi thêm lại chỉ thêm khoảng trống dễ sinh lỗi. Lựa chọn "Session attributes must be immutable." quá mạnh: yêu cầu thực tế chỉ là đối tượng khả tuần tự hoá khi phiên cần ghi ra ngoài, chứ không cấm đối tượng khả biến. Lựa chọn "Updates are always automatically replicated." nói ngược chính cái bẫy, vì việc nhân bản không tự xảy ra sau một thay đổi tại chỗ.
Cùng phần 6
How can Session Tracking be done?Có lời giảiCâu hỏiWhat is the most secure way to handle session invalidation during logout?Có lời giảiCâu hỏiAssuming that there is a link logout at the top of the profile.jsp, orderhistory.jsp.
<a href="logoutServlet">Logout</a>
When the client clicks the logout link, the following code in the logoutServlet runs:
HttpSession session = request.getSession();
//TODO
response.sendRedirect("login.jsp");
What is the best code to write in the TODO section to complete the logout function?Có lời giảiCâu hỏiCả 25 câu của chủ đề25 câu
Xuất hiện trong 2 bộ đề
Đi tiếp từ đây