CÔNG NGHỆ THÔNG TIN >> BÀI VIẾT CHỌN LỌC

Tạo và cấu hình ứng dụng Spring Web Mvc với Maven Dependencies sử dụng Eclipse IDE

Đăng lúc: 09:27 PM - 22/10/2023 bởi Charles Chung - 1474

Spring Web MVC là Framework Java Web nguyên bản được xây dựng trên API Servlet và đã được đưa vào Spring Framework ngay từ đầu. Trong bài viết này tôi sẽ hướng dẫn các bạn tạo và cấu hình ứng dụng Spring Web MVC với Maven Dependencies sử dụng Eclipse IDE

Spring MVC là gì?

Spring MVC là một framework được thực hiện trong mô hình MVC của các ứng dụng web. Spring MVC Framewrok cung cấp kiến truc MVC (Model-View-Controller) và các componen được sử dụng nhằm phát triển giúp các ứng dụng web được linh hoạt hơn. Nó là một framework phát triển ứng dụng phổ biến nhất cho ứng dụng doanh nghiệp trong Java và là một nền tảng Java mã nguồn mở. Được viết đầu tiên bởi Rod Johnson và được phát hành lần đầu dưới phiên bản Apache 2.0 vào tháng 6 năm 2003 Có các tính năng cốt lõi có thể được sử dụng trong việc phát triển bất kỳ ứng dụng Java nào Gọn nhẹ – phiên bản cơ bản của Spring framework chỉ khoảng 2MB.

Các thành phần và nguyên lý hoạt động của Spring MVC

Trong đó:

  • Model: là các file POJO, Service, Entities, DAO thực hiện truy cập database, xử lý business
  • View: là các file JSP, html…
  • Control: là Dispatcher Controller, Handler Mapping, Controller – thực hiện điều hướng các request.

Ví dụ Step by step

Bước 1: Tạo Dynamic Web Project

Khởi động Eclispe IDE -> vào menu File -> New -> Dynamic Web Project -> Nhập các thông số như hình dưới

Tiếp tục kích vào Next -> Next -> Chọn Generate web.xml deyployment desciptor như hình

Bước 2: Convert sang Maven Project

  • Kích chuột phải vào Project vừa tạo -> Configure -> Convert to Maven Project -> Finish

Bước 3: Khai báo các Maven Dependencies cần thiết

  • Mở file pom.xml và cấu hình các Maven Dependencies gồm: spring web, web mvc, servlet api, jsp api, jstl

<dependencies>

<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<scope>provided</scope>

</dependency>

<!--https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>5.3.18</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-web</artifactId>

<version>5.3.18</version>

</dependency>

</dependencies>

Bước 4: Cấu hình ứng dụng Spring Web Mvc

  • Trong thư mục WEB-INF tạo thư mục views và tệp tin spring-servlet.xml như hình dưới

alt text

Nhập nội dung cấu hình cho tệp spring-servlet.xml như sau:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd

http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

<!-- chỉ ra các package chứa các lớp java được đăng như các bean -->

<context:component-scan base-package="controllers"/>

<!-- chỉ tìm kiếm các bean trong cùng context application được định nghĩa -->

<context:annotation-config />

<!-- mặc định các basic components được ủy quyền gửi request tới các controller -->

<mvc:annotation-driven />

<!-- Cấu hình đường dẫn tài nguyên được phép truy cập

<mvc:resources mapping="/resources/**" location="/resources" />-->

<!-- cấu hình bean xác định view sẽ được sinh ra (thư mục chứa các view, đuôi tệp tin view) -->

<bean id="viewResolver"

class="org.springframework.web.servlet.view.InternalResourceViewResolver"

p:prefix="/WEB-INF/views/" p:suffix=".jsp" />

</beans>

  • Trong trường hợp bạn sử dụng Java Config để cấu hình thì bạn không cần tạo tệp spring-servlet.xml, hãy tạo gói "configuration", sau tạo tệp SpringConfig.java vào bên trong gói đó và code như sau:

