Quay lại danh sách
4 tháng 2, 2026·10 phút đọcJavaServlet

Servlet Starter Kit - Modern Java Web Starter Project

Servlet Starter Kit - Modern Java Web Starter Project

Servlet Starter Kit - Modern Java Web Starter Project

Giới Thiệu

Servlet Starter Kit là một bộ công cụ khởi động hoàn chỉnh cho việc phát triển ứng dụng web Java, được thiết kế đặc biệt cho mục đích giáo dục. Project kết hợp những công nghệ hiện đại nhất của Java EE với giao diện người dùng đẹp mắt, giúp sinh viên và lập trình viên mới có thể học tập và xây dựng ứng dụng web một cách nhanh chóng.

Tính Năng Chính

1. Kiến Trúc MVC Rõ Ràng

Project được tổ chức theo mô hình MVC (Model-View-Controller) chuẩn, giúp code dễ bảo trì và mở rộng:

  • Controller Layer: Hỗ trợ cả Web Controller và AJAX Controller
    • BaseWebController và BaseAjaxController cung cấp các phương thức tiện ích chung
    • Routing thông minh với path segment parsing
    • Xử lý flash messages cho thông báo người dùng
  • Service Layer: Tách biệt logic nghiệp vụ khỏi controller
  • Repository Layer: Pattern Repository với Generic Type hỗ trợ CRUD operations
  • Model Layer: Base Model với các annotation Lombok

2. Hệ Thống Page Rendering Linh Hoạt

Class Page cung cấp cách tiếp cận hiện đại để render views:

plaintext
1Page page = new Page()
2    .setTitle("Home Page")
3    .setPageName("home/index")
4    .setLayout("app")
5    .setScripts(new String[]{"user-management.js"})
6    .setStyleSheets(new String[]{"custom.css"});
7page.render(request, response);


Ưu điểm:

  • Fluent API với method chaining
  • Quản lý scripts và stylesheets tự động
  • Hỗ trợ layouts và partial views
  • Truyền data động qua Map

3. Tích Hợp Database Mạnh Mẽ

JDBI Integration

  • Sử dụng JDBI 3 - một ORM nhẹ và hiệu quả cho Java
  • HikariCP connection pooling để tối ưu hiệu năng
  • Generic Repository Pattern giảm thiểu code lặp lại
plaintext
1@ApplicationScoped
2public class UserRepository extends BaseRepository<User, Long> 
3    implements IUserRepository {
4    // Kế thừa tất cả CRUD operations từ BaseRepository
5}


Auto Database Migration

  • Tự động chạy migrations khi ứng dụng khởi động
  • Tracking migrations đã chạy qua bảng schema_migrations
  • Hỗ trợ tạo database tự động nếu chưa tồn tại
  • Dễ dàng quản lý schema changes qua SQL files
plaintext
1@WebListener
2public class DatabaseMigrationListener implements ServletContextListener {
3    // Auto-run migrations on startup
4}


4. Modern UI với Tailwind CSS

  • Responsive Design: Giao diện tự động điều chỉnh trên mọi thiết bị
  • Tailwind CSS 3: Utility-first CSS framework
  • Font Awesome Icons: Thư viện icon phong phú
  • Component-based Layout: Header, Footer, Navigation được tách riêng

Features UI:

  • Dashboard hiển thị thống kê
  • User Management Interface với DataTables
  • Form validation và error handling
  • Toast notifications
  • Modal dialogs

5. Quản Lý User Đầy Đủ

Module quản lý người dùng hoàn chỉnh bao gồm:

  • CRUD Operations: Tạo, đọc, cập nhật, xóa người dùng
  • AJAX Support: Các thao tác không reload trang
  • Status Management: Activate/Deactivate users
  • Data Validation: Client-side và server-side validation
  • Flash Messages: Thông báo kết quả thao tác
plaintext
1@WebServlet("/ajax/users/*")
2public class AjaxUserController extends BaseAjaxController {
3    // Xử lý create, update, delete, activate, deactivate
4}


