IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤

以下是在 IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤:


步骤 1:创建 Maven Web 项目

  1. 新建项目

    • File -> New -> Project → 选择 Maven → 勾选 Create from archetype → 选择 maven-archetype-webapp
    • 输入 GroupId(如 com.example)、ArtifactId(如 spring-mvc-demo) → 点击 Next → 完成项目创建。
  2. 项目结构
    确保项目包含以下目录:

    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 配置
  1. 配置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>
    
  2. 配置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 配置(推荐)
  1. 创建配置类 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");}
    }
    
  2. 修改 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 和视图

  1. 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}
    }
    
  2. 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 并运行

  1. 添加 Tomcat 服务器

    • 点击右上角 Add Configuration+Tomcat Server -> Local
    • 指定 Tomcat 安装路径(若未配置,需先下载 Tomcat)。
  2. 部署项目

    • Deployment 标签页 → 点击 + → 选择 Artifact → 选择 spring-mvc-demo:war exploded
    • 设置上下文路径(如 /demo)。
  3. 启动服务器

    • 点击绿色三角按钮 → 访问 http://localhost:8080/demo/hello,看到页面显示 “Hello, Spring MVC!” 即成功。

常见问题解决

  1. 404 错误

    • 检查 @Controller@GetMapping 注解是否生效。
    • 确保 web.xml 中的 DispatcherServlet 映射正确(如 /*.do)。
  2. JSP 无法解析

    • 确认视图解析器的 prefixsuffix 配置正确。
    • 确保 JSP 文件位于 WEB-INF/views/ 目录下。
  3. 依赖冲突

    • 执行 mvn dependency:tree 检查依赖版本是否兼容。

扩展配置

  1. 静态资源处理
    spring-mvc-servlet.xml 中添加:

    <mvc:resources mapping="/static/**" location="/static/"/>
    
    • 静态文件存放在 src/main/webapp/static/ 目录下。
  2. 启用注解驱动
    确保 <mvc:annotation-driven/>@EnableWebMvc 已配置。


完成以上步骤后,Spring MVC 环境即可正常运行。如果遇到问题,优先检查控制台日志和依赖树。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902905.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于javaweb的SpringBoot+MyBatis通讯录管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

EFISH-SBC-RK3588无人机地面基准站项目

一、核心技术组件解析 1. EFISH-SBC-RK3588 性能优势&#xff1a;作为瑞芯微推出的高性能处理器&#xff0c;采用8nm 工艺&#xff0c;搭载ARM Cortex-A76/A55 八核架构&#xff0c;集成强大的 NPU&#xff08;神经网络处理单元&#xff09;和 GPU&#xff08;图形处理器&…

蓝桥杯 4. 卡片换位

卡片换位 原题目链接 题目描述 你玩过华容道的游戏吗&#xff1f; 这是一个类似的&#xff0c;但更简单的游戏。 看下面的 3 2 格子&#xff1a; --------- | A | * | * | --------- | B | | * | ---------在其中放置了 5 张牌&#xff0c;其中&#xff1a; A 表示关…

7.Excel:单元格格式

一 案例 1.案例1 2.案例2 3.案例3 二 三种基本数据类型 补充&#xff1a;在没有任何格式的情况下是这样对齐的。 1.文本 默认左对齐&#xff0c;文本不可参与计算。 2.数值 默认右对齐&#xff0c;数值计算精度是15位。 若超出15位&#xff0c;超出部分显示为0。 3.逻辑值 …

高效DCDC电源芯片在运动控制器中的应用:设计考量、性能评估与可靠性分析

摘要 随着工业自动化的深入推进&#xff0c;运动控制器作为自动化系统的核心组件&#xff0c;对电源芯片的性能提出了极高要求。高效率DCDC电源芯片凭借其卓越的电能转换效率、优异的负载响应特性和高功率密度&#xff0c;在运动控制器领域得以广泛应用。本文以国科安芯的ASP3…

Action:Update your application‘s configuration

在使用Maven项目时&#xff0c;有一个报错信息是&#xff1a;Update your applications configuration 这类问题&#xff0c;就是我们的application.yml文件 或者 application.properties文件 内容哪里写错了 最有可能就是对齐方式有问题

Pycharm(六):可变与不可变类型

一、引用 在java中既有值传递,也有引用传递,我们思考一下在python中值的传递方式是哪种类型呢? 答案是引用传递。 概述: Python中存储变量是需要占用内存空间的,为了更好地管理这些空间,每块空间都是有自己的地址值的。 格式: id(变量名/值) 可以查看变量/…

动态ip与静态ip的概念、区别、应用场景

动态ip与静态ip的区别 前言 一、IP地址的概念和作用 1.1、IP地址的定义 1.2、IP地址的作用 二、动态IP和静态IP的区别 2.1、动态IP和静态IP的定义 2.2、动态IP和静态IP的特点 2.3、动态IP和静态IP的优缺点比较 三、动态IP和静态IP的应用场景 3.1. 动态IP的应用场景 3.2. 静态IP…

六个能够白嫖学习资料的网站

一、咖喱君的资源库 地址&#xff1a;https://flowus.cn/galijun/share/de0f6d2f-df17-4075-86ed-ebead0394a77 这是一个学习资料/学习网站分享平台&#xff0c;包含了英语、法语、德语、韩语、日语、泰语等几十种外国语言的学习资料及平台&#xff0c;这个网站的优势就是外语…

[贪心_7] 最优除法 | 跳跃游戏 II | 加油站

目录 1.最优除法 题解 2.跳跃游戏 II 题解 3.加油站 题解 利用 单调性&#xff0c;可以实现 区间跳跃 1.最优除法 链接&#xff1a; 553. 最优除法 给定一正整数数组 nums&#xff0c;nums 中的相邻整数将进行浮点除法。 例如&#xff0c;nums [2,3,4]&#xff0c;我…

“Daz to Unreal”将 G8 角色(包括表情)从 daz3d 导入到 UE5。在 UE5 中,我发现使用某个表情并与闭眼混合后,上眼睑出现了问题

1) Bake & Export Corrective Morphs from Daz before you go into UE5 1) 在进入 UE5 之前&#xff0c;从 Daz 烘焙并导出修正型变形 In Daz Studio 在 Daz Studio 中 Load your G8 head, dial in the exact mix (e.g. Smile 1.0 Eyes Closed 1.0). 加载你的 G8 头部&am…

【机器学习速记】面试重点/期末考试

自用,有错误欢迎评论区指出 目录 一、机器学习基础概念 二、机器学习类型分类 三、经典算法与原理 1. 线性模型 2. 决策树 3. SVM(支持向量机) 4. K近邻(KNN) 5. 贝叶斯分类 6. 集成学习 四、模型评价指标 五、模型泛化能力与调参 六、特征工程与数据预处理 七、维…

Redis 原子操作

文章目录 前言✅ 一、什么是「原子操作」&#xff1f;&#x1f50d; 二、怎么判断一个操作是否原子&#xff1f;&#x1f9ea; 三、项目中的原子 vs 非原子案例&#xff08;秒杀系统&#xff09;✅ 原子性&#xff08;OK&#xff09;❌ 非原子性&#xff08;高风险&#xff09;…

中建海龙MiC模块化建筑赋能“好房子”新范式

中国建筑国际集团旗下中建海龙科技有限公司&#xff08;以下简称“中建海龙”&#xff09;以科技创新为引擎&#xff0c;持续推动建筑行业向工业化、数字化、绿色化转型升级。近期&#xff0c;其自主研发的模块化集成建筑&#xff08;MiC&#xff09;技术成功入选中国建筑首批产…

DDL自联表

自联表 create table t_menu (id int AUTO_INCREMENT,name varchar(20),image varchar(20),url varchar(20),pid varchar(20),constraint pk_id primary key(id),constraint fk_id foreign key(pid) references t_menu(id) );

【版本控制】SVN + TortoiseSVN版本管理实用教程(附安装+开发常用操作)

摘要&#xff1a; 本文将带你从零开始掌握 SVN 版本控制系统&#xff0c;结合 TortoiseSVN 图形客户端工具&#xff0c;深入学习包括安装、检出、提交、更新、回滚、冲突解决等常用开发操作&#xff0c;快速上手团队协作&#xff01; &#x1f9e9; 什么是 SVN&#xff1f; SV…

C语言实现对哈希表的操作:创建哈希表与扩容哈希表

一. 简介 前面文章简单了解了哈希表 这种数据结构&#xff0c;文章如下&#xff1a; 什么是哈希表-CSDN博客 本文来学习一下哈希表&#xff0c;具体学习一下C语言实现对哈希表的简单实现。 二. C语言实现对哈希表的操作 1. 哈希表 哈希表&#xff08;Hash Table&#xff…

UML 活动图详解:以机票预订系统用户注册为例

目录 一、UML 活动图的基本元素 二、题目原型 三、机票预订系统用户注册的活动图分析 四、活动图绘画 五、总结 在软件开发过程中&#xff0c;UML&#xff08;统一建模语言&#xff09;活动图是一种非常重要的工具&#xff0c;它能够帮助我们清晰地理解系统的业务流程和工…

FX10(CYUSB4014)USB3.2(10Gbps)开发笔记分享(1):硬件设计与开发环境搭建

作者&#xff1a;Hello&#xff0c;Panda 大家早上好&#xff0c;中午好&#xff0c;下午好&#xff0c;晚上好&#xff0c;熊猫君又来了。这次计划做一个连载&#xff0c;大概6期左右&#xff0c;主要介绍英飞凌最新的FX5/10/20的器件应用。目前&#xff0c;熊猫君手上调试的…

前端项目部署

一、本地服务器部署&#xff1a; 解决页面刷新404问题&#xff1a; 1、使用 hash 模式 2、当路径不匹配的时候&#xff0c;直接访问 index.html 3、使用插件&#xff1a;connect-history-api-fallback https://www.npmjs.com/package/connect-history-api-fallback npm ins…