Giới thiệu nội dung bài viết

Chào bạn, ai đang học Spring MVC nhưng chưa hiểu luồng đi của ứng dụng nó chạy như thế nào. Ví như khi người dùng gõ một url như sau vào trình duyệthttp://localhost8080 thì vận dụng mình đã chạy qua các tầng như thế nào của springmvc để trả kết quả là trang home cho người dùng thấy được ?Trong bài bác này anh sẽ hướng dẫn hồ hết người công việc mà spring mvc giải pháp xử lý một request (yêu cầu) từ người dùng. Anh vẫn đi qua những chủ đề sau

Luồng đi của vận dụng Spring MVC clip tạo một dự án công trình bằng Spring MVC

1. Luồng đi của vận dụng MVC qua những tầng

Trước hết mình trải qua hình hình ảnh về luồng đi của áp dụng spring mvc tất cả có các thành phần nào.

Bạn đang xem: Hướng dẫn lập trình spring mvc

*

Người cần sử dụng điền vào thương hiệu website mình cần truy vấn trên browser tiếp đến bấm enter. Hôm nay mình gởi 1 request lên server vị trí mà mình thực thi ứng dụng Spring.

Thành phần DispatcherServlet của Spring MVC sẽ nhận được request (yêu cầu) của người tiêu dùng ở cách 1. Dispatcher là thành phần quan trọng nhất vào springmvc. Nó đã là nơi trước tiên nhận request từ client kế tiếp sẽ đưa request đó tới các controller tương ứng, đồng thời đang là chốt chặn sau cuối trả về công dụng cho client.

Sau khi nhận được request(yêu cầu) DispatcherServlet sẽ gửi yêu ước đó cho tới Controller bằng những cơ chế mapping nhưng ta khai báo trong Handler Mapping. Tất cả 4 cách chúng ta có thể dùng để mapping một request vào controller tương ứng

1- biện pháp 1 : sử dụng BeanNameUrlHandlerMapping

Đây là cơ chế mapping mặc định. Nhờ vào tên của URL nhưng mà nó đã mapping cho tới controller tương ứng. Anh đem ví dụ http://localhost/hello thì nó sẽ mapping vào đúng controller HelloController bởi nó trùng tên là Hello.

Sử dụng Java configure

123456789101112
Configurationpublic class BeanNameUrlHandlerMappingConfig
Bean BeanNameUrlHandlerMappingConfig beanNameUrlHandlerMapping() return new BeanNameUrlHandlerMapping();
Bean("/HelloUrl") public WelcomeController hello() return new HelloController();
Sử dụng XML Configure

12bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />/hello" class="com.levuguyen.HelloController" />
2- biện pháp 2 : dùng SimpleUrlHandlerMapping

SimpleUrlHandlerMapping thì uyển gửi hơn BeanNameUrlHandlerMapping. Chúng ta cũng có thể name hoặc url nhằm mapping tới controller tương ứng.

Ví dụ thực hiện Java Confiure.

Xem thêm: Mê Cung Tập 21 Vtv Giải Trí

123456789101112131415161718
Configurationpublic class SimpleUrlHandlerMappingConfig
Bean public SimpleUrlHandlerMapping simpleUrlHandlerMapping() SimpleUrlHandlerMapping simpleUrlHandlerMapping = new SimpleUrlHandlerMapping(); MapString, Object> urlMap = new HashMap(); urlMap.put("/simpleUrlWelcome", hello()); simpleUrlHandlerMapping.setUrlMap(urlMap); return simpleUrlHandlerMapping;
Bean public HelloController hello() return new HelloController();
Ví dụ áp dụng XML Configure
123456789bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> mappings"> /simpleUrlWelcome=hello /*/simpleUrlWelcome=hello hello" class="com.xavipacheco.com.HelloController" />
3- phương pháp 3 : ControllerClassNameHandlerMapping

ControllerClassNameHandlerMapping hiện thời không được cung cấp trong version Spring 5.

Chúng ta trọn vẹn có thể thông số kỹ thuật cách cơ mà URL mapping vào controller theo tên hay theo đường dẫn để mapping vào controller tương ứng.

Sau lúc vào controller khớp ứng thì từ controller ta call services, service gọi repository, repository sẽ thực hiện tầng persistent để thao tác làm việc với database lấy tài liệu .và gửi hoá tài liệu trong database thành mã sản phẩm và trả trái lại cho controller.

Controller sẽ trả về tên view (tên trang web ) và model cho Dispatcherletter.

DispatcherServlet sẽ phụ thuộc tên view nhưng mà controller trả về . Nó sẽ đi tìm trang view (thymeleaf,jsp) tương ứng dựa vào việc ta thông số kỹ thuật Viewresolver mà Dispatcher biết bắt buộc tìm thấy trang view ở chỗ nào đồng thời truyền model để trang view gọi thị dữ liệu. Hiệu quả cuối cùng là ta bao gồm một trang website hoàn chỉnh có HTML cùng dữ liệu. Bạn có thể cấu hình tầng view rất có thể trả về dạng html, jsp , hoặc xml hoặc json như sau

12345678
Beanpublic ViewResolver internalResourceViewResolver() InternalResourceViewResolver bean = new InternalResourceViewResolver(); bean.setViewClass(JstlView.class); bean.setPrefix("/WEB-INF/view/"); bean.setSuffix(".jsp"); return bean;
Chúng ta thực hiện internalResourceViewResolver để thông số kỹ thuật nơi nào chúng ta đặt các cái view (/WEB-INF/view/). Trang kết quả trả về là html,xml, hoạc jsp (bean.setSuffix(“.jsp”).

ở đầu cuối DispatcherServlet nhờ cất hộ lại tác dụng trang web mang lại client. Như vậy bọn họ thấy trang web được ra đời ở phía server tiếp nối nó mới được giữ hộ lại cho tất cả những người dùng.

2. Với bây giờ, hãy cùng xem code thử nghiệm ở bên dưới để hiểu rõ hơn nhé
*
Play

Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các clip mới duy nhất về chuyên môn và khả năng mềm


các khoá học tập lập trình MIỄN PHÍ tại trên đây


Comments
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *