Đồ Án-Tạo Controller

Trong Java web, Controller là một thành phần trong mô hình MVC (Model-View-Controller) giúp quản lý việc điều khiển luồng dữ liệu giữa người dùng và dữ liệu. Nó là nơi tiếp nhận các yêu cầu từ phía người dùng và điều hướng chúng đến các thành phần khác trong ứng dụng như Model (xử lý logic) và View (hiển thị giao diện).

Để tạo một Controller trong Java web, bạn cần thực hiện các bước sau:

  1. Tạo một class trong package controller.
  2. Trong class, tạo các phương thức xử lý các yêu cầu từ phía người dùng, ví dụ như phương thức lấy danh sách sản phẩm, phương thức thêm sản phẩm vào giỏ hàng, phương thức thanh toán, …
  3. Các phương thức này sẽ nhận các yêu cầu từ phía người dùng thông qua URL và các tham số truyền vào.
  4. Thực hiện các xử lý cần thiết để trả về kết quả cho người dùng.
  5. Chú ý đến việc bảo vệ các trang và chức năng chỉ dành cho người dùng đã đăng nhập bằng cách kiểm tra session hoặc sử dụng các annotation như @RolesAllowed.

Dưới đây là một ví dụ đơn giản về cách tạo một Controller trong Java web:

package controller;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Product;
import service.ProductService;

@WebServlet("/product")
public class ProductController extends HttpServlet {
    private ProductService productService = new ProductService();

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        List<Product> products = productService.getAllProducts();
        request.setAttribute("products", products);
        request.getRequestDispatcher("product.jsp").forward(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String name = request.getParameter("name");
        String description = request.getParameter("description");
        int price = Integer.parseInt(request.getParameter("price"));
        productService.addProduct(name, description, price);
        response.sendRedirect(request.getContextPath() + "/product");
    }
}

Trong ví dụ này, chúng ta tạo một Controller tên là ProductController để quản lý sản phẩm. Phương thức doGet() sẽ được gọi khi người dùng truy cập vào trang danh sách sản phẩm, phương thức này sử dụng ProductService để lấy danh sách sản phẩm và trả về cho View thông qua thuộc tính products.

Phương thức doPost() được gọi khi người dùng thêm một sản phẩm mới, phương thức này sử dụng các tham số truyền vào để thêm sản phẩm mới và chuyển hướng người dùng về trang danh sách sản phẩm.