1. 程式人生 > >Spring MVC(學習筆記二)--控制器的註解(一) -之@RequestMapping的使用

Spring MVC(學習筆記二)--控制器的註解(一) -之@RequestMapping的使用

前面我們學習了Spring MVC最最基本的使用步驟及如何引用靜態資源。

Spring MVC提供了一個基於註釋的程式設計模型,今天,我們來學習一下Annotated Controllers(註釋的解析器官網地址

@Controller@RestController構成了使用註釋來表達請求對映,請求輸入,異常處理等等。帶註釋的控制器具有靈活的方法引數,不必擴充套件基類,也不必實現特定介面。

//@RestController  定義介面,返回資料(不需要再處理方法上定義@responseBody)

@RequestMapping

作用:標註用於請求對映到控制器的方法 屬性:可以通過URL(path=value)
HTTP方法(method)請求引數(params)請求引數的條件(produces)標頭(headers)提交內容型別(consumes)進行匹配 範圍:在類級別上用於表示共享對映(如同struts2 @namespace) 或 在方法級縮小特定的端點對映(如同struts2 @action)
@Controller
@RequestMapping(value = "/rmc")// 可以相當於struts2中的namespace
public class RequestMappingController {
    @RequestMapping(value = "req")//相當於struts2中的action
    public String  reqm(){
        return "index";
    }
}
下面是屬性的詳解:

HTTP方法(method)具體快捷的變種: @GetMapping*[相當於[email protected](method={RequestMethod.GET})]  @PostMapping*[相當於[email protected](method={RequestMethod.POST})]
 @PutMapping
@DeleteMapping @PatchMapping

URL模式(value=path):

? 匹配一個字元
* 匹配路徑段中的零個或多個字元
** 匹配零個或多個路徑段
例項:(該例項的類名就是上面程式碼中的類:RequestMappingController,路徑為:/rmc)
/**
* 訪問請求:http://localhost:8080/rmc/reqq?
* ?代表匹配一個任意字元
* @return 返回的檢視
*/
@GetMapping(value ="reqq?")
public String  reqQues(){
    return "index";
}

/**
* 訪問請求:http://localhost:8080/rmc/reqq*
* *代表匹配零個或多個字元
*/
@GetMapping(value ="reqs*")
public String  reqStar(){
    return "index";
}

/**
* 訪問請求:http://localhost:8080/rmc/reqs/1/1/1/q
* **匹配零個或多個路徑段
*/
@GetMapping(path ="reqs/**/q")
public String  reqTwoStar(){
    return "index";
}
請求引數(params)
/**
* 請求路徑:http://localhost:8080/rmc/reqp?id=10001
* @return
*/
@RequestMapping(value = "reqp",params ={"id=10001"})
public String  reqParams(){
    return "index";
}
當請求路徑沒有帶這個引數時就會報錯丟擲異常:
提交內容型別(consumes):
RequestMappingController類:
// 相當於@RequestMapping(value = "reqcs",method = RequestMethod.POST,consumes = {"text/plain"})
@PostMapping(value = "reqcs",consumes = {"text/plain"})
public String  reqcs(){
    return "index";
}
index.jsp頁面:
<h1>requestMapping:</h1>
     <form action="${pageContext.request.contextPath}/rmc/reqcs" method="post" enctype="text/plain">
        <input type="text">
        <input type="submit" value="sub">
    </form>
 如果index.jsp頁面的enctype和類中的consumes提交型別不一致時就會報錯,丟擲異常:

標頭(headers): 我們可以F12看看傳送請求後,headers有哪些內容:

/**
* 加上該標頭就表明:只能是Host為localhost:8080的請求才能夠訪問
*/
@RequestMapping(value = "reqh",headers = {"Host=localhost:8080"})
public String  reqHeaders(){
    return "index";
}

相關推薦

Spring MVC學習筆記--控制器註解() -@RequestMapping的使用

前面我們學習了Spring MVC最最基本的使用步驟及如何引用靜態資源。 Spring MVC提供了一個基於註釋的程式設計模型,今天,我們來學習一下Annotated Controllers(註釋的解析器),官網地址 @Controller和@RestController

Spring MVC學習筆記控制器註解(六) -處理跨域操作@CrossOrigin

@CrossOrigin  進行跨域資源訪問的處理操作 在這個案例中我返回的值為json型別,所以我們要先引用jars,pom.xml檔案: <dependency> <groupId>com.alibaba</groupId>

python 常用模組 random 學習筆記

random Python中的random模組用於生成隨機數 random.random random.random()用於生成一個0到1的隨機符點數: 0 <= n < 1.0 >>> import random >>>

學習筆記——基於opencv人臉檢測原理及實現

最近搞了幾天的人臉檢測,終於把大體框架和原理搞清楚了,現在寫出來供大家學習之用,如有不對之處,還請大家指正。也希望大家在學習opencv的過程中能將學習過程及重點記錄下來,以部落格的形式分析,畢竟opencv的教材還不太多,我們自己學習大部分要靠網上的資料。通過部落格分享的

初識面向對象 -類和對象命名空間、組合用法學習筆記

多態 數據 math att class 動態 ini 數據類型 rom 類和對象命名空間 # 類裏 可以定義兩種屬性# 靜態屬性# 動態屬性class Course:language = [‘Chinese‘]def __init__(self,teacher,cour

Wireshark使用方法學習筆記——查詢統計

wireshark的抓包方法上一相關博文已經詳細做了介紹,其實關於wireshark來說,比較重要的還是數對抓包之後的“查詢統計分析”,如何在海量的資料包中,抓取出自己關注的資料包是處理問題的第一步,今天這篇博文主要講解如何進行“簡單”的抓包篩選。 為了直觀,本篇博文以

spring cloud學習筆記 Enreka服務治理

1 <properties> 2 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 3 <project.reporting.outputEn

SpringBoot 使用 Spring Initializer 快速建立SpringBoot專案學習筆記6

預設生成的 Spring Boot 專案:1)、主程式已生成好了,只需要關注自己業務邏輯2)、resources 資料夾中目錄結構-------------------------------------------------------------------------

