创建SpringMvc项目流程--史上最详细步骤教程

创建SpringMvc项目流程--史上最详实步骤教程

写在前面:
要创建一个SpringMVC项目,首先博主使用的工具是STS,使用eclipse也是和STS非常相似的哈,推荐使用STS。在这里我使用的是mac环境,但是具体的软件操作是一样的,不需要担心,耐心按照步骤去做就不会出错的。

关于SpringMVC的相关知识可以查看:
详解SpringMVC
在这里我们就不过多赘述了,直接放干货。

1. 创建一个Maven项目

在空白处点击右键,new --> other --> Maven project
输入存储路径,最后一层是项目文件名;选中如图第一种创建方式
创建SpringMvc项目流程--史上最详细步骤教程_第1张图片

点击next之后,分组选根据自己需要输入,Artifact id需要和上一层写的名字相同,选择jar是创建JavaSE项目,war是创建JavaEE项目,pom是创建总体的文件,还需要在里面继续创建Maven module,Maven module是war包的,我们可以直接创建war包的,当项目模块很多是选择pom

创建SpringMvc项目流程--史上最详细步骤教程_第2张图片

finish之后,项目就出来了,但是看到报错了,不要慌
创建SpringMvc项目流程--史上最详细步骤教程_第3张图片

错误原因是我们缺少一个配置文件,解决方法是在项目名上右键,Java EE Tools --> 第二项
创建SpringMvc项目流程--史上最详细步骤教程_第4张图片

之后就可以看到报错消失了,并且发现在webapp下多出了一个web.xml文件,这个文件很重要!!!
创建SpringMvc项目流程--史上最详细步骤教程_第5张图片

接下来我们连接tomcat,首先你需要有tomcat哈,如果没有可以去往:
tomcat官网 http://tomcat.apache.org
下载tomcat即可,很小下载很快。
在工具栏中找到performance,左侧选择Perject Facets --> 选中如图中间红框 --> 版本选择到3.1 --> 右边勾选上你的tomcat
创建SpringMvc项目流程--史上最详细步骤教程_第6张图片

到这里创建一个项目的模型就完成了,接下来我们开始正式布置我们的内容。

2. 编辑配置文件

首先我们打开这个项目的pom.xml文件
创建SpringMvc项目流程--史上最详细步骤教程_第7张图片

打开如果看不见内容代码,只需要切换展示模块,如图,选到pom
创建SpringMvc项目流程--史上最详细步骤教程_第8张图片

在这里我们需要做的事情是在这份配置文件当中写入依赖,可以配置到我们所需要的帮助文件,平时是通过导入jar包完成的,现在需要通过写依赖来完成。常用的依赖可以在:
常用maven依赖总结
中查看,在这里我直接将我的代码展示出来:
创建SpringMvc项目流程--史上最详细步骤教程_第9张图片

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>spring-demo</groupId>
    <artifactId>springdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>spring-example</artifactId>
  <packaging>war</packaging>
  
    <properties>
		<project.spring.version>5.2.12.RELEASE</project.spring.version>
		<project.lombok.version>1.18.16</project.lombok.version>
		<project.junit.version>4.12</project.junit.version>
	</properties>
  
  	<dependencies>
	
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>${
     project.lombok.version}</version>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${
     project.junit.version}</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${
     project.spring.version}</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.2.12.RELEASE</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.12.1</version>
		</dependency>

	</dependencies>
</project>

写好之后可以在,Maven dependence 中查看到:
创建SpringMvc项目流程--史上最详细步骤教程_第10张图片

接下来我们需要在src/main/resource中创建spring/mvc/spring-mvc.xml(文件结构在下一张图) , 我们要在这里配置servlet,建议xml文件命名为springmvc-Servlet.xml , 这里是博主大意了,后面的项目我都改过来了。
创建过程是,在mvc文件夹上右键,搜索spring,选择如图选项

创建SpringMvc项目流程--史上最详细步骤教程_第11张图片

