Spring MVC Phần 2 - Kỹ thuật vận dụng phát triển Web Backend
Bạn có thể hiểu từ cơ bản đến hoàn thiện tất cả các công nghệ web cần thiết cho việc phát triển ứng dụng web.
Trong phần 2 của MVC, bạn có thể học tất cả các kỹ thuật ứng dụng cần thiết cho phát triển web thực tế dựa trên các nguyên lý và cấu trúc cốt lõi của phần 1.
Tôi chưa kịp thở thì bài giảng đã đến và tôi đọc xong ngay.
Trước khi MVC 2 ra mắt
Trưởng nhóm, trước tiên tôi phải củng cố lộ trình của JPA và đang làm việc trên Spring Data JPA.
Tôi đã sử dụng mybatis và học JPA, vì vậy tôi đã nghĩ, ôi, Shinsegae.
Trùng hợp là bài giảng MVC 2 ra nên mình chỉ xem phần đầu một lát, xong lộ trình JPA, phải nghe lại bài giảng Mv 2, nhưng Time Leap vui quá nên mình nghe mãi haha.
Tôi háo hức chờ đợi bài giảng sắp tới đến mức muốn bắt cóc trưởng nhóm, trói anh ta dưới tầng hầm và bắt anh ta chỉ quay phim bài giảng.
5.0
먼길
100% đã tham gia
Cuối cùng tôi đã hoàn thành khóa học. Tôi nghĩ lần đầu tiên tôi bắt đầu khóa học này là vào đầu tháng 11 năm ngoái. Lúc đó tôi có nghe nói đến việc quốc tế hóa thông điệp nhưng nó không gây ấn tượng tốt với tôi và không thể hiểu được nên tôi đã bỏ cuộc. Và tôi lang thang khắp YouTube, thử nhiều thứ có vẻ thú vị, nghiên cứu những kiến thức cơ bản về Java (tôi cần làm nhiều hơn) và SQL (tôi cần làm nhiều hơn) và đi loanh quanh theo vòng tròn. Và kể từ tháng trước, tôi đã xem lại nó với tốc độ đều đặn từ phần giới thiệu đến mùa xuân cho đến đầu bộ truyện cho đến tận bây giờ. Điều đáng ngạc nhiên là tôi có thể hiểu rõ nội dung lớp học mà không gặp bất kỳ khó khăn nào. Tuy nhiên, dù hiểu rất rõ nhưng tôi không biết có nên coi là lạ không khi tôi không có nhiều câu hỏi hơn nội dung buổi học. Có rất nhiều câu hỏi phái sinh được đặt ra, nhưng vì tôi không phải là một trong số đó nên có vẻ như vẫn còn một chặng đường dài phía trước. Dù sao thì tôi cũng rất hài lòng vì chỉ cần theo dõi và hiểu rõ nội dung lớp học.
Khi lần đầu tiên nhìn thấy bài giảng của Younghan mà trước đó tôi chưa biết gì, tôi đã nghĩ, tại sao anh ấy lại dạy như thế này? Những gì tôi làm bây giờ đã quen thuộc và dễ hiểu, đồng thời tôi nhận ra rõ ràng rằng đó thực sự là một phong cách tốt hơn. Điều tương tự cũng xảy ra với MVC phần 2 này. Giờ đây, những cuốn sách về những con suối từng trông đáng sợ trong các hiệu sách giờ đây có thể trông thân thiện. Ai cũng biết môn học này là để củng cố nền tảng và cội rễ, nhưng tôi cũng xấu hổ và tự hào vì mình, với tư cách là một học viên, đang tham gia vào cuộc hành trình của một kiệt tác xứng đáng với danh hiệu chinh phục trọn vẹn. Tôi mất một lúc để lấy lại hơi thở và tự hỏi khi nào tôi sẽ xem và theo dõi tất cả những điều này trong quá khứ, nhưng trước khi tôi kịp nhận ra thì chỉ còn lại một bài giảng gần đây. Tôi định theo dõi bài giảng cuối cùng còn lại khi rảnh rỗi và sau đó bắt đầu lại từ đầu, điều này rất thiết thực. Khi viết bài này, tôi viết về hành trình mà tôi đã trải qua thay vì ôn lại lớp học. Chúc các bạn cùng học may mắn!
5.0
hanul_kr
100% đã tham gia
Chỉ cần đọc lộ trình của Kang thôi là tim tôi đã tràn ngập niềm vui rồi…
Một bài giảng dạy cho bạn chính xác những gì bạn muốn học
Một bài giảng cho phép bạn tự đọc tài liệu tham khảo
Ngay cả một bài giảng vui vẻ
Mọi người đang làm gì mà không nghe máy vậy?!
Đừng lo lắng, chỉ cần trả tiền
Thời gian khó mua được bằng tiền!
Nhưng bài giảng của Younghan Kim đã làm được điều đó!
Bạn sẽ nhận được điều này sau khi học.
Công nghệ web Java backend
Công nghệ Spring Web
Spring MVC
Phải hiểu rõ nguyên lý mới thấy được cốt lõi! Phần ứng dụng Spring MVC của Kim Young-han 👨💻
📌 Vui lòng kiểm tra trước khi học!
Bài giảng này là bài giảng thứ năm trong loạt bài Chinh phục hoàn toàn Java Spring. Vui lòng kiểm tra trước lộ trình Chinh phục hoàn toàn Spring của Kim Young-han, Giám đốc kỹ thuật trẻ nhất tại Woowa Brothers. (Đi đến ngay)
Khung làm việc (framework) web phổ biến nhất
Hầu hết các ứng dụng hiện đại đều là ứng dụng web hoạt động trong môi trường web. Khi phát triển các ứng dụng web này, hầu hết các nhà phát triển Java backend đều sử dụng Spring MVC. Spring MVC là khung làm việc (framework) web phổ biến nhất, giúp phát triển các ứng dụng web phức tạp một cách dễ dàng và nhanh chóng.
Lý do tại sao việc học công nghệ web backend lại khó khăn
Công nghệ web Java Backend rất rộng lớn và có khối lượng kiến thức cần học rất nhiều. Đặc biệt, Spring MVC cung cấp nhiều tính năng và có cấu trúc phức tạp. Để học tốt các công nghệ web này, trước tiên bạn cần hiểu rõ các nguyên lý và cấu trúc cốt lõi của Spring MVC, sau đó dựa trên nền tảng đó để chinh phục từng kỹ thuật ứng dụng web rộng lớn.
✅ Vui lòng kiểm tra kiến thức tiên quyết.
Vui lòng xác nhận xem bạn đã hiểu các nguyên lý và cấu trúc cốt lõi của Spring MVC cần thiết cho phát triển web thông qua bài giảng trước <Spring MVC Phần 1> hay chưa.
1. Từ sự khởi đầu của công nghệ Java Web cho đến các kỹ thuật thực tế mới nhất 2. Trực tiếp phát triển MVC Framework bằng mã nguồn
Mục tiêu bài giảng
Cho đến nay, chúng ta đã học về các kỹ thuật nền tảng của Java Backend và Spring MVC. Trong bài giảng này, chúng ta sẽ học về các kỹ thuật ứng dụng thực tế thiết yếu dựa trên những nền tảng đã học.
Trong khóa học <Spring MVC Phần 2>
Trong phần 2 của Spring MVC, dựa trên nền tảng Spring MVC đã học ở phần 1, bạn có thể hoàn toàn chinh phục các kỹ thuật ứng dụng web đồ sộ thông qua các ví dụ thực tế như View Template, Message, Quốc tế hóa, Validation, Cookie, Session, Filter, Interceptor, Xử lý ngoại lệ, Type Converter và Upload file, vốn là những kiến thức cực kỳ cần thiết trong thực tế.
Dựa trên các nguyên lý và cấu trúc cốt lõi của Spring MVC, tôi sẽ giúp bạn hoàn thiện các kỹ thuật ứng dụng web rộng lớn thông qua mã ví dụ thực tế, đồng thời giúp bạn phát triển thành một nhà phát triển web backend chuyên sâu hơn.
Mục tiêu: Mục tiêu của khóa học này là hoàn thiện tất cả các kỹ thuật web cần thiết khi phát triển ứng dụng web backend trong thực tế.
Từ cơ bản về web đến thực tế: Mặc dù nội dung tập trung nhiều vào phát triển thực tế, nhưng khóa học được cấu trúc theo từng bước để ngay cả những nhà phát triển chưa có kinh nghiệm phát triển ứng dụng web cũng có thể thích nghi được. (Bạn nên học Spring MVC phần 1 trước khi học phần 2.)
Từ khái niệm đến vận dụng: Không chỉ đơn thuần giải thích cách sử dụng công nghệ, mà còn giải thích cùng với các nguyên lý cốt lõi và phương án vận dụng, lý do tại sao công nghệ này lại cần thiết và nó đã ra đời như thế nào.
Tập trung vào ví dụ thực tế: Bạn sẽ được học một cách tự nhiên tất cả các quy trình cần thiết khi phát triển ứng dụng web bằng Spring trong thực tế thông qua các ví dụ, đồng thời tôi sẽ truyền đạt cho bạn những Best Practice trong công việc thực tế.
Sự súc tích: Tôi đã mạnh dạn loại bỏ các tính năng Spring MVC cũ không còn được sử dụng trong thực tế. Nội dung sẽ tập trung giải thích các phần chủ yếu được dùng trong thực tiễn hiện nay.
Đối tượng học viên đề xuất
Spring MVC dành cho nhà phát triển mới tiếp cận lần đầu
Nhân viên phát triển Backend Sinh viên đang chuẩn bị xin việc
Nhà phát triển đang làm việc muốn hiểu sâu về Spring MVC
Nhà phát triển muốn tạo ứng dụng web bằng Spring
Nội dung đề cập
Thymeleaf
Thymeleaf là một template engine phía máy chủ (Server-Side View) dành cho các nhà phát triển backend. Bằng cách sử dụng Thymeleaf, các nhà phát triển backend có thể tạo ra các trang HTML động một cách dễ dàng và nhanh chóng mà không cần đến sự hỗ trợ của các nhà phát triển frontend riêng biệt.
Trong khóa học này, chúng ta sẽ học mọi thứ từ các chức năng cơ bản của Thymeleaf đến việc tích hợp với Spring, cũng như các chức năng quản lý form phức tạp như checkbox, radio button và select box thông qua việc thực hành các ví dụ.
Thông điệp, Quốc tế hóa
Khi ứng dụng web ngày càng lớn và phức tạp, chúng ta cần quản lý các thông điệp (message) khác nhau một cách nhất quán tại một nơi duy nhất. Ví dụ, nếu muốn đổi từ "Tên sản phẩm" (상품명) thành "Tên của sản phẩm" (상품 이름), bạn sẽ phải chỉnh sửa mã nguồn của rất nhiều tệp tin. Bằng cách sử dụng tính năng Message mà Spring cung cấp, bạn có thể quản lý và sửa đổi những điều này cùng một lúc.
Quốc tế hóa là tính năng hiển thị trang web bằng tiếng Anh cho người dùng sử dụng tiếng Anh và hiển thị bằng tiếng Hàn cho người dùng sử dụng tiếng Hàn. Spring đã cung cấp sẵn tính năng quốc tế hóa này. Trong bài giảng, chúng ta sẽ học từng bước về chức năng thông báo và quốc tế hóa mà Spring cung cấp thông qua các ví dụ thực tế.
Kiểm chứng (Validation)
Khi khách hàng nhập sai giá trị vào biểu mẫu đăng ký thành viên và gửi lên máy chủ, máy chủ phải kiểm tra giá trị đó, hiển thị lại biểu mẫu cho khách hàng và hướng dẫn tận tình xem phần nào đã bị nhập sai. Phương thức này là một tính năng thiết yếu cho mọi dịch vụ web.
Trong bài giảng này, trước tiên chúng ta sẽ tự mình phát triển các tính năng kiểm tra dữ liệu (validation) này. Sau đó, chúng ta sẽ sử dụng các tính năng kiểm tra dữ liệu do Spring cung cấp, và xa hơn nữa là học từng bước thông qua các ví dụ về tính năng Bean Validation, giúp thực hiện việc kiểm tra dữ liệu một cách cực kỳ tiện lợi chỉ với một Annotation.
Cookie, Session
HTTP là một giao thức không trạng thái (stateless). Do đó, để duy trì tính năng đăng nhập, cần có các khái niệm như Cookie và Session. Trong bài giảng, trước tiên chúng ta sẽ thử tạo tính năng đăng nhập chỉ bằng Cookie. Sau khi xác nhận xem có những vấn đề bảo mật nào, chúng ta sẽ tự tay tạo và áp dụng Session.
Thông qua quá trình tự mình tạo ra session như thế này, bạn có thể hiểu sâu hơn về cách thức hoạt động của cookie và session. Sau đó, chúng ta sẽ tìm hiểu thêm và áp dụng session do Servlet cung cấp.
Filter, Interceptor
Thông qua các ví dụ, chúng ta sẽ tìm hiểu về Bộ lọc (Filter) do Servlet cung cấp và Bộ chặn (Interceptor) do Spring cung cấp.
Đầu tiên, chúng ta sẽ tạo chức năng ghi log cho tất cả các yêu cầu HTTP đơn giản nhất bằng Filter và Interceptor, sau đó sẽ tạo chức năng xử lý xác thực cũng bằng Filter và Interceptor. Bằng cách sử dụng cả hai cùng lúc như thế này, bạn có thể hiểu rõ ưu và nhược điểm của từng loại.
Xử lý ngoại lệ
Khi học về ứng dụng web, phần khó hiểu nhất chính là xử lý ngoại lệ (Exception Handling). Đó là bởi vì Servlet Container (WAS) và Spring MVC mỗi bên đều cung cấp phương pháp xử lý ngoại lệ riêng. Và trên thực tế, cơ chế xử lý ngoại lệ hoạt động một cách phức tạp do sự kết hợp của cả hai. Vì vậy, rất khó để các nhà phát triển hiểu chính xác và sử dụng cách thức hoạt động bên trong của Spring và Servlet Container khi có ngoại lệ xảy ra tại Controller.
Trong bài giảng, tôi sẽ giải thích từng bước một, từ xử lý ngoại lệ của Servlet Container cho đến xử lý ngoại lệ của Spring MVC. Vì vậy, sau khi nghe bài giảng, bạn có thể hiểu rõ cách thức hoạt động bên trong máy chủ khi có ngoại lệ thực tế xảy ra và cần phải thay đổi ở điểm nào. Ngoài ra, tôi cũng sẽ giải thích cả cách xử lý ngoại lệ khi sử dụng API.
Bộ chuyển đổi kiểu dữ liệu Spring (Spring Type Converter)
Trong quá trình phát triển ứng dụng, có rất nhiều trường hợp cần phải chuyển đổi kiểu dữ liệu, chẳng hạn như chuyển đổi từ chuỗi sang số hoặc ngược lại từ số sang chuỗi. Ví dụ, ngay cả khi chuỗi "10" được truyền đến từ yêu cầu HTTP, Spring vẫn có thể nhận nó dưới dạng số 10 kiểu Integer thông qua @RequestParam. Spring cung cấp tính năng gọi là Type Converter để hỗ trợ chuyển đổi kiểu dữ liệu một cách nhất quán.
Bộ chuyển đổi kiểu dữ liệu (Type Converter) là nội dung được đề cập rất nhiều khi học Spring, nhưng không dễ để hiểu sâu về cách thức hoạt động thực tế của nó. Thông qua bài giảng này, bạn có thể hiểu từng bước từ cơ bản đến ứng dụng của bộ chuyển đổi kiểu dữ liệu thông qua các ví dụ.
Tải lên tệp
Trên internet có rất nhiều ví dụ về việc tải tệp lên (file upload). Trong bài giảng này, không chỉ dừng lại ở việc giải thích các tính năng tải tệp lên, chúng tôi sẽ giải thích chuyên sâu về các giao thức được sử dụng để tải tệp và nguyên lý giúp việc tải tệp có thể thực hiện được trên HTTP. Sau đó, chúng ta sẽ học từng bước thông qua các ví dụ, bắt đầu từ tính năng tải tệp lên bằng Servlet cho đến phương thức tải tệp tiện lợi mà Spring cung cấp.
Cấu trúc bài giảng Spring MVC
Khóa học Spring MVC được chia làm 2 phần. Khóa học này là Spring MVC Phần 2 - Kỹ thuật vận dụng phát triển Web Backend.
Củng cố các khái niệm cốt lõi của công nghệ web Java và Spring MVC, đồng thời tìm hiểu các chức năng cơ bản của Spring MVC. Phần 1 trước tiên sẽ giới thiệu về công nghệ web backend Java, sau đó tìm hiểu toàn bộ các công nghệ web từ Servlet, JSP, mô hình MVC cho đến MVC Framework. Sau khi đã hiểu rõ bối cảnh của công nghệ web, chúng ta sẽ củng cố vững chắc các khái niệm cốt lõi của Spring MVC. Tiếp theo, chúng ta sẽ học các chức năng cơ bản của Spring MVC và phát triển một trang web có khả năng thực hiện các thao tác CRUD cơ bản bằng cách sử dụng Spring MVC.
Học các kỹ thuật sử dụng đa dạng của Spring MVC. Phần 2 sẽ học về Thymeleaf, Message, Quốc tế hóa (Internationalization), Kiểm chứng (Validation), Cookie, Session, Filter, Interceptor, Xử lý ngoại lệ và các tính năng chung, Điểm mở rộng, v.v. bằng cách phát triển dần dần một ví dụ thực tế và học các kỹ thuật sử dụng đa dạng của Spring MVC thông qua mã nguồn.
Series Chinh phục hoàn toàn Spring sắp tới
Tôi đang chuẩn bị một series giúp bạn có thể làm chủ hoàn toàn Spring. Tôi dự định sẽ truyền đạt những bí quyết thực tế, tập trung vào các tính năng cốt lõi của Spring được sử dụng trong công việc thực tế, và mạnh dạn lược bỏ những tính năng cũ hoặc không còn được sử dụng thực tiễn.
Tôi chưa kịp thở thì bài giảng đã đến và tôi đọc xong ngay.
Trước khi MVC 2 ra mắt
Trưởng nhóm, trước tiên tôi phải củng cố lộ trình của JPA và đang làm việc trên Spring Data JPA.
Tôi đã sử dụng mybatis và học JPA, vì vậy tôi đã nghĩ, ôi, Shinsegae.
Trùng hợp là bài giảng MVC 2 ra nên mình chỉ xem phần đầu một lát, xong lộ trình JPA, phải nghe lại bài giảng Mv 2, nhưng Time Leap vui quá nên mình nghe mãi haha.
Tôi háo hức chờ đợi bài giảng sắp tới đến mức muốn bắt cóc trưởng nhóm, trói anh ta dưới tầng hầm và bắt anh ta chỉ quay phim bài giảng.
Hahaha, Dokkabei97, cảm ơn bạn rất nhiều vì đã sửa lỗi đánh máy và để lại nhận xét! Nhìn vào các đánh giá khóa học, tôi nghĩ mình cần phải nỗ lực hơn nữa haha.
Tôi cũng ủng hộ bạn. làm đi!
Tôi giới thiệu khóa học này cho tất cả các nhà phát triển biết và sử dụng Spring như một 'ma thuật';
Đây là bài giảng giải thích rõ ràng rằng mùa xuân là một 'khoa học';
Cuối cùng tôi đã hoàn thành khóa học. Tôi nghĩ lần đầu tiên tôi bắt đầu khóa học này là vào đầu tháng 11 năm ngoái. Lúc đó tôi có nghe nói đến việc quốc tế hóa thông điệp nhưng nó không gây ấn tượng tốt với tôi và không thể hiểu được nên tôi đã bỏ cuộc. Và tôi lang thang khắp YouTube, thử nhiều thứ có vẻ thú vị, nghiên cứu những kiến thức cơ bản về Java (tôi cần làm nhiều hơn) và SQL (tôi cần làm nhiều hơn) và đi loanh quanh theo vòng tròn. Và kể từ tháng trước, tôi đã xem lại nó với tốc độ đều đặn từ phần giới thiệu đến mùa xuân cho đến đầu bộ truyện cho đến tận bây giờ. Điều đáng ngạc nhiên là tôi có thể hiểu rõ nội dung lớp học mà không gặp bất kỳ khó khăn nào. Tuy nhiên, dù hiểu rất rõ nhưng tôi không biết có nên coi là lạ không khi tôi không có nhiều câu hỏi hơn nội dung buổi học. Có rất nhiều câu hỏi phái sinh được đặt ra, nhưng vì tôi không phải là một trong số đó nên có vẻ như vẫn còn một chặng đường dài phía trước. Dù sao thì tôi cũng rất hài lòng vì chỉ cần theo dõi và hiểu rõ nội dung lớp học.
Khi lần đầu tiên nhìn thấy bài giảng của Younghan mà trước đó tôi chưa biết gì, tôi đã nghĩ, tại sao anh ấy lại dạy như thế này? Những gì tôi làm bây giờ đã quen thuộc và dễ hiểu, đồng thời tôi nhận ra rõ ràng rằng đó thực sự là một phong cách tốt hơn. Điều tương tự cũng xảy ra với MVC phần 2 này. Giờ đây, những cuốn sách về những con suối từng trông đáng sợ trong các hiệu sách giờ đây có thể trông thân thiện. Ai cũng biết môn học này là để củng cố nền tảng và cội rễ, nhưng tôi cũng xấu hổ và tự hào vì mình, với tư cách là một học viên, đang tham gia vào cuộc hành trình của một kiệt tác xứng đáng với danh hiệu chinh phục trọn vẹn. Tôi mất một lúc để lấy lại hơi thở và tự hỏi khi nào tôi sẽ xem và theo dõi tất cả những điều này trong quá khứ, nhưng trước khi tôi kịp nhận ra thì chỉ còn lại một bài giảng gần đây. Tôi định theo dõi bài giảng cuối cùng còn lại khi rảnh rỗi và sau đó bắt đầu lại từ đầu, điều này rất thiết thực. Khi viết bài này, tôi viết về hành trình mà tôi đã trải qua thay vì ôn lại lớp học. Chúc các bạn cùng học may mắn!
Chỉ cần đọc lộ trình của Kang thôi là tim tôi đã tràn ngập niềm vui rồi…
Một bài giảng dạy cho bạn chính xác những gì bạn muốn học
Một bài giảng cho phép bạn tự đọc tài liệu tham khảo
Ngay cả một bài giảng vui vẻ
Mọi người đang làm gì mà không nghe máy vậy?!
Đừng lo lắng, chỉ cần trả tiền
Thời gian khó mua được bằng tiền!
Nhưng bài giảng của Younghan Kim đã làm được điều đó!
Thực ra, tôi nghĩ giá trị của bài giảng của tôi là mua được thời gian. Tôi sẽ sắp xếp và truyền tải các giá trị cốt lõi mà tôi tin là quan trọng mà tôi đã phát triển trong quá trình thực hành của mình cho đến nay và tôi hy vọng rằng bạn sẽ nhanh chóng học được chúng và trở thành nhà phát triển cấp độ tiếp theo.
Cảm ơn bạn hanul_kr.
Tôi phải mất một thời gian để hoàn thành khóa học do bận rộn với công việc nhưng nội dung trong bài giảng này rất hữu ích.
Bạn luôn nỗ lực để tạo ra những bài giảng hay, Younghan😘
Ôi trời, bạn đang bận rộn với các hoạt động hỗ trợ của mình, nhưng cảm ơn bạn đã để lại nhận xét cho lớp học. Tôi luôn ủng hộ bạn. Và hãy tiếp tục chăm sóc tôi nhé ^^!