請求處理方法簽名
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 繫結請求引數值2. 編輯處理器類使用 @requestheader 繫結請求報頭的屬性值
使用 @cookievalue 繫結請求中的 cookie 值
/**
* 使用 @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 定...