SpringMVC環境搭建

文章目錄

    • 1.模塊創建
        • 1.創建一個webapp的maven項目
        • 2.目錄結構
    • 2.代碼
        • 1.HomeController.java
        • 2.home.jsp
        • 3.applicationContext.xml Spring配置文件
        • 4.spring-mvc.xml SpringMVC配置文件
        • 5.web.xml 配置中央控制器以及Spring和SpringMVC配置文件的路徑
        • 6.index.jsp
    • 3.配置Tomcat
        • 1.配置路徑以及熱加載
        • 2.配置war包以及上下文路徑為/
        • 3.啟動
          • 1.首頁
          • 2.訪問 /home
    • 4.初始化基本流程解析

1.模塊創建

1.創建一個webapp的maven項目

CleanShot 2025-02-10 at 12.21.01@2x

2.目錄結構

CleanShot 2025-02-10 at 12.39.37@2x

2.代碼

1.HomeController.java
package com.example.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;/*** Description:** @Author sun* @Create 2025/2/10 12:23* @Version 1.0*/
@Controller
public class HomeController {@RequestMapping("/home")public String home(Model model) {System.out.println("SpringMVC 執行了 home() 方法");model.addAttribute("message", "Hello, SpringMVC!");return "home"; // 返回 home.jsp}
}
2.home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>SpringMVC Demo</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>
3.applicationContext.xml Spring配置文件
<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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 掃描 Service 組件 --><context:component-scan base-package="com.example.service"/></beans>
4.spring-mvc.xml SpringMVC配置文件
<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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 啟用Spring MVC注解 --><mvc:annotation-driven/><!-- 掃描 Controller 層 --><context:component-scan base-package="com.example.controller"/><!-- 視圖解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/></bean></beans>
5.web.xml 配置中央控制器以及Spring和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"><!-- 配置Spring MVC的DispatcherServlet --><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 配置Spring的ContextLoaderListener(用于加載根上下文) --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param>
</web-app>
6.index.jsp
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

3.配置Tomcat

1.配置路徑以及熱加載

CleanShot 2025-02-10 at 12.43.14@2x

2.配置war包以及上下文路徑為/

CleanShot 2025-02-10 at 12.43.41@2x

3.啟動
1.首頁

CleanShot 2025-02-10 at 12.44.26@2x

2.訪問 /home

CleanShot 2025-02-10 at 12.44.53@2x

CleanShot 2025-02-10 at 12.44.40@2x

4.初始化基本流程解析

