Loạt 3 bài về mô hình MVC trong Java web với JSP, Servlet (Chia sẻ theo kinh nghiệm)

Trước khi gửi link thì mình có vài dòng cảm nghĩ thế này
Mình đã tiếp cận Java Web được 2 năm, trong 2 năm này đã học được biết bao nhiêu thứ. Bây giờ thì thật sự đã ổn, có thể tự tìm hiểu những gì mình thích :slight_smile: (Đơn giản là đã nắm được bản chất vấn đề)

Hồi mới học Java Web (cụ thể là JSP, Servlet), mới đầu ai học web cũng đi từ những kiến thức nhập môn như cách sử dụng request, response, rồi session, attribute, parameter,…thật sự là rất nôn nóng để hoàn thành cho mình một trang web.
Mình mới học luôn nghĩ ngay từ đầu phải tạo project cho chuẩn, à thì mvc này nọ nên cứ tìm kiếm. Tìm mãi mà có ai share trên google đâu. Thật sự là chẳng tìm được thứ mình ưng ý.

Chắc hẳn rất nhiều bạn cũng khó khăn như mình hồi đó nên cho ra 3 bài này, bài viết chủ yếu dựa vào kinh nghiệm cá nhân, có mang ý kiến riêng của mình trong đó. Nói chung đủ để các bạn mới học có thể tham khảo và áp dụng. Còn những bậc tiền bối thì bài viết này không hướng tới. Nếu được thì cho mình một lời nhận xét để bổ sung kiến thức cho mình + viết ra những bài viết có giá trị hơn.

Bài 1: Tìm hiểu mô hình MVC (Model – View – Controller) khi lập trình web với Java
Bài 2: Tạo Java web project mẫu theo mô hình MVC
Bài 3: Tạo trang đăng nhập đơn giản bằng JSP Servlet theo mô hình MVC



Nếu có hứng thú thì các bạn đọc theo thứ tự nhé. Đọc và cho mình nhận xét :slight_smile: :slight_smile:

4 Likes

MVC thì không có liên kết nào giữa Model và View bạn ơi.
Nếu có thì chỉ có 1 chiều từ Model sang View theo observer pattern, khi dữ liệu Model thay đổi thì View tự động cập nhật, không thông qua Controller.

1 Like

hay quá, mh thích đọc những bài chia sẻ như thế này, ths :heart_eyes:

1 Like

Mọi dữ liệu của View hiển thị lên đều được Controller lấy từ Model rồi gửi sang View mà bạn. Làm gì có chuyện Model thay đổi thì View tự động cập nhật đâu bạn. :slight_smile:

Cảm ơn bạn. Hi vọng bạn sẽ ghé thăm thường xuyên để cập nhật những bài chia sẻ khác :smiley:

tự dưng mình rất muốn học lại java , jsp vì đã bỏ nghề 8 năm khong xem lại java , những project ở trường đã bỏ hết , tình trạng hiện giờ như mất ký ức tạm thời về java , xem lại những bài viết thế này làm mình càng mong muốn quây lại , mong chủ thớt giúp mình share những bài viết liên quan để giúp mình củng cố kiến thức lại . thank!

1 Like

sao mình vào trang web của bạn không được nhỉ…

1 Like

Vẫn vào bình thường mà bạn

Vâng bạn. Mình cũng đang viết bài thường xuyên :v:

Bạn @hungsteve nói đúng rồi đấy bạn ạ. MVC không chỉ có một dạng giống như trong project của bạn đã sử dụng. Có một dạng khác tương tự như mẫu “observer”, ở đó controller có nhiệm vụ khởi tạo và gắn kết model với view, sau đó mỗi khi phía view có bất kì thay đổi gì thì phía model tương ứng sẽ cập nhật lại dữ liệu phù hợp và ngược lại. Đó là những gì mình được học được ở trường :slight_smile:

Đó không phải là mô hình MVC nữa rồi, nó trở thành MV.
Đã là MVC thì chức năng phân chia rõ ràng, phải xử lí logic rồi mới trả về view được, nếu không nó sẽ là một mô hình khác.

@Dark.Hades Tham khảo “Design Patterns: Elements of Reusable Object-Oriented Software” của GOF trang 14

Ý bạn là cuốn này: https://github.com/dieforfree/edsebooks/blob/master/ebooks/Design%20Patterns%2C%20Elements%20of%20Reusable%20Object-Oriented%20Software.pdf ?

Đính chính trang bạn muốn nói là 17?

Nó đã chuyển sang VC, không còn là MVC, đã là MVC thì bạn phải đủ các yếu tố, ngay kể cả trong 1 project MVC, nếu có 1 page/popup|window(phần mềm) thiếu 1 trong 3 thằng M|V|C thì chính trang đó chỉ còn là MV VC, mặc dù nó nằm trong tổng thể MVC

@Dark.Hades Cho mình xin reference về điều này. Cảm ơn bạn.

https://www.christianalfoni.com/articles/2015_08_02_Why-we-are-doing-MVC-and-FLUX-wrong

Có thể ref trên chưa đủ luận điểm tuy nhiên bản thân mình thấy nó đúng khi nói về sự vi phạm quy tắc khi thiết kế mô hình MVC:

This fact is exactly what makes MVC such a great architecture! Your view has to make a request to get or change any application state. The controller will always control this process of getting or changing application state. The model is the only place you have application state. It is a simple and predictable flow and what you see in the browser is always a direct result of the state you passed into the template.

…traditional MVC was broken and there are mainly four reasons for that:
The router and the controller is considered the same thing
The view layer has direct access to the model layer
The model layer is not conceptually treated as one storage
We store application state inside our view layer

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?