• 0354.502.773
  • cskh@laptrinhjavaweb.com

Spring mvc là gì ? Tạo project spring mvc sử dụng XML configuration

Trong bài viết này, mình muốn giới thiệu cho các bạn biết spring mvc là gì

Sau khi tìm hiểu được khái niệm spring mvc là gì thì mình tiếp tục hướng dẫn các bạn học lập trình java spring mvc thông qua tạo 1 project spring mvc cơ bản như thế nào

Khóa học spring mvc cơ bản miễn phí không sử dụng spring boot 

- Chi tiết: XEM TẠI ĐÂY

Khái niệm spring mvc là gì ?

Trước khi tìm hiểu spring mvc là gì các bạn cần biết spring framework là gì: XEM TẠI ĐÂY

Để lập trình web trong spring framework chúng ta sẽ sử dụng spring mvc

Spring MVC hiện nay có 2 cách xây dựng

1. Xây dựng theo phương pháp không sử dụng spring boot

2. Xây dựng dựa trên Spring boot

Hiện tại trong series này laptrinhjavaweb giới thiệu cho mọi người xây dựng theo phương pháp không sử dụng

Phần xây dựng theo spring boot mọi người tham khảo TẠI ĐÂY

Các phần mềm và thư viện sử dụng để tạo project spring mvc

- Apache maven 3.6.0

- Eclipse EE

- JDK 1.8

- Spring framework 4.3.13.RELEASE

- Tomcat 8.5

- Mysql 8

- Servlet api 3.1.0, jsp api 2.3.1, jstl 1.2

Download các phần mềm tại đây: LINK DOWNLOAD

Spring MVC flow

Hình 1: Flow trong Spring MVC

Cấu trúc project spring mvc

Hình 2: Cấu trúc project Spring MVC là gì

Các bước tạo project spring mvc cơ bản sau khi hiểu spring mvc

1. Tạo 1 project java web sử dụng maven

Mở Eclipse EE, sau đó File -> New -> other

Hình 3: tạo maven project

Chú ý: Artifact Id là tên project mà các bạn đang làm, ví dụ cái chúng ta đang làm là spring mvc thì các bạn để là spring-mvc

2. Sau khi tạo xong project, update lại project

3. Mở file POM.xml, add các thông tin như bên dưới

Thông tin file POM.xml:

<properties>
   <servlet.api.version>3.1.0</servlet.api.version>
   <springframework.version>4.3.13.RELEASE</springframework.version>
   <jsp.api.version>2.3.1</jsp.api.version>
   <jstl.version>1.2</jstl.version>
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>
   <!-- Spring -->
  
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${springframework.version}</version>
   </dependency>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${springframework.version}</version>
   </dependency>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${springframework.version}</version>
   </dependency>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>${springframework.version}</version>
   </dependency>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${springframework.version}</version>
   </dependency>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${springframework.version}</version>
   </dependency>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${springframework.version}</version>
   </dependency>

   <!-- servlet api -->
  
<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>${servlet.api.version}</version>
   </dependency>

   <!-- jsp api -->
  
<dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>${jsp.api.version}</version>
   </dependency>

   <!-- jstl -->
  
<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>${jstl.version}</version>
   </dependency>
</dependencies>

<build>
   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <version>3.6.1</version>
         <configuration>
            <source>1.8</source>
            <target>1.8</target>
         </configuration>
      </plugin>
   </plugins>
</build>


4. Tiếp tục làm theo hình

- Bước 1: trong folder main, tạo 1 folder tên webapp

- Bước 2: trong folder webapp tạo 1 folder tên WEB-INF

- Bước 3: trong folder WEB-INF tạo 1 file web.xml, và add thông tin như bên dưới vào file web.xml:

Thông tin file web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        
xmlns="http://java.sun.com/xml/ns/javaee"
        
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        
version="2.5"
>
    <display-name>spring-mvc</display-name>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/context/applicationContext.xml
        </
param-value>
    </context-param>

    <!-- Spring MVC -->
   
<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/context/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <session-config>
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
   
</
web-app>

- Bước 4: Trong folder webapp tạo 1 file index.jsp và add thông tin như bên dưới vào file index.jsp

Thông tin file index.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:redirect url="/trang-chu"/>

5. Tiếp tục làm theo như hình bên dưới

Bước 1: tạo folder context trong WEB-INF

Bước 2: trong folder context tạo 2 file applicationContext.xml và dispatcher-servlet.xml và copy code vào 2 file này theo code bên dưới

applicationContext.xml

<?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:context="http://www.springframework.org/schema/context"

      
xsi:schemaLocation="http://www.springframework.org/schema/beans

       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

    http://www.springframework.org/schema/context

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

    <!-- Activates scanning of @Repository and @Service and @Component -->

   
<context:component-scan base-package="com.laptrinhjavaweb" />

</beans>

 

dispatcher-servlet.xml

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

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

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

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

  
xsi:schemaLocation="

        http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/mvc

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

        http://www.springframework.org/schema/context

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

   <context:component-scan
     
base-package="com.laptrinhjavaweb.controller"
/>

   <mvc:annotation-driven />

   <bean
     
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
>

      <property name="prefix" value="/WEB-INF/views/" />

      <property name="suffix" value=".jsp" />

   </bean>
</beans>

Bước 3: trong WEB-INF tạo folder views

Bước 4: tạo file home.jsp và copy code như bên dưới vào file home.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Home Page</title>

</head>

<body>
<h1>Trang chủ</h1>
<h1>Menu</h1>

<%@ include file="menu.jsp" %>
</body>

</html>

6. Tiếp tục làm theo hình bên dưới

Tạo 1 package có tên là: com.laptrinhjavaweb.controller

7. Trong package “com.laptrinhjavaweb.controller” tạo 1 file java HomeController.java và copy code bên dưới

package com.laptrinhjavaweb.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HomeController {
  
  
@RequestMapping(value = "/trang-chu", method = RequestMethod.GET)
  
public ModelAndView homePage() {
      ModelAndView mav =
new ModelAndView("home");
     
return mav;
   }
  
  
@RequestMapping(value = "/springmvc", method = RequestMethod.GET)
  
public ModelAndView springMVCPage() {
      ModelAndView mav =
new ModelAndView("springmvc");
     
return mav;
   }
}

8. Sau khi hoàn thành các bước trên, bạn build lại project như sau:

 

 

 

 

 

 

Sử dụng câu lệnh trong maven: mvn clean install để build project

9. Cuối cùng thì chúng ra sẽ run project sử dụng tomcat

Khóa học spring mvc cơ bản miễn phí không sử dụng spring boot 

- Chi tiết: XEM TẠI ĐÂY

Follow nhóm zalo, fanpage, facebook cá nhân, group facebook, kênh youtube để nhận các nội dung về lập trình java core, java web hay ho

- Fanpage: XEM TẠI ĐÂY

- Facebook cá nhân: XEM TẠI ĐÂY

- Nhóm Zalo: https://zalo.me/g/hjeert065

- Nhóm học lập trình java core: XEM TẠI ĐÂY

- Nhóm học lập trình java web: XEM TẠI ĐÂY

- Kênh youtube của laptrinhjavaweb: XEM TẠI ĐÂY

phone zalo