  1. Tomcat啟動,讀取web.xml,裝載中央控制器以及獲取Spring以及SpringMVC的配置文件路徑
  2. 由于中央控制器配置了load-on-startup所以會調用中央控制器的init方法完成Spring以及SpringMVC容器的初始化

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70229.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70229.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70229.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

window中git bash使用conda命令

window系統的終端cmd和linux不一樣&#xff0c;運行不了.sh文件&#xff0c;為了在window中模仿linux&#xff0c;可以使用gui bash模擬linux的終端。為了在gui bash中使用python環境&#xff0c;由于python環境是在anaconda中創建的&#xff0c;所以需要在gui bash使用conda命…

在線考試系統(代碼+數據庫+LW)

摘 要 使用舊方法對在線考試系統的信息進行系統化管理已經不再讓人們信賴了&#xff0c;把現在的網絡信息技術運用在在線考試系統的管理上面可以解決許多信息管理上面的難題&#xff0c;比如處理數據時間很長&#xff0c;數據存在錯誤不能及時糾正等問題。這次開發的在線考試…

c/c++藍橋杯經典編程題100道(19)漢諾塔問題

漢諾塔問題 ->返回c/c藍橋杯經典編程題100道-目錄 目錄 漢諾塔問題 一、題型解釋 二、例題問題描述 三、C語言實現 解法1&#xff1a;遞歸法&#xff08;難度★&#xff09; 解法2&#xff1a;迭代法&#xff08;難度★★★&#xff09; 四、C實現 解法1&#xff1…

趕AI大潮:在VSCode中使用DeepSeek及近百種模型的極簡方法

1 趕AI大潮&#xff1a;在VSCode中使用DeepSeek及近百種模型的極簡方法 1.1 背景 DeepSeek在春節期間突然大行其道&#xff0c;欣喜國力大增的同時&#xff0c;對于普通IT工作者&#xff0c;如何才能享受這一波AI紅利&#xff0c;讓自己的工作更出彩呢&#xff1f; ??很多人…

【一文讀懂】HTTP與Websocket協議

HTTP協議 概述 HTTP (Hypertext Transfer Protocol)&#xff0c;即超文本傳輸協議&#xff0c;是一種用于在客戶端和服務器之間傳輸超文本&#xff08;例如網頁、圖片、音頻、視頻等&#xff09;的通信協議。它是萬維網&#xff08;WWW&#xff09;的基礎&#xff0c;負責在瀏…

IDEA集成DeepSeek

引言 隨著數據量的爆炸式增長&#xff0c;傳統搜索技術已無法滿足用戶對精準、高效搜索的需求。 DeepSeek作為新一代智能搜索技術&#xff0c;憑借其強大的語義理解與深度學習能力&#xff0c;正在改變搜索領域的游戲規則。 對于 Java 開發者而言&#xff0c;將 DeepSeek 集成…

從零開始部署DeepSeek:基于Ollama+Flask的本地化AI對話系統

從零開始部署DeepSeek&#xff1a;基于OllamaFlask的本地化AI對話系統 一、部署背景與工具選型 在AI大模型遍地開花的2025年&#xff0c;DeepSeek R1憑借其出色的推理能力和開源特性成為開發者首選。本文將以零基礎視角&#xff0c;通過以下工具鏈實現本地化部署&#xff1a; …

圖論入門算法:拓撲排序(C++)

上文中我們了解了圖的遍歷(DFS/BFS), 本節我們來學習拓撲排序. 在圖論中, 拓撲排序(Topological Sorting)是對一個有向無環圖(Directed Acyclic Graph, DAG)的所有頂點進行排序的一種算法, 使得如果存在一條從頂點 u 到頂點 v 的有向邊 (u, v) , 那么在排序后的序列中, u 一定…

第1章大型互聯網公司的基礎架構——1.2 客戶端連接機房的技術1:DNS

客戶端啟動時要做的第一件事情就是通過互聯網與機房建立連接&#xff0c;然后用戶才可以在客戶端與后臺服務器進行網絡通信。目前在計算機網絡中應用較為廣泛的網絡通信協議是TCP/IP&#xff0c;它的通信基礎是IP地址&#xff0c;因為IP地址有如下兩個主要功能。 標識設備&…

全面解析鴻蒙(HarmonyOS)開發:從入門到實戰,構建萬物互聯新時代

文章目錄 引言 一、鴻蒙操作系統概述二、鴻蒙開發環境搭建三、鴻蒙核心開發技術1. **ArkUI框架**2. **分布式能力開發**3. **原子化服務與元服務** 四、實戰案例&#xff1a;構建分布式音樂播放器五、鴻蒙開發工具與調試技巧六、鴻蒙生態與未來展望結語 引言 隨著萬物互聯時代…

Android:播放Rtsp視頻流的兩種方式

一.SurfaceView Mediaplayer XML中添加SurfaceView: <SurfaceViewandroid:id"id/surface_view"android:layout_width"match_parent"android:layout_height"match_parent"/> Activity代碼&#xff1a; package com.android.rtsp;impor…

Next.js【詳解】CSS 樣式方案

全局樣式 Global CSS 默認已創建&#xff0c;即 src\app\globals.css&#xff0c;可根據需要修改 默認在全局布局中導入 src\app\layout.tsx import "./globals.css";組件樣式 CSS Modules 新建文件 src\app\test\styles.module.css .red {color: red;}導入目標頁面…

LVS相關原理

一、LVS集群的體系結構 1.1 LVS簡介 LVS 是 Linux Virtual Server 的簡稱&#xff0c;也就是 Linux 虛擬服務器 , 是一個由章文嵩博士發起的自由軟件項目&#xff0c;它的官方站點是 www.linuxvirtualserver.org 。現在 LVS 已經是 Linux標準內核的一部分&#xff0c;在Linux2…

【2025深度學習系列專欄大綱:深入探索與實踐深度學習】

第一部分:深度學習基礎篇 第1章:深度學習概覽 1.1 深度學習的歷史背景與發展軌跡 1.2 深度學習與機器學習、傳統人工智能的區別與聯系 1.3 深度學習的核心組件與概念解析 神經網絡基礎 激活函數的作用與類型 損失函數與優化算法的選擇 1.4 深度學習框架簡介與選擇建議 第2…

Java與C語言中取模運算符%的區別對比

博客主頁&#xff1a; [小????????] 本文專欄: Java 文章目錄 &#x1f4af;前言&#x1f4af;C語言中的取模運算符 %基本行為示例 注意事項示例&#xff1a;負數取模 &#x1f4af;Java中的取模運算符 %基本行為示例 對浮點數的支持示例&#xff1a;浮點數取模 符…

OpenCV機器學習(4)k-近鄰算法(k-Nearest Neighbors, KNN)cv::ml::KNearest類

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 cv::ml::KNearest 是 OpenCV 機器學習模塊中的一部分&#xff0c;它提供了實現 k-近鄰算法&#xff08;k-Nearest Neighbors, KNN&#xff09;的…

過于依賴chatgpt編程會有哪些弊端?

過于依賴ChatGPT編程可能會帶來以下問題&#xff1a; 1. 基礎不扎實&#xff0c;容易“變菜” 以前遇到代碼還會琢磨哪里不懂、怎么改&#xff0c;現在直接復制粘貼&#xff0c;時間長了可能連基本的語法和邏輯都搞不清楚。就像考試總抄答案&#xff0c;真讓你自己寫的時候腦子…

紅隊視角出發的k8s敏感信息收集——Kubernetes API 擴展與未授權訪問

針對 Kubernetes 第三方組件與 Operator 的詳細攻擊視角分析&#xff0c;涵蓋 Service Mesh、Helm Releases 和 Database Operators 的潛在風險及利用方法。 攻擊鏈示例 1. 攻擊者通過未授權的 Tiller 服務部署惡意 Helm Chart → 2. 創建后門 Pod 并橫向移動至 Istio 控制平…

3D與2D機器視覺機械臂引導的區別

3D與2D機器視覺在機械臂引導中的主要區別如下&#xff1a; 數據維度 2D視覺&#xff1a;僅處理平面圖像&#xff0c;提供X、Y坐標信息&#xff0c;無法獲取深度&#xff08;Z軸&#xff09;數據。 3D視覺&#xff1a;處理三維空間數據&#xff0c;提供X、Y、Z坐標及物體的姿態…

日常開發中,使用JSON.stringify來實現深拷貝的坑

使用JSON.stringify的方式來實現深拷貝的弊端 弊端一&#xff1a;無法拷貝NaN、Infinity、undefined這類值 無法拷貝成功的原因&#xff1a; 對于JSON來說&#xff0c;它支持的數據類型只有null、string、number、boolean、Object、Array&#xff0c;所以對于它不支持的數據類…