Spring mvc là gì ? Tạo project spring mvc sử dụng XML configuration
Trong bài viết này, laptrinhjavaweb 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ì laptrinhjavaweb 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
Laptrinhjavaweb Academy cung cấp các khóa học: Java Core, Java Web, Java Hosting
Học java core, java web cơ bản sử dụng jsp servlet, spring boot, spring framework miễn phí
- Học java cơ bản miễn phí dành cho bạn nào chưa biết gì về Java, yếu Java, cần ôn tập Java để đi phỏng vấn: CHI TIẾT
- Học java nâng cao hướng đối tượng (OOP) miễn phí dành cho bạn nào đã có kiến thức Java cơ bản: CHI TIẾT
- Học java web cơ bản sử dụng jsp servlet: CHI TIẾT
- Học spring boot, spring framework dành cho bạn nào đã có kiến thức java web cơ bản
1. Java backend api web service: CHI TIẾT
2. Thiết kế website
2.1 Thiết kế website cơ bản: CHI TIẾT
2.2 Thiết kế website nâng cao: CHI TIẾT
- Học spring framework không sử dụng spring boot: CHI TIẾT
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 spring boot
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
File 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>
File 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
Học java core, java web cơ bản sử dụng jsp servlet, spring boot, spring framework miễn phí
- Học java cơ bản miễn phí dành cho bạn nào chưa biết gì về Java, yếu Java, cần ôn tập Java để đi phỏng vấn: CHI TIẾT
- Học java nâng cao hướng đối tượng (OOP) miễn phí dành cho bạn nào đã có kiến thức Java cơ bản: CHI TIẾT
- Học java web cơ bản sử dụng jsp servlet: CHI TIẾT
- Học spring boot, spring framework dành cho bạn nào đã có kiến thức java web cơ bản
1. Java backend api web service: CHI TIẾT
2. Thiết kế website
2.1 Thiết kế website cơ bản: CHI TIẾT
2.2 Thiết kế website nâng cao: CHI TIẾT
- Học spring framework không sử dụng spring boot: CHI TIẾT
Tham gia livestream, workshop học java miễn phí cùng Laptrinhjavaweb
Tham gia group facebook để hỏi đáp trong quá trình học
Các kênh để nhận thông báo sớm nhất, hỏi đáp miễn phí trong quá trình học
Để có thể nhận thông báo nhanh nhất về các nội dung mà Laptrinhjavaweb biên soạn, các bạn follow facebook, youtube, nhóm Zalo. Trong quá trình học, cần hỏi đáp thì các bạn join vô nhóm facebook để hỏi đáp nhé
1. Nhận thông báo
- Facebook Laptrinhjavaweb: XEM TẠI ĐÂY
- Facebook cô giáo Lâm: XEM TẠI ĐÂY
- Youtube Laptrinhjavaweb: XEM TẠI ĐÂY
- Youtube Cô giáo Lâm: XEM TẠI ĐÂY
- Nhóm Zalo nhận thông báo: XEM TẠI ĐÂY
2. Hỏi đáp miễn phí, report bug, gợi ý nội dung
- Nhóm Facebook hỏi đáp miễn phí: XEM TẠI ĐÂY
Trên mạng có rất nhiều nguồn, tài liệu để học rất vui khi các bạn chọn Laptrinhjavaweb. Chúc các bạn học vui, hiệu quả cùng Cô giáo Lâm và Laptrinhjavaweb
Laptrinhjavaweb Academy cung cấp các khóa học: Java Core, Java Web, Java Hosting