Tôi đã tìm hiểu trên web sau khi khắc phục sự cố vào chiều nay @ làm việc trong đó Cookie được thêm vào HttpServletResponse không được phản ánh đúng trong tiêu đề phản hồi vì Servlet của chúng tôi đã truy xuất PrintWriter của phản hồi (tức là response.getWriter()) trước khi chúng tôi thêm cookie. Bây giờ tôi biết rằng thực tiễn tốt nhất ra lệnh sửa đổi tiêu đề phản hồi (tức là thiết lập loại nội dung, thêm/chỉnh sửa Cookie, v.v.) phải được thực hiện trước cuộc gọi đến getWriter() nhưng, điều tôi đang tìm kiếm là: Tại sao?Tại sao tiêu đề HttpServletResponse không được cập nhật SAU getWriter() được gọi?
Chúng tôi đã suy đoán về lý do tại sao truy xuất PrintWriter có hiệu lực làm đóng băng các tiêu đề phản hồi nhưng tại sao đặc tả Servlet thực thi điều đó?
Cảm ơn Paul! Điều đó có ý nghĩa. Vì vậy, có lẽ Tomcat quá hăng hái về thời điểm xem xét các tiêu đề đóng để sửa đổi. Sai lầm của tôi là giả định rằng bất kỳ dữ liệu nào chúng tôi đã viết cho cơ quan phản hồi trước khi gọi out.flush() về cơ bản là không được cam kết, nhưng đó có thể không phải là trường hợp. Cảm ơn một lần nữa! –
Câu trả lời đáng yêu và tham khảo thú vị. Cảm ơn Paul. –