Request dispatcher gồm 2 phương thức là include (để lấy nội dung của một trang
khác vào servlet hiện thời. Phương thức forward để chuyển đến 1 URL khác. Bạn
có thể lấy RequestDispatcher theo 1 trong 3 cách sau:
·
Sử dụng phương thức getRequestDispatcher của javax.servlet.ServletContext
interface, tham số truyền vào là chuỗi chứa đường dẫn tới tài nguyên khác.
Đường dẫn là đường dẫn tương đối với gốc của ServletContext.
·
Sử dụng phương thức getRequestDispatcher của javax.servlet.ServletRequest
interface, tham số truyền vào là chuỗi chứa đường dẫn tới tài nguyên khác. Đường
dẫn là tương đối với HTTP request hiện hành. Đường dẫn có thể là tương đối
nhưng nó ko thể mở rộng ra ngoài servlet context hiện hành.
·
Sử dụng phương thức getNamedDispatcher của javax.servlet.ServletContext
interface, tham số truyền vào là chuỗi chứa tên của tài nguyên khác (VD: tên 1 servlet
được định nghĩa trong web.xml).
Sự khác biệt giữa 2 phương thức này là javax.servlet.Context.getRequestDispatcher()
có thể dùng đường dẫn tương đối.
request.getRequestDispatcher("/index.jsp").include(request,
response);
request.getRequestDispatcher("/index.jsp").forward(request,
response);
forward() method:
Include() method:
Demo:Implement an application as following:
Depends of the question, GateKeeper will forward request to corresponding Answers.
Bước 1:Tạo mới một Project
Bước 2:Tạo thêm 1 trang none.jsp nếu câu hỏi ta nhập vào la sai.
Bước 3:Tại trang Index tạo form chứa 1 textbox và 1 nút submit để gửi thông tin đi
Bước 4:Tạo GateKeeper Servlet để nhận thông tin từ trang Index.html,và sẽ kiểm tra xem thông tin nhập từ trang Index có đúng hay không,nếu thông tin đúng sẽ chuyển tiếp tới Response Servlet,còn thông tin sai sẽ về trang None.jsp
Bước 5:Override phương thức init() để thêm dữ liệu
Bước 6:Tạo phương thức forward để request va response thông tin
Bươc 7:Tạo Response Servlet để tiếp nhận và trả thông tin
Kết quả: Giao diên tại trang Index
Giao diên khi câu hỏi đúng
Giao diên khi câu hỏi sai
Tham khảo bài ở đây
Trả lờiXóa