以下是在 IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤:
步骤 1:创建 Maven Web 项目
-
新建项目
File -> New -> Project
→ 选择 Maven → 勾选 Create from archetype → 选择maven-archetype-webapp
。- 输入
GroupId
(如com.example
)、ArtifactId
(如spring-mvc-demo
) → 点击Next
→ 完成项目创建。
-
项目结构
确保项目包含以下目录:src/main/├── java/ # Java 代码├── resources/ # 配置文件└── applicationContext.xml└── webapp/ # Web 资源├── WEB-INF/│ └── web.xml└── index.jsp
步骤 2:添加 Spring MVC 依赖
在 pom.xml
中添加以下依赖(Spring 5.x + Servlet 4.x):
<dependencies><!-- Spring MVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.30</version></dependency>
</dependencies>
- 1、保存后执行
– 在 Maven 工具窗口中,展开项目 -> Lifecycle。
– 双击 clean → 等待清理完成。
– 双击 install → 等待依赖下载和构建完成。 - 2、将新的依赖加入到发布目录中
– 点击Edite Configurations–>选中当前Server–>右侧选择Deployment–>选中当前发布项目,点击编辑按钮,将新加入的依赖添加到左侧(选中依赖,右键“Put into WEB-INF/lib”)
– 如下图
步骤 3:配置 DispatcherServlet
方式 1:通过 web.xml
配置
-
配置web.xml 文件
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"version="6.0"><servlet><servlet-name>springmvc</servlet-name><!--配置DispatcherServlet --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><!--设置web应用启动时自动创建spring ioc容器并初始化DispatcherServlet--><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--拦截所有对象--><url-pattern>/</url-pattern></servlet-mapping> </web-app>
-
配置applicationContext.xml
在src/main/resource/
下新建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:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd
"><!--在spring ioc初始化过程中,自动创建并管理com.hirain及其子包中拥有如下注解的对象:@Repository@Service@Controller@Component--><context:component-scan base-package="com.hirain"/><!--启用mvc注解开发模式--><mvc:annotation-driven/><!--将图片、css、js等静态资源排除在外,可提高执行效率--><mvc:default-servlet-handler/></beans>
方式 2:纯 Java 配置(推荐)
-
创建配置类
src/main/java/com/example/config/WebConfig.java
:package com.example.config;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration @EnableWebMvc @ComponentScan(basePackages = "com.example.controller") public class WebConfig implements WebMvcConfigurer {@Overridepublic void configureViewResolvers(ViewResolverRegistry registry) {registry.jsp("/WEB-INF/views/", ".jsp");} }
-
修改
web.xml
使用AnnotationConfigServletWebServerApplicationContext
:<context-param><param-name>contextClass</param-name><param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> </context-param> <context-param><param-name>contextConfigLocation</param-name><param-value>com.example.config.WebConfig</param-value> </context-param>
步骤 4:创建 Controller 和视图
-
Controller 类
在src/main/java/com/example/controller
下新建HelloController.java
:package com.example.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping;@Controller public class HelloController {@GetMapping("/hello")public String hello() {return "hello"; // 对应 /WEB-INF/views/hello.jsp} }
-
JSP 视图
在src/main/webapp/WEB-INF/views
下新建hello.jsp
:<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Hello Spring MVC</title> </head> <body><h1>Hello, Spring MVC!</h1> </body> </html>
步骤 5:配置 Tomcat 并运行
-
添加 Tomcat 服务器
- 点击右上角
Add Configuration
→+
→Tomcat Server -> Local
。 - 指定 Tomcat 安装路径(若未配置,需先下载 Tomcat)。
- 点击右上角
-
部署项目
- 在
Deployment
标签页 → 点击+
→ 选择Artifact
→ 选择spring-mvc-demo:war exploded
。 - 设置上下文路径(如
/demo
)。
- 在
-
启动服务器
- 点击绿色三角按钮 → 访问
http://localhost:8080/demo/hello
,看到页面显示 “Hello, Spring MVC!” 即成功。
- 点击绿色三角按钮 → 访问
常见问题解决
-
404 错误
- 检查
@Controller
和@GetMapping
注解是否生效。 - 确保
web.xml
中的DispatcherServlet
映射正确(如/
或*.do
)。
- 检查
-
JSP 无法解析
- 确认视图解析器的
prefix
和suffix
配置正确。 - 确保 JSP 文件位于
WEB-INF/views/
目录下。
- 确认视图解析器的
-
依赖冲突
- 执行
mvn dependency:tree
检查依赖版本是否兼容。
- 执行
扩展配置
-
静态资源处理
在spring-mvc-servlet.xml
中添加:<mvc:resources mapping="/static/**" location="/static/"/>
- 静态文件存放在
src/main/webapp/static/
目录下。
- 静态文件存放在
-
启用注解驱动
确保<mvc:annotation-driven/>
或@EnableWebMvc
已配置。
完成以上步骤后,Spring MVC 环境即可正常运行。如果遇到问题,优先检查控制台日志和依赖树。