Để tạo mô hình MVC (Model-View-Controller) trong Java Servlet, chúng ta cần phải chia ứng dụng thành các phần:
- Model: Chứa dữ liệu và các đối tượng liên quan đến dữ liệu.
- View: Hiển thị dữ liệu cho người dùng.
- Controller: Xử lý các yêu cầu và tương tác với Model và View.
Dưới đây là cách tạo mô hình MVC trong Java Servlet:
- Tạo package để chứa các lớp Model, View và Controller.
- Tạo lớp Model để chứa dữ liệu và các phương thức để truy xuất và cập nhật dữ liệu.
- Tạo các lớp View để hiển thị dữ liệu cho người dùng. Các lớp này có thể là các trang JSP hoặc các template HTML.
- Tạo các lớp Controller để xử lý các yêu cầu từ người dùng. Các lớp này sẽ tiếp nhận các yêu cầu, tương tác với Model để lấy dữ liệu và gửi dữ liệu đến View để hiển thị cho người dùng.
Các lớp Controller có thể sử dụng các phương thức doGet()
và doPost()
để xử lý các yêu cầu từ người dùng. Trong phương thức này, chúng ta có thể đọc các tham số được gửi từ form và gửi các yêu cầu đến Model để lấy dữ liệu. Sau đó, chúng ta có thể đặt dữ liệu vào các thuộc tính của request hoặc session và gửi chúng đến View để hiển thị dữ liệu.
Dưới đây là ví dụ về mô hình MVC trong Java Servlet:
- Tạo package
model
để chứa lớp Model:
package model; public class Product { private int id; private String name; private double price; // Getters and setters }
- Tạo package
view
để chứa lớp View:
<%@ page contentType="text/html; charset=UTF-8" language="java" %> <html> <head> <title>Product List</title> </head> <body> <table> <tr> <th>ID</th> <th>Name</th> <th>Price</th> </tr> <c:forEach items="${products}" var="product"> <tr> <td>${product.id}</td> <td>${product.name}</td> <td>${product.price}</td> </tr> </c:forEach> </table> </body> </html>
- Tạo package
controller
để chứa lớp Controller:
package controller; @WebServlet("/product") public class ProductController extends HttpServlet { private ProductService productService; public void init() { productService = new ProductService(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Product> products = productService.getAllProducts();