欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring MVC的項(xiàng)目準(zhǔn)備和連接建立方法

 更新時(shí)間:2024年10月18日 16:00:55   作者:椰椰椰耶  
SpringWebMVC是基于Servlet API的Web框架,屬于Spring框架的一部分,主要用于簡化Web應(yīng)用程序的開發(fā),SpringMVC通過控制器接收請求,使用模型處理數(shù)據(jù),并通過視圖展示結(jié)果,感興趣的朋友跟隨小編一起看看吧

1. 什么是 Spring Web MVC

Spring Web MVC 是基于 Servlet API 構(gòu)建的原始 Web 框架,從已開是就包含在 Spring 框架中。它的正式名稱“Spring Web MVC”是自其源模塊的名稱(Spring-webmvc),但它通常被稱為“Spring mvc”

[!quote] 什么是 Servlet

  • Servlet 是一種實(shí)現(xiàn)動態(tài)頁面的技術(shù)。準(zhǔn)確來講 Servlet 是一套 Java Web 開發(fā)的規(guī)范,或者說是一套 JavaWeb 開發(fā)的技術(shù)標(biāo)準(zhǔn)。只有規(guī)范并不能做任何事,必須要有人去實(shí)現(xiàn)它。所謂實(shí)現(xiàn) Servlet 規(guī)范,就是真正編寫代碼去實(shí)現(xiàn) Servlet 規(guī)范提到的各種功能,包括類、方法、屬性等。
  • Servlet 規(guī)范是開放的,除了 Sun 公司,其他公司也能實(shí)現(xiàn) Servlet 規(guī)范,目前常見的實(shí)現(xiàn)了 Servlet 規(guī)范的產(chǎn)品包括 Tomcat、Weblogic、Jetty、JbossWebSphere 等,它們都被稱為“Servlet 容器”。
  • Servlet 容器用來管理程序猿編寫的 Servlet

從上述定義我們可以得出一個(gè)信息:Spring Web MVC 是一個(gè) Web 框架。下面我們簡稱“Spring MVC

然而要真正理解什么是 Spring MVC,我們首先要搞清楚什么是 MVC

1.1 MVC 定義

MVC 是 Model View Controller 的縮寫,它是軟件工程中的一種軟件架構(gòu)設(shè)計(jì)模式,它把軟件系統(tǒng)分為:模型、視圖和控制器三個(gè)部分

View(視圖):指在應(yīng)用程序中專門用來與瀏覽器進(jìn)行交互,展示數(shù)據(jù)的資源Model(模型):是應(yīng)用程序的主體部分,用來處理程序中數(shù)據(jù)邏輯的部分Controller(控制器):可以理解為一個(gè)分發(fā)器,用來決定視圖發(fā)來的請求,需要用哪一個(gè)模型來處理,以及處理完后需要跳回哪一個(gè)視圖。即用來連接視圖和模型

我們?nèi)ワ埖瓿燥?,我們坐下,服?wù)員讓我們點(diǎn)單。點(diǎn)完之后,服務(wù)員就把單給到前臺,然后前臺把單給到后廚

  • 服務(wù)員 ==> View,接待我們的
  • 前臺==> Contriller,出現(xiàn)一些沖突(菜不對等等情況),就會去前臺
  • 后廚 ==> Model,菜做好之后,把菜品給到前臺,前臺再把菜給到服務(wù)員,服務(wù)員給我們上菜
我們是和服務(wù)員進(jìn)行交互,前臺是控制他們兩個(gè)之間的關(guān)系

去面試,HR 和部門的負(fù)責(zé)人對接。候選人到達(dá)公司,HR 接待;HR 去找部門的負(fù)責(zé)人安排面試;部門的負(fù)責(zé)人安排一個(gè)小伙去進(jìn)行面試

  • HR ==> View
  • 部門負(fù)責(zé)人 ==> Controller
  • 面試官 ==> Model

1.2 什么是 Spring MVC

MVC 是一種設(shè)計(jì)模式,也是一種思想,而 Spring MVC 是對 MVC 思想的具體實(shí)現(xiàn)。除此之外,Spring MVC 還是一個(gè) Web 框架
總結(jié)來說:Spring MVC 是一個(gè)實(shí)現(xiàn)了 MVC 模式的 Web 框架

