Xem thêm

Tạo ứng dụng web với Spring Boot và JSP

Huy Erick
Hướng dẫn tạo ứng dụng web đơn giản với Spring Boot và JSP Trong bài viết này, chúng ta sẽ hướng dẫn bạn tạo một ứng dụng web đơn giản bằng cách sử dụng Spring...

Image

Hướng dẫn tạo ứng dụng web đơn giản với Spring Boot và JSP

Trong bài viết này, chúng ta sẽ hướng dẫn bạn tạo một ứng dụng web đơn giản bằng cách sử dụng Spring Boot. Chúng ta sẽ phát triển một ứng dụng có chức năng đăng nhập cũng như hiển thị danh sách công việc cần làm. Chúng ta sẽ tuân thủ mô hình MVC và sử dụng JSP làm view.

Những gì bạn sẽ học được

  • Cách bootstrap một dự án đơn giản với Spring Initializr?
  • Cách khởi tạo một ứng dụng web cơ bản cho Spring Boot?
  • Cách thêm JSP cho ứng dụng web?
  • Cách xây dựng chức năng đăng nhập cơ bản?
  • Cách thêm chức năng hiển thị danh sách công việc?
  • Cách tự động nạp các thành phần sử dụng Spring Framework?
  • Nếu bạn muốn tìm hiểu thêm điều gì?

Các công cụ bạn sẽ cần

  • Maven 3.0+ là công cụ build của bạn.
  • IDE yêu thích của bạn. Chúng tôi sử dụng Eclipse.
  • JDK 1.8+

Tổng quan về ứng dụng web

Chúng ta sẽ xây dựng trang danh sách công việc (chưa được định dạng) với tính năng đăng nhập cơ bản.

Các tệp tin

Dưới đây là hình ảnh chụp màn hình của dự án Eclipse với tất cả các tệp tin mà chúng ta sẽ tạo.

Image

Đây là một cái nhìn tổng quan về các tệp tin:

  • LoginService, TodoService: Chứa logic kinh doanh. LoginService có một logic xác nhận đơn giản cho user id và password. TodoService chứa một phương thức dịch vụ để lấy danh sách công việc.
  • login.jsp, welcome.jsp, list-todos.jsp: Tên cho rõ ràng về nội dung của mỗi view này.
  • LoginController, TodoController: Đóng vai trò là Controllers trong mô hình MVC. LoginController có một chút luồng dữ liệu. Nếu người dùng nhập đúng user id và password, anh ta sẽ được chuyển hướng đến trang chào mừng. Nếu không, trang đăng nhập sẽ được hiển thị với thông báo lỗi.
  • pom.xml: Các phụ thuộc quan trọng là Spring Boot Starter Web và tomcat-embed-jasper. Chúng ta sẽ nói về chúng sau.
  • application.properties: Thông thường được sử dụng để cấu hình các framework trong Spring Boot. Trong ví dụ này, chúng tôi sẽ cấu hình bộ giải mã của chúng tôi trong application.properties.

Hình ảnh ứng dụng

  • Trang đăng nhập

Image

  • Trang đăng nhập nếu người dùng nhập sai user id và password

  • Trang chào mừng

  • Trang danh sách công việc

Bootstrap ứng dụng web với Spring Initializr

Tạo một ứng dụng web với Spring Initializr rất đơn giản. Chúng ta sẽ sử dụng Spring Web MVC làm framework web của chúng ta.