6. Developer-Friendly Tools

Utilities Classes

  • PropertiesUtils: Đọc cấu hình từ properties files
  • WebAppPaths: Quản lý paths cho static resources và views
  • BaseModelMapper: Tự động map database rows sang objects

Filters

  • JsCharsetFilter: Đảm bảo encoding UTF-8 cho JavaScript files

Dependency Injection

  • CDI (Contexts and Dependency Injection) integration
  • @Inject annotation cho dependency injection
  • @ApplicationScoped beans

7. Cấu Hình Đơn Giản

Project sử dụng properties files để cấu hình:

bash
1# Database Configuration
2db.driver=org.h2.Driver
3db.url=jdbc:h2:~/servlet-kit-db
4db.username=sa
5db.password=
6db.name=app_db
7

8. Maven Build System

  • Maven wrapper included (không cần cài Maven)
  • Dependencies được quản lý tốt
  • Hỗ trợ build và deploy nhanh chóng
bash
1./mvnw clean package


Cấu Trúc Project

servlet-starter-kit/
├── src/main/
│ ├── java/com/nphuonha/servletkit/
│ │ ├── core/ # Core utilities
│ │ │ ├── database/ # DB connection, migrations
│ │ │ ├── listeners/ # Servlet listeners
│ │ │ ├── paths/ # Path management
│ │ │ └── utils/ # Utility classes
│ │ ├── http/
│ │ │ ├── controllers/ # Web & AJAX controllers
│ │ │ ├── filters/ # Request filters
│ │ │ └── pages/ # Page rendering
│ │ ├── models/ # Domain models
│ │ ├── repository/ # Data access layer
│ │ └── services/ # Business logic
│ ├── resources/
│ │ ├── migrations/ # SQL migration files
│ │ └── application.properties
│ └── webapp/
│ ├── static/ # CSS, JS, images
│ └── views/ # JSP templates
│ ├── layouts/ # Layout templates
│ └── pages/ # Page views
├── pom.xml
├── tailwind.config.js
└── package.json

Use Cases

Project này phù hợp cho:

  • Học tập Java Web: Hiểu rõ cách hoạt động của Servlet, JSP
  • Đồ án sinh viên: Starter kit hoàn chỉnh để bắt đầu project
  • Prototype nhanh: Xây dựng MVP cho ý tưởng web application
  • Thực hành MVC: Học và áp dụng design patterns

Công Nghệ Sử Dụng

Backend:

  • Java 17+
  • Jakarta Servlet 6.0
  • Jakarta CDI 4.0
  • JDBI 3 + HikariCP
  • Lombok

Frontend:

  • Tailwind CSS 3
  • Font Awesome 6
  • DataTables
  • Vanilla JavaScript

Build Tools:

  • Maven
  • PostCSS + Autoprefixer

Lưu Ý Quan Trọng

Disclaimer: Project này được thiết kế cho mục đích giáo dục, không nên sử dụng trực tiếp cho production mà chưa qua security review và optimization.

Điểm Mạnh của Project

  1. Clean Code: Code được tổ chức rõ ràng, dễ đọc, dễ hiểu
  2. Best Practices: Áp dụng các design patterns chuẩn mực
  3. Modern Stack: Sử dụng công nghệ hiện đại nhất của Java EE
  4. Easy to Extend: Kiến trúc linh hoạt, dễ dàng mở rộng thêm features
  5. Educational Focus: Rất phù hợp cho việc học tập và giảng dạy

Học Được Gì Từ Project Này?

  • Cách xây dựng web application với Java Servlet
  • Hiểu về MVC pattern và cách áp dụng
  • Làm việc với database sử dụng JDBI
  • Dependency Injection với CDI
  • Modern frontend development với Tailwind CSS
  • AJAX và REST API basics
  • Database migration strategies

Repository: nphuonha2101/servlet-starter-kit

Phuong Nha Nguyen
Bài trướcQuản lý nội dung Web cá nhân: Tại sao mình chọn Sanity?