Thứ Sáu, 5 tháng 9, 2014

Toturial 7 - Dispatcher Servlet in Java Web Application


1. Dispatcher là gì ?
  - DispatcherServlet là 1 Servlet thực tế, được thừa kế từ các lớp HTPPServlet cơ sở và được khai báo trong các file Web.xml của ứng dụng web.

2. DispatcherServlet có tác dụng gì ?
  - Khi user gửi 1 request đến servlet, Dispatcher sẽ xác định 1 đối tượng mà user đã request đến bất cứ resource nào đó (servlet,HTML,JSP file ..) trong server. Servlet Container sẽ tạo ra 1 đối tượng tên là RequestDispatcher, được sử dụng như 1 cái wrapper quanh 1 server resource đặt tại 1 đường dẫn cụ thể hoặc 1 tên cụ thể
  - Nó gồm 2 method chính như sau :
      + Forward : Dùng để chuyển hướng request của người dùng đến 1 URL khác
      + Include : Lấy nội dung của 1 trang khác rồi chèn vào Servlet hiện thời

3. Cách dùng Dispatcher 
  - Để hiểu 1 cách rõ ràng về Dispatcher , mời các bạn xem 1 ví dụ sau.

Mình tạo 1 trang Login như hình dưới


Như hình trên, action của form sẽ mang đến checkUser, hãy tạo 1 Servlet tên checkUser, trong checkUser sẽ có 2 List để chứa user name và password.


Tiếp theo trong method progressRequest các bạn phải request 2 parameter là user name và password, sau đó chúng ta phải khởi tạo 1 RequestDispatcher ,


Tiếp theo là  khởi tạo 1 RequestDispatcher

Ở hình dưới nếu như user name và password không trùng với user name và password trong 2 list đã tạo thì nó sẽ chuyển đến trang register.jsp. Còn nếu như trùng thì nó sẽ chuyển đến servlet logined.

Các bạn lưu ý - Như mình đã viết ở trên," RequestDispatcher có thể request đến bất cứ resource nào đó (servlet, HTML,JSP file ..) "

Các bạn tạo 2 file mà các bạn muốn RequestDispatcher chuyển đến rồi build and run. Chúc thành công


Bài tập Plus :

Implement an application as following :

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

Bài giải : Theo yêu cầu của đề bài thì mình sẽ làm 1 web application có chức năng là tính toán, mỗi operation thì sẽ được hiện kết quả ở mỗi trang khác nhau.

Đầu tiên các bạn tạo 1 trang caculator như hình dưới,

Tiếp đến action sẽ là autoAnswer, các bạn tạo 1 Servlet tên autoAnswer và thêm vào các biến như hình dưới


Tiếp đến là thêm vòng lặp Switch, nó sẽ chạy theo value của biến operation, setAttribute để ta có thể lấy ra giá trị của result, mỗi 1 operation sẽ được chuyển đến 1 trang khác nhau

 Ở đây mình demo nó sẽ dùng Operation (+) , trang count.jsp của mình sẽ có getAttribute để nhận result .


Oki, các bạn làm theo đúng như trên sau đó build and run. Chúc thành công :)




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

Đăng nhận xét