Spring Initializr (http://start.spring.io/) là một công cụ tuyệt vời để bootstrap các dự án Spring Boot của bạn.

Image

Như được hiển thị trong hình ảnh trên, hãy thực hiện các bước sau:

  • Mở Spring Initializr và chọn những thông số sau:
    • Chọn com.in28minutes.springboot làm Nhóm (Group).
    • Chọn student-services làm Tên dự án (Artifact).
    • Chọn các phụ thuộc sau:
      • Web
      • Actuator
      • DevTools
  • Bấm Generate Project.
  • Nhập dự án vào Eclipse.
  • Nếu bạn muốn hiểu thông tin về các tệp tin đã tạo trong dự án này, bạn có thể xem tại đây.

Các phụ thuộc dự án

Spring Boot Starter Web cung cấp tất cả các phụ thuộc và cấu hình tự động cần thiết để phát triển ứng dụng web. Đây là phụ thuộc đầu tiên chúng ta sẽ sử dụng.

Chúng tôi muốn sử dụng JSP làm view. Ứng dụng nhúng máy chủ servlet mặc định cho Spring Boot Starter Web là Tomcat. Để bật hỗ trợ cho JSP, chúng ta cần thêm một phụ thuộc vào tomcat-embed-jasper.

Phụ thuộc của Spring Boot Starter Web

Hình ảnh dưới đây cho thấy các phụ thuộc khác nhau được thêm vào ứng dụng của chúng tôi do Spring Boot Starter Web.

Image

Các phụ thuộc có thể được phân loại thành:

  • Spring - core, beans, context, aop
  • Web MVC - (Spring MVC)
  • Jackson - cho JSON Binding
  • Validation - Hibernate Validator, Validation API
  • Embedded Servlet Container - Tomcat
  • Logging - logback, slf4j

Bất kỳ ứng dụng web tiêu chuẩn nào cũng sẽ sử dụng tất cả các phụ thuộc này. Spring Boot Starter Web đi kèm sẵn với chúng. Như một nhà phát triển, tôi không cần phải lo lắng về các phụ thuộc này hoặc phiên bản tương thích của chúng.

Cấu hình tự động

Spring Boot Starter Web tự động cấu hình những thứ cơ bản cần thiết. Để hiểu được những tính năng mà Spring Boot Starter Web mang lại, hãy chạy StudentServicesApplication.java như một ứng dụng Java và xem log.

Spring Boot Starter Web tự động cấu hình:

  • Dispatcher Servlet
  • Trang lỗi
  • Web Jars để quản lý các phụ thuộc tĩnh của bạn
  • Ứng dụng nhúng máy chủ servlet - Tomcat là mặc định

Cấu hình View Resolver

Chúng ta sẽ đặt các file JSP của chúng ta trong /WEB-INF/jsp/. Chúng ta cần cấu hình bộ giải mã với tiền tố và hậu tố.

Login Controller

  • public String showLoginPage(ModelMap model): Được ánh xạ với phương thức GET của đường dẫn đăng nhập, phương thức này hiển thị trang đăng nhập.
  • @Autowired LoginService service: LoginService có logic xác thực.
  • showWelcomePage(ModelMap model, @RequestParam String name, @RequestParam String password): Được ánh xạ với phương thức POST của đường dẫn đăng nhập, phương thức này xác thực user id và password. Chuyển hướng đến trang chào mừng nếu đăng nhập thành công.

Login Service

Lớp này chứa logic cơ bản cho việc xác thực. Logic kinh doanh được cố định trước.

Login view - JSP

Đây là trang đăng nhập đơn giản với các trường form user id và password. Nếu thông báo lỗi được đưa vào model, ${errorMessage} sẽ hiển thị thông báo lỗi xác thực.

Welcome View - JSP

Trang chào mừng được hiển thị sau khi đăng nhập thành công. Hiển thị tên đăng nhập và liên kết để quản lý các công việc.

Todo Model và Business Service

Chúng ta sử dụng một công việc cơ bản với id, user, mô tả và ngày hết hạn.

Todoservice sử dụng một ArrayList đơn giản để lưu trữ danh sách công việc trong bộ nhớ. Nó cung cấp một phương thức để lấy danh sách công việc.

List Todo JSP

Trang danh sách công việc hiển thị danh sách công việc. Đây là một trang không định dạng hoàn toàn. Trong các bước tiếp theo của khóa học, chúng ta sẽ trang trí trang này và thêm các chức năng để thêm, xóa và cập nhật công việc.

Todo Controller

Todo Controller có một phương thức đơn giản để lấy danh sách công việc và điền vào model. Nó chuyển hướng đến trang danh sách công việc.

Chạy ứng dụng

Chúng ta sử dụng một lớp ứng dụng Spring Boot để khởi động ứng dụng của chúng ta.

Mã nguồn đầy đủ có trên kho lưu trữ Github: https://github.com/in28minutes/SpringBootWebApplicationStepByStep. Bạn có thể tải xuống Step12.zip và nhập dự án Maven để chạy nó.

Để chạy ứng dụng, bạn có thể chạy nó như một ứng dụng Java đơn giản. Khi bạn chạy nó, bạn sẽ thấy ứng dụng bắt đầu. Dưới đây là một phần trích từ log. Bạn có thể thấy rằng tất cả các ánh xạ yêu cầu đều được ánh xạ đúng. Bạn có thể truy cập ứng dụng tại địa chỉ http://localhost:8080/login và nhập user id/password là in28Minutes/dummy.

Mã nguồn đầy đủ có trên kho lưu trữ Github: https://github.com/in28minutes/SpringBootWebApplicationStepByStep. Bạn có thể tải xuống Step12.zip và nhập dự án Maven để chạy nó.

Vừa Phát Hành

1