所以,Spring MVC 主要關(guān)注有兩個(gè)點(diǎn):

  • MVC
  • Web 框架

Spring MVC 全稱是 Spring Web MVC

其實(shí),Spring MVC 我們在前面已經(jīng)用過了,在創(chuàng)建 Spring Boot 項(xiàng)目的時(shí)候,我們勾選的 Spring Web 框架,其實(shí)就是 Spring MVC 框架:

可以看到,Spring Web 的介紹是:

  • Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container使用 Spring MVC 構(gòu)建 Web 應(yīng)用程序,包括 RESTful 應(yīng)用程序。
  • 使用 Apache Tomcat 作為默認(rèn)的嵌入式容器。

前面創(chuàng)建的不是 Spring Boot 項(xiàng)目嗎?為什么又變成了 Spring MVC 項(xiàng)目?它們之間到底有著什么樣的關(guān)系?

Spring Boot 是 2014 年發(fā)布的,Spring 是 2004 年發(fā)布的,在 2014 發(fā)布之前,就不能用 Spring 實(shí)現(xiàn) MVC 了嗎?顯然不是

  • Spring Boot 只是實(shí)現(xiàn) Spring MVC 的其中一種方式而已Spring Boot 可以添加很多依賴,借助這些依賴實(shí)現(xiàn)不同的功能。
  • Spring Boot 通過添加 Spring Web MVC 框架,來實(shí)現(xiàn) Web 功能

比如,廚房可以用來做飯,但真實(shí)實(shí)現(xiàn)做飯功能的是火以及各種做飯相關(guān)的工作和食材。廚房就好比是 Spring Boot,廚房可以裝柜子,實(shí)現(xiàn)收納功能,裝燃?xì)庠?,?shí)現(xiàn)做飯功能。做飯這個(gè)事,就是 MVC,在幾千年前,有火就可以實(shí)現(xiàn)做飯

不過 Spring 在實(shí)現(xiàn) MVC 的時(shí)候,也結(jié)合自身項(xiàng)目的特點(diǎn),做了一些改變,相對而言,下面這個(gè)圖也許更加適合一些

不過核心沒變

  • 比如上面的例子中,去飯店吃飯。一些飯店是前廳來負(fù)責(zé)接待客戶,幫助客戶點(diǎn)餐,也就是 Controller 來負(fù)責(zé)接收用戶的請求
  • 去公司面試,直接由面試官來接待候選人,省去了中間 HR 的交接環(huán)節(jié)

2. 學(xué)習(xí) Spring MVC

既然是 Web 框架,那么當(dāng)用戶在瀏覽器中輸入了 URL 之后,我們的 Spring MVC 項(xiàng)目就可以感知到用戶的請求,并給予響應(yīng)。我們也是主要學(xué)習(xí)如何通過瀏覽器和用戶程序進(jìn)行交互,主要分為以下三個(gè)方面:

  • 建立連接:將用戶(瀏覽器)和 Java 程序連接起來,也就是訪問一個(gè)地址能夠調(diào)用到我們的 Spring 程序
  • 請求:用戶請求的時(shí)候會帶一些參數(shù),在程序中要想辦法獲取到參數(shù),所以請求這塊主要是獲取參數(shù)的功能
  • 響應(yīng):執(zhí)行了業(yè)務(wù)邏輯之后,要把程序執(zhí)行的結(jié)果返回給用戶,也就是響應(yīng)

比如用戶區(qū)銀行存款

  • 建立連接:去柜臺
  • 請求:帶著銀行卡,身份證去存款
  • 響應(yīng):銀行返回一張存折

對于 Spring MVC 來說,掌握了以上三個(gè)功能就相當(dāng)于掌握了 Spring MVC

2.1 項(xiàng)目準(zhǔn)備

Spring MVC 項(xiàng)目創(chuàng)建和 Spring Boot 創(chuàng)建項(xiàng)目相同,在創(chuàng)建的時(shí)候選擇 Spring Web 就相當(dāng)與創(chuàng)建了 Spring MVC 的項(xiàng)目

在項(xiàng)目創(chuàng)建的時(shí)候,勾選上 Spring web 模塊即可,如下圖所示:

2.2 建立連接

在 Spring MVC 中使用 @RequestMapping 來實(shí)現(xiàn) URL 路由映射,也就是瀏覽器連接程序的作用

