JSP Servlet
BÀI TẬP JSP/SERVLET: QUẢN LÝ NGƯỜI DÙNG - KHOÁ JSP/SERVLET
1. Yêu cầu chức năng
1.1 Authentication
- Đăng ký tài khoản (Register)
- Đăng nhập (Login)
- Đăng xuất (Logout)
1.2 Quản lý User
- Hiển thị danh sách User
- Thêm User
- Sửa User
- Xóa User
- Xem chi tiết User (optional)
1.3 Phân quyền
-
Bảng Role:
- ADMIN
- USER
1.4 Session
-
Khi login thành công:
- Lưu thông tin user vào Session
-
Nếu chưa login:
-
Truy cập
/users -
Tự động redirect sang
/login
-
Truy cập
-
Nếu đã login:
-
Truy cập
/loginhoặc/register -
Tự động redirect sang
/users
-
Truy cập
2. Thiết kế Database
CREATE DATABASE user_management;
USE user_management;
-- =========================
-- TABLE: role
-- =========================
CREATE TABLE role (
id INT PRIMARY KEY AUTO_INCREMENT,
role_name VARCHAR(50) NOT NULL
);
-- =========================
-- INSERT ROLE
-- =========================
INSERT INTO role(role_name)
VALUES
('ADMIN'),
('USER');
-- =========================
-- TABLE: user
-- =========================
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
fullname VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
phone VARCHAR(20),
address VARCHAR(255),
status TINYINT DEFAULT 1,
role_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_user_role
FOREIGN KEY (role_id)
REFERENCES role(id)
);
-- =========================
-- INSERT SAMPLE USERS
-- =========================
INSERT INTO user(
fullname,
email,
password,
phone,
address,
status,
role_id
)
VALUES
(
'Admin',
'admin@gmail.com',
'123456',
'0123456789',
'Ha Noi',
1,
1
),
(
'Nguyen Van A',
'user@gmail.com',
'123456',
'0987654321',
'Ho Chi Minh',
1,
2
);
-- =========================
-- TEST
-- =========================
SELECT * FROM role;
SELECT * FROM user;