如何輸出格式化的字符串學習筆記

linux python 格式化整數 浮點數 如何輸出格式化的字符串(學習筆記四)我們經常會輸出類似 ‘親愛的xxx你好!你xx月的話費是xx,余額是xx‘ 之類的字符串,而xxx的內容都是根據變量變化的,所以,需要一種簡便的格式化字符串的方式。在Python中,采用的格式化方式和C語言是一致的,

MySQL學習筆記(

發送 int 賦值 數據庫基礎知識 font 字符 需要 con spa -- 回顧 數據庫基礎知識: 關系型數據庫(磁盤),建立在關系模型上的數據庫,數據結構(二維表),浪費空間。 操作數據的指令集合:SQL(DDL,DML[DQL]和DCL) 完整性約束:表內和表之間(

計算機網絡組成組件---學習筆記課外

計算機網絡組成組件(1) 節點:具有網絡地址(IP)的設備的統稱。 (2) 服務器主機:就網絡連接方向來說,提供數據一“響應”給用戶的計算機。都可以被稱為是一臺服務器。 (3) 工作站或客戶端:任何可以在計算機網絡輸入的設備都可以是工作站,若以連接發起方向來說,主動發起連接“要求”數據的就是客戶機。 (4)

進程描述和控制os 筆記

包括 info 數字 自動化 語義 com 機器 常見 一個 進程描述和控制 ? 計算機最初的主要任務之一就是高效的自動化我們的工作,完成用戶交付的任務。而這種任務在計算機中的表示就是一個個的進程。從上一篇文章中描述的計算機的發展歷史我們能發現,無論是單道批處理系統還是多

學習筆記Hadoop入門:Hadoop2.7.3完全分布式集群安裝

min property per cal mon 分別是 master 修改 node 在這裏寫下安裝hadoop2.7.3版本的完全分布式的過程,因為剛開始學習hadoop不久,希望自己把學習的東西記錄下來,和大家一起分享,可能有錯誤的地方,還請大牛們批評指正,在我學習的

不使用框架下 python後端向前端返回html頁面學習筆記1

不使用框架下 python後端向前端返回html頁面(學習筆記1) python新手學習web伺服器原理的一些坑 本人正在嘗試開發一個倉庫管理系統的專案,為了能夠更深刻地理解後臺伺服器的開發原理,選擇儘量少地使用python現成框架,因此就無法避免各種不期而遇的大坑。現在跟大家一一分

Go語言學習筆記(

6,變數 1: var a int // 預設a=0 2: var b string // b="" 3: var c bool // c=Fales 4: var d int = 8 5: var e string = "hello" 6: 或者 7: var{ 8:

Android開發學習筆記(啟動另外一個Activity

1、Activity 是SDK中的一個類,負責建立一個螢幕視窗,放置UI元件,供使用者互動。 2、建立一個Activity: 1)建立Activity的java類檔案 2)在AndroidManifest.xml中註冊 3)設定佈局檔案 3、AndroidManif

C++基礎教程面向物件學習筆記1

歡迎使用面向物件程式設計: 首先你應該看一下變數,初始化和賦值,我們在C ++中將物件定義為“可用於儲存值的一塊記憶體”。具有名稱的物件稱為變數。 在傳統的程式設計中(我們在此之前一直在做的),程式基本上是計算機的指令列表,它們定義資料(通過物件),然後使用該資

C++基礎教程面向物件學習筆記2

1.1類和類成員 前面發了兩篇似乎是無關緊要的,但是我希望還是可以看看,畢竟介紹了我們接下來要學的內容以及我的一些中肯的建議。 雖然C ++提供了許多基本資料型別(例如char,int,long,float,double等等),這些型別通常足以解決相對簡單的問

C++基礎教程面向物件學習筆記6

重疊和委託建構函式 具有重疊功能的建構函式 例項化新物件時,C ++編譯器會隱式呼叫該物件的建構函式。具有多個具有重疊功能的建構函式的類並不罕見。考慮以下類: class Foo { public: Foo() { // 程式碼A

機器學習十大經典演算法決策樹學習筆記整理

一、決策樹概述 決策樹是一種樹形結構,其中每個內部節點表示一個屬性上的測試,每個分支代表一個測試輸出,每個葉節點代表一種類別。決策樹是一個預測模型,代表的是物件屬性與物件值之間的一種對映關係。 最初的節點稱為根節點(如圖中的"顏色"),有分支的節點稱為中間節點