1、使用Maven新建一个简单的JavaWeb项目
2、在pom.xml中添加使用SpringMVC所需要的包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<!-- 使用到原始的Servlet类时所需要导入的包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!--SpringMVC对JSON数据进行转换需要加入jackson的包-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0.pr1</version>
</dependency>
<!--SpringMVC实现文件上传的包-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
3、补全项目结构如下,java目录是放代码的,resources是放一些配置文件的
4、在src/main/resources下新建SpringMVC的配置文件springmvc.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"
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/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--开启注解扫描-->
<context:component-scan base-package="com.bran"/>
<!--配置视图解析器对象-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--使用SpringMVC文件上传方式必须配置文件解析器对象,要求名称一定为multipartResolver-->
<bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--还可以配置文件限制上传大小-->
<!--<property name="maxUploadSize" value="10485760" />-->
</bean>
<!--开启SpringMvc框架注解支持-->
<mvc:annotation-driven/>
<!--前端控制器DispatcherServlet会拦截到所有请求资源,导致静态资源(img、css、js)也会被拦截从而无法使用
解决问题需要配置静态资源不进行拦截,这个有两种方式解决
-->
<!--第一种方式,开启后告诉前端控制器哪些静态资源不进行拦截-->
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/js/**" location="/js/" />
<!--第二种方式,开启之后,访问静态资源请求全部交给Web服务器默认的Servlet处理-->
<!--<mvc:default-servlet-handler />-->
</beans>
5、在web.xml中配置使用SpringMVC
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>SpringMvc Web Application</display-name>
<!--springmvc 的前端控制器-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--初始化参数,用于读取SpringMVC的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--配置servlet的对象的创建时间点,应用加载时创建,取值只能是非0正整数,表示启动顺序-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--配置解决中文乱码的过滤器-->
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置完成后,就可以使用SpringMVC来开发项目了
新建一个HelloController进行测试
package com.bran.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//控制器类
@Controller
public class HelloController {
/**
* 入门案例
* @return
*/
@RequestMapping(path = "/hello")
public String sayHello(){
System.out.println("Hello SpringMvc");
return "success";
}
}
接着在webapp中新建一个success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>成功跳转页面</title>
</head>
<body>
<h1>Hello</h1>
<h1>跳转成功</h1>
</body>
</html>
在tomcat运行该项目,浏览器中访问http://localhost:8080/springmvc_test/hello这个路径,就会执行sayHello这个方法,根据springmvc.xml中配置的前端过滤器,返回结果的success字符串会自动跳转到success.jsp这个页面去