創(chuàng)建一個(gè) UserController 類,實(shí)現(xiàn)用戶通過瀏覽器和程序的交互,具體實(shí)現(xiàn)代碼如下:

import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
@RestController  
public class UserController {  
    @RequestMapping("/sayHello")  
    public String sayHi() {  
        return "hello, spring mvc";  
    }  
}

方法名和路徑名稱無需一致接下來訪問:
http://127.0.0.1:8080/sayHi,就可以看到程序返回的數(shù)據(jù)了

到此這篇關(guān)于Spring MVC的項(xiàng)目準(zhǔn)備和連接建立的文章就介紹到這了,更多相關(guān)Spring MVC連接建立內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    Spring boot+VUE實(shí)現(xiàn)token驗(yàn)證的示例代碼

    本文詳細(xì)介紹了使用Vue和SpringBoot實(shí)現(xiàn)token認(rèn)證的方法,包括前后端交互流程、后端依賴導(dǎo)入、token工具類、攔截器、跨域處理、前端路由守衛(wèi)、請求攔截器等內(nèi)容,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-10-10
  • commons fileupload實(shí)現(xiàn)文件上傳的實(shí)例代碼

    commons fileupload實(shí)現(xiàn)文件上傳的實(shí)例代碼

    這篇文章主要介紹了commons fileupload實(shí)現(xiàn)文件上傳的實(shí)例代碼,包括文件上傳的原理分析等相關(guān)知識點(diǎn),本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-10-10
  • Java web中 war exploded 的解決方案

    Java web中 war exploded 的解決方案

    這篇文章主要介紹了Java web中 war exploded 的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java權(quán)重隨機(jī)的實(shí)現(xiàn)方法

    Java權(quán)重隨機(jī)的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java權(quán)重隨機(jī)的實(shí)現(xiàn)方法,實(shí)例分析了權(quán)重隨機(jī)算法的原理與完整實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • Java監(jiān)聽器三種實(shí)現(xiàn)方法代碼解析

    Java監(jiān)聽器三種實(shí)現(xiàn)方法代碼解析

    這篇文章主要介紹了Java監(jiān)聽器三種實(shí)現(xiàn)方法代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • idea插件生成jpa實(shí)體類的實(shí)現(xiàn)示例

    idea插件生成jpa實(shí)體類的實(shí)現(xiàn)示例

    本文主要介紹了idea插件生成jpa實(shí)體類的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • 在eclipse中使用SVN的實(shí)現(xiàn)方法(圖文教程)

    在eclipse中使用SVN的實(shí)現(xiàn)方法(圖文教程)

    這篇文章主要介紹了在eclipse中使用SVN的實(shí)現(xiàn)方法(圖文教程),文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • JAVA面試題之緩存擊穿、緩存穿透、緩存雪崩的三者區(qū)別

    JAVA面試題之緩存擊穿、緩存穿透、緩存雪崩的三者區(qū)別

    當(dāng)服務(wù)器QPS比較高,并且對數(shù)據(jù)的實(shí)時(shí)性要求不高時(shí),往往會接入緩存以達(dá)到快速Response、降低數(shù)據(jù)庫壓力的作用,常用來做緩存的中間件如Redis等。本文主要介紹了JAVA面試時(shí)??嫉木彺鎿舸?、穿透、雪崩場景三者區(qū)別,有興趣的小伙伴可以看一下
    2021-11-11
  • java使用randomaccessfile在文件任意位置寫入數(shù)據(jù)

    java使用randomaccessfile在文件任意位置寫入數(shù)據(jù)

    Java在文件任意位置寫入數(shù)據(jù)可以使用RandomAccessFile方法來完成,下面看一個(gè)簡單的示例就明白了
    2014-01-01
  • Java實(shí)現(xiàn)人臉識別登錄、注冊等功能(最新完整版)

    Java實(shí)現(xiàn)人臉識別登錄、注冊等功能(最新完整版)

    這段時(shí)間由于學(xué)校實(shí)行靜態(tài)化管理,寢室門和校門都是用了人臉識別的裝置,本系列項(xiàng)目從設(shè)計(jì)到實(shí)現(xiàn)源碼全部開源免費(fèi)學(xué)習(xí)使用,對Java實(shí)現(xiàn)人臉識別登錄、注冊功能感興趣的朋友一起看看吧
    2022-05-05

最新評論