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.pswp.cn/news/902905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902905.shtml
英文地址,請注明出處:http://en.pswp.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…