What happens to request attributes when sendRedirect() is used?
4 phương ánCó giải thích
request.setAttribute("data", "value");
response.sendRedirect("result.jsp");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: "Attributes are lost". sendRedirect() trả cho trình duyệt một phản hồi chuyển hướng kèm header Location, trình duyệt tự mở một yêu cầu HTTP thứ hai tới result.jsp, và container dựng một đối tượng HttpServletRequest hoàn toàn mới cho yêu cầu đó; attribute vừa đặt chỉ sống trong đối tượng yêu cầu cũ nên trang đích không đọc được. Muốn giữ dữ liệu thì forward để ở lại trong cùng một yêu cầu, hoặc đặt vào session, hoặc nối vào query string. "Attributes are retained" là hành vi của forward qua RequestDispatcher chứ không phải của chuyển hướng. "They are automatically sent to the next page" sai vì phản hồi chuyển hướng chỉ mang địa chỉ mới, không mang theo attribute nào. "They are converted to session attributes" sai vì container không bao giờ tự nâng phạm vi của attribute, muốn lên phiên thì phải tự gọi setAttribute() trên session.
Cùng phần 10
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây