Spring4MVC之請求處理方法簽名

2021-09-02 12:28:36 字數 2011 閱讀 8337

請求處理方法簽名

spring mvc 通過分析處理方法的簽名,將 http 請求資訊繫結到處理方法的相應人參中。

spring mvc 對控制器處理方法簽名的限制是很寬鬆的,幾乎可以按喜歡的任何方式對方法進行簽名。

必要時可以對方法及方法入參標註相應的註解(@pathvariable、@requestparam、@requestheader 等)、spring mvc 框架會將 http 請求的資訊繫結到相應的方法入參中,並根據方法的返回值型別做出相應的後續處理。

使用 @requestparam 繫結請求引數值

在處理方法入參處使用 @requestparam 可以把請求引數傳遞給請求方法

value:引數名

required:是否必須。預設為 true, 表示請求引數中必須包含對應的引數,若不存在,將丟擲異常

使用 @requestheader 繫結請求報頭的屬性值

請求頭包含了若干個屬性,伺服器可據此獲知客戶端的資訊,通過 @requestheader 即可將請求頭中的屬性值繫結到處理方法的入參中

使用 @cookievalue 繫結請求中的 cookie 值

@cookievalue 可以讓處理方法入參繫結某個 cookie 值

示例

1. 編輯jsp頁面

使用 @requestparam 繫結請求引數值

使用 @requestheader 繫結請求報頭的屬性值

使用 @cookievalue 繫結請求中的 cookie 值

2. 編輯處理器類

/**

* 使用 @requestparam 繫結請求引數值

* * @requestparam 對映請求引數

* value值即請求引數的引數名

* required 該引數是否必須.預設為true

* defaultvalue 請求引數的預設值

* * 如果某個引數是可選的(有時不傳送的引數),可以設定required=false。

* 注意,如果其資料型別為基本型別,需要設定defaultvalue

*/public string testrequestparam(@requestparam(value="username") string name,

@requestparam(value="age")int age)

public string testrequestparam1(@requestparam(value="username") string name,

@requestparam(value="age",required=false,defaultvalue="0")int age)

public string testrequestparam2(@requestparam(value="username") string name,

@requestparam(value="age", required=false)integer age)

/*** 使用 @requestheader 繫結請求報頭的屬性值

* * 了解:

* 相應請求頭資訊

* 用法同@requestparam

*/public string testrequestheader(@requestheader(value="accept-language",required=false,defaultvalue="")string acceptlanguage)

/*** 使用 @cookievalue 繫結請求中的 cookie 值

* * 了解:

* 對映乙個cookie值,屬性同@requestparam

*/public string testcookievalue(@cookievalue(value="jsessionid") string sessionid)

六 Tomcat 原始碼系列之 請求處理

前面已經詳細介紹了 tomcat 的執行緒模型,那麼對於乙個請求,tomcat 到底是如何處理的呢 由 nioendpoint 的內部類 acceptor 監聽連線 acceptor 實現類 runable 介面,直接檢視 run 方法 int errordelay 0 一直迴圈,直到收到 shut...

Spring中,請求引數處理

spring中,controller裡,獲取請求資料有多種情況 在使用 requestparam的方式獲取請求中的引數時,如果沒有設定required這個屬性,或者主動設定為true,則意味著這個引數必須有對應的值,當出現沒有傳遞該值的情況時,tomcat會將get請求跳轉到錯誤頁,這樣會暴露出一些...

行為型模式之請求的鏈式處理(職責鏈模式)

完整解決方案 為了讓採購單的審批流程更加靈活,並實現採購單的鏈式傳遞和處理,sunny公司開發人員使用職責鏈模式來實現採購單的分級審批,其基本結構如圖所示 在圖 採購單 請求類 class purchaserequest get set方法省略 審批者類 抽象處理者 abstract class 定...