Bài giảng Lập trình Java 5 - Bài 2: Controller
Sử dụng thành thạo @RequestMaping
Ánh xạ nhiều action
Ánh xạ phân biệt POST|GET
Ánh xạ phân biệt tham số
Nắm vững phương pháp nhận tham số
Sử dụng HttpServletRequest
Sử dụng @RequestParam
Sử dụng JavaBean
Sử dụng @PathVariable để nhận dữ liệu từ URL
Sử dụng @CookieValue để nhận cookie
Hiểu rõ kết quả của phương thức action
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình Java 5 - Bài 2: Controller", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình Java 5 - Bài 2: Controller
LẬP TRÌNH JAVA 5 BÀI 2: CONTROLLER MỤC TIÊU Sử dụng thành thạo @RequestMaping Ánh xạ nhiều action Ánh xạ phân biệt POST|GET Ánh xạ phân biệt tham số Nắm vững phương pháp nhận tham số Sử dụng HttpServletRequest Sử dụng @RequestParam Sử dụng JavaBean Sử dụng @PathVariable để nhận dữ liệu từ URL Sử dụng @CookieValue để nhận cookie Hiểu rõ kết quả của phương thức action @REQUESTMAPPING (1) Annotation @RequestMapping được sử dụng để ánh xạ một action đến một phương thức action trong Controller Khi người dùng đưa ra yêu cầu say-hello.htm thì phương thức action sayHello() sẽ thực hiện Trong một lớp @Controller có thể chứa nhiều phương thức action. @REQUESTMAPPING (2) @RequestMapping(“say-hello”) là cách viết thu gọn của @RequestMapping(value=“say-hello”) @RequestMapping() có thể được sử dụng để đặt trên lớp Controller để ánh xạ chung cho nhiều action method @REQUESTMAPPING (3) Hai cách ánh xạ này hoàn toàn tương đương nhau DEMOHomeController+ home/index + home/about + home/contact + home/feedback + home/faq PHÂN BIỆT POST|GET (1) Trong Servlet khi yêu cầu từ người dùng gửi đến server với phương thức web là GET thì phương thức doGet() của Servlet được thực hiện, ngược lại nếu phương thức web là POST thì doPost() được thực hiện Chú ý: Trường hợp POST duy nhất là khi bạn submit một form có thuộc tính method=“POST”. Các trường hợp GET thường gặp Nhập url vào ô địa chỉ của trình duyệt web Nhấp vào liên kết Submit form với method=“GET” PHÂN BIỆT POST|GET (2) Trong Spring MVC phân biệt POST|GET thông qua tham số method của phương thức action Như vậy khi yêu cầu user/login.htm được gửi đến server, Spring MVC sẽ gọi phương thức login() nào là tùy thuộc vào phương thức web GET hay POST PHÂN BIỆT POST|GET (3) Thông thường GET là để vào giao diện còn POST được sử dụng để xử lý các nút chức năng DEMO UserController + GET: user/login + POST: user/login PHÂN BIỆT THAM SỐ (1) Trong Spring MVC không những hỗ trợ gọi phương thức action phân biệt theo phương thức web mà còn cho phép phân biệt theo tham số truyền theo Với định nghĩa này khi gọi say-hello.htm phải có tham số mvc thì phương thức sayHello() mới được thực hiện PHÂN BIỆT THAM SỐ (2) Khi yêu câu student.htm thì phương thức nào sẽ thực hiện? Nếu có tham số btnInsert, btnUpdate, btnDelete hoặc lnkEdit thì các phương thức insert(), update(), delete() hoặc edit() sẽ thực hiện Nếu không có các tham số trên thì index() sẽ thực hiện Nếu có nhiều hơn 1 tham số trên thì sẽ báo lỗi TRANG SAU SẼ GỌI STUDENT.HTM [Thêm]=>insert() [Cập nhật]=>update() [Xóa]=>delete() [Nhập lại]=>index() [Sửa]=>edit() DEMO Chạy và giải thích student.htm LẬP TRÌNH JAVA 5 PHẦN 2 XỬ LÝ THAM SỐ NGƯỜI DÙNG Tham số là dữ liệu truyền đến server khi có yêu cầu từ người dùng dưới dạng các trường của form hoặc chuỗi truy vấn của liên kết Ví dụ Khi nhấp vào liên kết sau thì các tham số mark và name sẽ được truyền đến phương thức action Hello Khi nhấp vào nút Hello của form sau thì các tham số mark và name sẽ được truyền đến phương thức action Hello XỬ LÝ THAM SỐ Spring MVC cung cấp các phương pháp nhận tham số sau đây Sử dụng HttpServletRequest tương tự Servlet Sử dụng @RequestParam Sử dụng JavaBean Sử dụng @PathVariable để nhận một phần trên URL SỬ DỤNG HTTPSERVLETREQUEST Chỉ cần thêm đối số HttpServletRequest vào phương thức action là có thể nhận được tham số người dùng như Servlet SỬ DỤNG @REQUESTPARAM (1) Sử dụng @RequestParam thể hiện tính chuyên nghiệp hơn và có thể chuyển đổi tự động sang kiểu mong muốn. Ví dụ sau được sử dụng để nhận các tham số có tên là id và password SỬ DỤNG @REQUESTPARAM (2) @RequestParam(value, defaultValue, required) là dạng đầy đủ với ý nghĩa của các tham số: value: chỉ ra tên tham số muốn nhận defaultValue: là giá trị mặc định của tham số khi tham số không tồn tại required: tham số có bắt buộc hay không Ví dụ với khai báo nhận tham số sau @RequestParam(value=“tuoi", defaultValue=“20", required=false) Integer age Tên tham số là tuoi sẽ được nhận vào đối số là age Nếu không có tham số thì giá trị của age là 20 Tham số tuoi là không bắt buộc VÍ DỤ SỬ DỤNG JAVABEAN (1) Lớp JavaBean là lớp thỏa mãn các qui ước sau Phải được định nghĩa là public Phải có constructor không tham số Đọc ghi dữ liệu thông qua getter/setter SỬ DỤNG JAVABEAN (2) Thuộc tính của bean được xác định từ các getter và setter bằng cách Bỏ get và set và đổi ký tự đầu tiên của phần còn lại sang ký tự thường Ví dụ lớp User có 2 thuộc tính cho phép đọc/ghi là id và password Thuộc tính id được xác định từ getId() và setId() Thuộc tính password được xác định từ getPassword() và setPassword() Chú ý quan trọng: các trường dữ liệu không phải là thuộc tính của bean SỬ DỤNG JAVABEAN (3) Spring MVC cho phép sử dụng JavaBean để nhận các tham số cùng tên với các thuộc tính của bean. Với ví dụ này thì các thuộc tính id và password của đối số user sẽ nhận các giá trị từ các tham số cùng tên là id và password. SỬ DỤNG @PATHVARIABLE Spring MVC cho phép nhận một phần dữ liệu từ đường dẫn URL Ví dụ action edit() sau đây sẽ lấy được tên sinh viên từ URL student/Nguyễn Văn Tèo.htm Sửa NHẬN GIÁ TRỊ COOKIE Trong Servlet bạn có thể nhận cookie thông qua HttpServletRequest. Phương pháp này viết mã khá dài dòng, phức tạp. Trong Spring MVC bạn có thể sử dụng @CookieValue để nhận dữ liệu từ cookie Ví dụ này cho phép sử dụng đối số id để nhận giá trị của cookie có tên là userid @COOKIEVALUE @CookieValue(value, defaultValue, required) có 3 tham số và ý nghĩa như sau Value: tên cookie muốn nhận dữ liệu defaultValue: giá trị mặc định của cookie Required: có bắt buộc cookie userid có tồn tại hay không Ví dụ @CookieValue(value="userid", defaultValue="poly", required=false) String id Sử dụng đối số id để nhận giá trị của cookie có tên là userid Nếu cookie không tồn tại thì giá trị của id là poly Cookie này cho phép không tồn tại DEMO Đăng nhập 2 có ghi nhớ tài khoản ĐẦU RA CỦA PHƯƠNG THỨC ACTION Return của phương thức action không đơn thuần phải là tên của view mà có thể là 1 trong 3 trường hợp sau Tên view => ViewResolver sẽ xử lý để xác định view return “” Nội dung => được trả trực tiếp về client mà không qua ViewResolver. Trường hợp này phương thức action phải được chú thích bởi @ResponseBody return “” Lời gọi một action khác return “redirect:/” ĐẦU RA CỦA PHƯƠNG THỨC ACTION Trường hợp này rất hữu ích cho tương tác JSON, JavaScript, XML TỔNG KẾT NỘI DUNG BÀI HỌC Sử dụng thành thạo @RequestMaping Ánh xạ nhiều action Ánh xạ phân biệt POST|GET Ánh xạ phân biệt tham số Nắm vững phương pháp nhận tham số Sử dụng HttpServletRequest Sử dụng @RequestParam Sử dụng JavaBean Sử dụng @PathVariable để nhận dữ liệu từ URL Biết cách nhận Cookie với @CookieValue Hiểu rõ kết quả của phương thức action
File đính kèm:
- bai_giang_lap_trinh_java_5_bai_2_controller.pdf