- Hệ thống được xây dựng sẽ là hệ thống mang lại sự dễ dàng cho việc sử dụng, bảo mật trong việc quản lý và hoàn toàn có thể nâng cấp, sửa đổi về sau này.
- Hệ thống mang lại đầy đủ chức năng cơ bản, có thể áp dụng toàn bộ các dự án.
- Sử dụng mô hình MVC design pattern, có thể tái sử dụng code.
- Ngôn ngữ lập trình Java JDK 8.
- Phần mềm để lập trình: Apache Netbeans IDE 13.
- Server: Apache Tomcat 10.0.
- Mô hình MVC design pattern JSP và Servlet, Maven.
- Dữ liệu được lưu trữ bởi hệ quản trị cơ sở dữ liệu MySQL hoặc SQL SERVER.
- Có route riêng, dễ dàng xử lí controller
- Có middlaware áp dụng vào route riêng, dễ dàng phân quyền
- Có query builder, dễ dàng tái sử dụng được các câu lệnh query từ database (Chưa xử lí)
db.properties
trongsrc/resources/db.properties
: thay đổi cơ sở dữ liệuDB_CONNECTION=sqlserver
hoặcDB_CONNECTION=mysql
một cách dễ dàng.
Tạo java class ở controller để sử dụng (Ở đây là HomeController là java class), sử dụng RouteConfig để trỏ về controller và đường dẫn, dưới đây là ví dụ:
package router;
import controller.HomeController;
import middleware.AuthenticationMiddleware;
public class RouteConfig {
public static void setupRoutes() {
Router.register("GET", "/", HomeController.class, "index");
// Đăng ký thêm các route khác tại đây
Router.group("/auth", () -> {
Router.register("GET", "login", HomeController.class, "index");
}).addMiddleware(new AuthenticationMiddleware()).applyMiddlewares();
Router.group("/auth", () -> {
Router.register("GET", "test", HomeController.class, "test");
});
}
}
Homecontroller chỉ cần khai báo function và gọi tới view như này:
package controller;
import util.ViewUtils;
public class HomeController {
public static void index() {
ViewUtils.put("message", "Welcome to the Home Page!");
ViewUtils.render("auth/login");
}
}
- Dưới đây là ví dụ AuthenticationMiddleware.java
package middleware;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import router.Middleware;
import util.ViewUtils;
public class AuthenticationMiddleware implements Middleware {
@Override
public boolean handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
// Kiểm tra xác thực và role
if (!isAuthenticated(request)) {
ViewUtils.redirect("/auth/test");
return false;
}
// Kiểm tra role
if (!isAdmin(request)) {
response.sendRedirect(request.getContextPath() + "/home"); // Chuyển hướng nếu không phải admin
return false;
}
System.out.println("123123");
return true;
}
private boolean isAuthenticated(HttpServletRequest request) {
// Xử lý kiểm tra
return request.getSession().getAttribute("user") != null;
}
private boolean isAdmin(HttpServletRequest request) {
// Lấy role từ session và kiểm tra
String role = (String) request.getSession().getAttribute("role");
return "admin".equals(role);
}
}
- Bổ sung thêm
.addMiddleware(new Middleware()).applyMiddlewares();
vào route để phân quyền
- Chuột phải dự án -> Properties -> Sources -> Source/Binary Format -> Đổi sang 1.8