[Thực hành] Ứng dụng kiểm tra email hợp lệ sử dụng Gradle
NỘI DUNG BÀI VIẾT
Mục tiêu
Luyện tập sử dụng Controller trong Spring MVC.
Điều kiện
Biết cách sử dụng Controller trong Spring MVC.
Mô tả
Trong phần này, chúng ta sẽ xây dựng một ứng dụng cho phép kiểm tra tính hợp lệ của một email.
Ứng dụng cho phép người dùng nhập vào một email, nhấn nút kiểm tra và sẽ hiển thị thông báo kết quả.
Một email hợp lệ phải đạt những yêu cầu sau:
- Bắt đầu bằng một ký tự
- Không chứa các ký tự đặc biệt
- Có một ký tự @ ngăn cách tên email và domain
- Domain phải hợp lệ
Hướng dẫn
Bước 1: Cài đặt Gradle
Cài đặt gradle trên máy theo hướng dẫn tại đây:
Bước 2: Tạo project tên spring-email-validation sử dụng Gradle

Chọn next

Nhập các giá trị cho các ô GroupID, ArtifactId, Version và chọn Next

Chọn tiếp Next

Sau khi chọn Finish, cấu trúc project hiển thị như sau:

Cấu hình tomcat để thực thi ứng dụng

Chọn Edit Configurations

Chọn tab Deployment

Chọn thêm Artifact

Click OK
Cấu hình cấu trúc ứng dụng. Chọn Project Structure

Hộp thoại xuất hiện

Chọn +

Chọn Spring và Click vào OK.
Sửa file index.jsp

Chạy ứng dụng khi click vào

Vào trình duyệt gõ url: http://localhost:8080/index.jsp. Quan sát kết quả trả về
Bước 3: Vào file build.gradle sửa lại thông tin trong dependencies
Vào trình duyệt gõ link: https://mvnrepository.com/artifact/org.springframework/spring-webmvc

Chọn phiên bản 4.3.17

Copy đoạn mã trong tab Gradle vào file build.gradle

Sau đó IDE tự động import springframework vào project.
Bước 4: Tạo cấu trúc thư mục views, WEB-INF, java.controller

Các file applicationContext.xml, dispatcher-servlet.xml, web.xml cài đặt giống trong bài tập trước.
Bước 5: Tạo EmailController trong thư mục controller
EmailController xử lý validate email
Trước hết chúng ta có Email Regular Expression Pattern như sau:
^[A-Za-z0-9]+[A-Za-z0-9]*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)$;
Mô tả
Ký hiệu | Mô tả |
^ | Bắt đầu chuỗi String hoặc một dòng |
[A-Za-z0-9]+ | Email address phải bắt đầu với “[A-Za-z0-9]+” và có ít nhất một ký tự |
[A-Za-z0-9]*@ | tùy chọn theo “[A-Za-z0-9]”, và kết thúc bằng một ký hiệu “@” |
[A-Za-z0-9] | Domain phải sau @ và ký tự phải nằm trong [A-Za-z0-9] |
\\.[A-Za-z0-9] | Sau domain là phần mở rộng của domain sau dấu chấm, ví dụ: (.com, .net, .org) |
$ | Kết thúc chuỗi String hoặc kết thúc dòng |
Ở đây ta tạo một biến static String EMAIL_REGEX chứa định dạng regular expression của email. Sau đó tạo một phương thức validate để kiểm tra email cần kiểm tra có hợp lệ với EMAIL_REGEX đã định nghĩa hay không.
package controller;
@Controller
public class EmailController {
private static Pattern pattern;
private Matcher matcher;
/* Khai báo Regex */
private static final String EMAIL_REGEX = "^[A-Za-z0-9]+[A-Za-z0-9]*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)$";
public EmailController() {
pattern = Pattern.compile(EMAIL_REGEX);
}
@GetMapping("/")
String getIndex() {
return "index";
}
@PostMapping("/validate")
String validateEmail(@RequestParam("email") String email, Model model) {
boolean isvalid = this.validate(email);
if (!isvalid) {
model.addAttribute("message", "Email is invalid");
return "index";
}
model.addAttribute("email", email);
return "success";
}
private boolean validate(String regex) {
matcher = pattern.matcher(regex);
return matcher.matches();
}
}
Bước 6: Sửa file index.js
<%@page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Email Validation</title>
</head>
<body>
<h1>Email Validate</h1>
<h3 style="color:red">${message}</h3>
<form action="validate" method="post">
<input type="text" name="email"><br>
<input type="submit" value="Validate">
</form>
</body>
</html>
Bước 7: Sửa file success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Success</title>
</head>
<body>
<h3>Hi ${email}</h3>
</body>
</html>
Bước 8: Chạy chương trình và quan sát
Nhập email hợp lệ: [email protected]
Nhập email không hợp lệ: [email protected]
Mã nguồn tham khảo tại: https://github.com/codegym-vn/spring-email-validation
Leave a Reply