我们将前端界面放到webapp下,static/**.html , 根据你的页面设置名字哈,页面代码我会在后面放出来。

创建SpringMvc项目流程--史上最详细步骤教程_第12张图片

在刚创建的Servlet的xml文件中,我们首先需要选中下方模块,在其中勾选上如图内容
创建SpringMvc项目流程--史上最详细步骤教程_第13张图片

接下来点击 Source模块,编辑内容,如下:
创建SpringMvc项目流程--史上最详细步骤教程_第14张图片

代码:

<?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"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">


<context:component-scan base-package="com.dyit" ></context:component-scan>
<!-- 基于注解的驱动 -->
<mvc:annotation-driven />
<!-- location="static/" 指的具体的本地的地方 mapping="static/**" 指的是映射的网页地址的 -->
<mvc:resources location="static/" mapping="static/**"></mvc:resources>

</beans>

配置完servlet,接下来我们打开web.xml文件,首先是修改版本号为3.1 , 接着我们在这里配置一下刚刚写好的servlet的拦截请求相关配置,并且我写了一个字符编码拦截器(),这个拦截器可以处理中文乱码问题,复用率非常高之后我们每个项目可能都需要。
创建SpringMvc项目流程--史上最详细步骤教程_第15张图片

代码:

<?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_3_1.xsd"
	version="3.1">
	<display-name>spring-example</display-name>
	<filter>
		<filter-name>charset</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>
	</filter>
	<filter-mapping>
		<filter-name>charset</filter-name>
		<url-pattern >/*
	

	
		springDispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
		
			contextConfigLocation
			classpath:spring/mvc/spring-*.xml
		
		1
	
	
	
		springDispatcherServlet
		*.action
	

到这里我们配置文件部分就完成了,接下来来写具体的java代码,实现一个简单的登录功能。

3. 编写Java代码

首先展示一下我们的包结构:

创建SpringMvc项目流程--史上最详细步骤教程_第16张图片

  1. 编写实体类:User
    这里写了lombok的注解 ,
    创建SpringMvc项目流程--史上最详细步骤教程_第17张图片

代码:

package com.dyit.spring.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@AllArgsConstructor
@Data
@NoArgsConstructor
public class User {
     
	private String username;
	private String password;
	

}
  1. dto传输层:HttpResp
    创建SpringMvc项目流程--史上最详细步骤教程_第18张图片
package com.dyit.spring.dto;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
@Data
public class HttpResp {
     
	private int code;
	private String msgString;
	private Object results;
	@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",timezone="GMT+8")
	private Date date;

}
  1. Service层:UserService
    创建SpringMvc项目流程--史上最详细步骤教程_第19张图片
package com.dyit.spring.service;

import com.dyit.spring.entity.User;

public interface IUserService {
     
	void addUser(User user);
}

package com.dyit.spring.service;

import org.springframework.stereotype.Service;

import com.dyit.spring.entity.User;
@Service
public class UserServiceImpl implements IUserService {
     

	@Override
	public void addUser(User user) {
     
		System.out.println("add"+user.getUsername());
		System.out.println("add"+user.getPassword());
	}

}
  1. 接下来是最重要的Controller层 :Controller
    创建SpringMvc项目流程--史上最详细步骤教程_第20张图片
package com.dyit.spring.controller;
import java.util.Date;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dyit.spring.dto.HttpResp;
import com.dyit.spring.entity.User;
import com.dyit.spring.service.IUserService;

//这里应该是@Controller  由于博主电脑不知名原因只能写成带包的,大家不用这样写
@org.springframework.stereotype.Controller
public class Controller {
     
	@Autowired
	private IUserService iUserService;
	@RequestMapping("/regist.action")
	public String regist(User user) {
     
		iUserService .addUser(user);
		System.out.println("regist:"+user);
		return "redirect:static/regist.html";	
	}
	/**
	 * @ResponseBody注解就会被扫描到,把此注解下的内容变成json
	 * @return
	 */
	@RequestMapping("/findAll.action")
	@ResponseBody
	public HttpResp  findAll() {
     
		return new HttpResp(2001,"查询成功",new User("anmin","123"),new Date());
	}
}

  1. 页面:register.html
    创建SpringMvc项目流程--史上最详细步骤教程_第21张图片

Java代码部分也编写完成啦,最后一步是测试结果了!

4. 测试结果

我们需要从页面上开始运行,之后浏览器启动可以看到:
创建SpringMvc项目流程--史上最详细步骤教程_第22张图片

我们输入一组测试数据,点击提交,又回到了登录界面,但是数据不见了,说明数据已经正常传到后台去了,因为我们设置的重定向路径还是regist.html。

创建SpringMvc项目流程--史上最详细步骤教程_第23张图片

查看后台结果,可以看到,我们的数据确实是正常的传回来了,对应我们的service层和controller层方法,都没有问题。并且中文也没有出现乱码,说明我们的编码拦截器也生效了。
至此一个完整的SpringMVC项目就搭建完成了,并且实现了前后台的交互功能,复杂的项目也只需要将功能完整一下就可以了。整理不易,期待你的一键三连哦~(手动狗头)

你可能感兴趣的:(笔记,springmvc,spring,java)