Thứ Sáu, 13 tháng 6, 2014

Dispatcher

I: Dispatch

Dispatch là quá trình gửi request xử lý mã lệnh từ 1 hay nhiều đối tượng đến 1 đối tượng cụ thể chịu trách nhiệm xử lý mã lệnh phù hợp. Điều này cho phép bạn:

 + Chia tách logic xử lý mã lệnh khỏi phần giao diện. Việc này giúp chương trình của bạn giảm thiểu rủi ro khi giao diện ứng dụng được thiết kế lại hoặc thay đổi, di rời.
+ Chia tách mã lệnh xử lý cụ thể thành các Class tương ứng và chỉ phụ thuộc vào 1 Interface. 

II: RequestDispatcher 
-Nó là một giao diện, dùng để xác định một đối tượng mà có thể gửi yêu cầu đến bất kỳ tài nguyên nào (như HTML, hình ảnh, JSP, Servlet) trên server.

 

-Nó cung cấp hai phương pháp quan trọng:
    +forward (request, response) :  gửi yêu cầu từ một servlet sang một tài nguyên khác như servlet khác hay     trang JSP,  hoặc  HTML,
       
     

    +include (request, response) : thêm các nội dung của một tài nguyên như servlet, trang JSP  hay trang HTML) trong Response.



III: Demo
Implement an application as following:

Depends of the question, GateKeeper will forward request to corresponding Answers.



Bước 1: Tạo 1 new project (xem lại bài trước)


Bước 2:  Tạo thêm 1 trang  error.jsp để hiện thì nếu câu hỏi là sai


Bước 3 : Tại trang index, tạo 1 text box để nhập câu hỏi và 1 nút submit để gửi


Bước 4: Tạo trang servlet GateKeeper.java để nhận và xử lý thông tin từ trang index
             GateKeeper.java sẽ kiểm tra xem thông tin nhập ở trang índex có đúng không. Nếu đúng, nó sẽ        chuyển đến trang ResponServlet.java, còn không thì sẽ chuyển đến trang error.jsp


Bước 5: Tại trang GateKeeper.java
             + Tạo thêm hàm init() để add cứng dữ liệu(làm cho nhanh)


             +Tạo phương thức foward() để Request và Respon thông tin

               

Bước 6: Tạo trang servlet ResponServlet.java để xử lí yêu cầu và trả về kết quả



Kết quả:
      -Trang index:
           
      -Nếu câu hỏi sai::



      -Nếu câu hỏi đúng:



Demo https://drive.google.com/file/d/0B-EFzewQLSMDU1hlWkxKZjNrQWs/edit?usp=sharing

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

Đăng nhận xét