也許在Controller層接口參數中添加HttpServletRequest參數,用來獲取請求頭信息,會擔心請求頭字段的大小寫影響數據的獲取,其實不然,不必這樣擔心,只要你深入代碼了解一下就會發現tomcat本身是支持忽略大小寫的請求頭字段。
在RequestFacde文件中getHeader函數邏輯實現如下所示:
public String getHeader(String name) { if(this.request == null) { throw new IllegalStateException(sm.getString("requestFacade.nullRequest")); } else { return this.request.getHeader(name); } }
在上述代碼中getHeader函數最終是調用了MimeHeaders文件中的getValue函數,其具體實現如下所示:
public MessageBytes getValue(String name) { for(int i = 0; i < this.count; ++i) { if(this.headers[i].getName().equalsIgnoreCase(name)) { return this.headers[i].getValue(); } } return null; }
在上述代碼中,可以看到在比較請求頭字段時是忽略大小寫的。