package configuration;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.ViewResolver;

import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import org.springframework.web.servlet.view.InternalResourceViewResolver;

import org.springframework.web.servlet.view.JstlView;

 

@Configuration

@EnableWebMvc

@ComponentScan(basePackages = {"controllers"})

public class SpringConfig extends WebMvcConfigurerAdapter {

@Bean

public ViewResolver viewResolver() {

InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();

viewResolver.setViewClass(JstlView.class);

viewResolver.setPrefix("/WEB-INF/views/");

viewResolver.setSuffix(".jsp");

return viewResolver;

}

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");

}

}

  • Mở tệp web.xml và cấu hình vào bên trong thẻ <web-app> như sau:

<!-- add filter xử utf8 khi request response -->

<filter>

<filter-name>encodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

<init-param>

<param-name>forceEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- Add Spring MVC DispatcherServlet as front controller -->

<servlet>

<servlet-name>spring</servlet-name>

<servlet-class>

org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring-servlet.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>spring</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

  • Trong trường hợp bạn sử dụng Java Config để cấu hình thì bạn không cần tạo tệp web.xml, hãy tạo gói "configuration", sau tạo tệp WebConfig.java vào bên trong gói đó và code như sau:

package configuration;

import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.ServletRegistration;

import org.springframework.web.WebApplicationInitializer;

import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;

import org.springframework.web.servlet.DispatcherServlet;

public class WebConfig implements WebApplicationInitializer {

@Override

public void onStartup(ServletContext servletContext) throws ServletException {

servletContext.setRequestCharacterEncoding("UTF-8");

servletContext.setResponseCharacterEncoding("UTF-8");

AnnotationConfigWebApplicationContext context=new AnnotationConfigWebApplicationContext();

context.register(SpringConfig.class);

context.setServletContext(servletContext);

ServletRegistration.Dynamic servlet=servletContext.addServlet("dispatcher", new DispatcherServlet(context));

servlet.setLoadOnStartup(1);

servlet.addMapping("/");

}

}

Bước 5: Tạo controllers và view

  • Trong project tạo 2 gói controllers và entities như hình sau:

  • Trong gói entities tạo lớp Person.java và code như sau:

package entities;

public class Person {

private String personId;

private String personName;

private int age;

public Person() {

// TODO Auto-generated constructor stub

}

public Person(String personId, String personName, int age) {

super();

this.personId = personId;

this.personName = personName;

this.age = age;

}

public String getPersonId() {

return personId;

}

public void setPersonId(String personId) {

this.personId = personId;

}

public String getPersonName() {

return personName;

}

public void setPersonName(String personName) {

this.personName = personName;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

  • Trong gói controllers tạo lớp HomeController.java và code như sau:

package controllers;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import entities.Person;

@Controller

public class HomeController {

@RequestMapping(value= {"/","trang-chu.htm"},method = RequestMethod.GET)

public String index(Model model) {

Person p=new Person("P01","Charles Chung",33);

model.addAttribute("msg","Thông tin cá nhân");

model.addAttribute("p",p);

return "index";

}

}

  • Trong thư mục views tạo tệp tin index.jsp code như hình dưới

 

Bước 6: Run application

  • Kích chuột phải vào project chọn Run As -> Run on Server -> Tomcat v9.0

Kết luận: như vậy là các bạn đã biết cách tạo và cấu hình một ứng dụng Spring Web MVC trong Eclipse và sử dụng các Maven Dependencies, từ đó các bạn có thể mở rộng ứng dụng với nhiều các chức năng khác hẹn gặp lại các bạn ở các bài tiếp theo.

Kích để tải source code bài Tạo và cấu hình ứng dụng Spring Web Mvc với Maven Dependencies sử dụng Eclipse IDE

Training online liên hệ: Charles Chung

Video demo trên lớp

thay lời cảm ơn!

QUẢNG CÁO - TIẾP THỊ