Consider the code:

4 phương ánCó giải thích
Đề bài
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
      response.getWriter().println("Hello, World!");      (*)
  }
}

Choose the correct statement.

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: "The web container created this resource at line (*), so it is responsible for closing it.". Dòng in văn bản lấy bộ ghi từ chính đối tượng phản hồi, tức một tài nguyên do container cấp và gắn với vòng đời của phản hồi đó. Khi phương thức phục vụ kết thúc, container tự đẩy hết bộ nhớ đệm rồi chốt dòng ra, nên mã ứng dụng không cần và không nên tự đóng; đóng sớm còn chặn các mắt xử lý sau ghi thêm nội dung. Lựa chọn nói "you needs to close the resource to not throw an exception" vì thế sai hai chỗ: tài nguyên không do servlet tạo, và việc không đóng cũng chẳng sinh ngoại lệ. Lựa chọn cho rằng đoạn mã "has a syntax error, because it does not use" một tên lớp bộ ghi cụ thể cũng sai, bởi phương thức đã trả về đúng kiểu bộ ghi ký tự nên không cần khai thêm gì để biên dịch. Lựa chọn nói mã "cannot print the plain text to the response body" nếu không chép sang phương thức xử lý dữ liệu gửi lên thì lẫn vai hai phương thức: trình duyệt mở trang bằng GET nên bản doGet đã đủ.

Cùng phần 2

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