Thứ Ba, 16 tháng 9, 2014

Request Dispatcher

1. Request Dispatcher là gì: 
  • Cho phép request, response sang tới 1 servlet khác.
  • Giúp trang web trở nên linh động nhờ các phần phân bố riêng lẻ, dễ quản lí các thành phần, chức năng.
2. Request Dispatcher gồm 2 phương thức: 


  • Include(): thêm nội dung vào response trả về từ 1 thành phần của website. Ví dụ đơn giản như bạn có thể viết những thành phần tĩnh hoặc động và chèn vào trang web giúp cho dễ sửa và dễ sắp xếp các thành phần trong website cũng như quản lý. 
  •  

  • Forward(): cho phép chuyển tới 1 địa chỉ khác.
3. Bài tập:
Bước 1: Tạo project
Bước 2: Thêm form:
Chèn đoạn form sau vào index.html như ảnh:
        <form action="GateKeeperServlet">
            <input name="question" />
            <input type="submit" />
        </form>

 Bước 3: Tạo 4 servlet: Answer1, Answer2, Answer3, GateKeeperServlet
Chèn  @WebServlet(name = "Answer1", urlPatterns = {"/Answer1"}) như sau:
 và  out.println("<h1>My name is Mr.A</h1>"); như sau:
Các servlet  Answer2, Answer3 làm tương tự như Answer1.
Sau đó, mở servlet GateKeeperServlet, chèn đoạn code như 2 hình dưới đây:

private ArrayList<String> listQuestion;

    @Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config); //To change body of generated methods, choose Tools | Templates.
        listQuestion = new ArrayList<String>();
        listQuestion.add("What is your name ? ");
        listQuestion.add("How old are you ? ");       
    }
            String question = request.getParameter("question");
            if(question.equals("What is your name"))
            {
                RequestDispatcher rd =  request.getRequestDispatcher("Answer1");
                rd.forward(request, response);
            }
            else if(question.equals("How old are you"))
            {
               RequestDispatcher rd = request.getRequestDispatcher("Answer2");
               rd.forward(request, response);
            }
            else
            {
               RequestDispatcher rd = request.getRequestDispatcher("Answer3");
               rd.forward(request, response);
            }


Sau đó chạy chương trình, ta được:










Không có nhận xét nào:

Đăng nhận xét