對於分頁的目的,我們的UI傢伙指定的項目的範圍在HTTP頭中,如下所示:抓取從的HTTPHeader範圍內的值
Range: items=0-15
在後續請求從web範圍可以是
Range: items=16-31
Range: items=32-45
...等...等
在我的控制器SearchRequestController.java,我試圖提取這些範圍,這樣我可以在發送到Solr的服務器在T返回值他通過設置起點和偏移量來請求卡盤。
我在做什麼如下(在SearchRequestController.java):
@RequestMapping("/billsSearch")
@ResponseBody
public SearchResult searchBills(HttpServletRequest request,@RequestBody SearchRequest searchRequest){
String rangeRequest = request.getHeader("Range");
//(1)Parse the rangeRequest using some mechanism
//(2)Set the start using the first value of the range
//(3) Add the second value to the start to get the offset
searchRequest.setStart(startValue);
searchRequest.setOffset(offsetValue);
return searchHelper(request,searchRequest);
}
有幾個問題,我有: 這是爲了要求在分塊的方式數據的最佳方式服務器?
如何提取請求頭中的範圍?
我假設request.getHeader("Range")
將返回「items=16-31
」。
正則表達式是從這個字符串中獲取16和31的最佳方式嗎?
如果我決定使用正則表達式,如果將範圍標題更改爲billItems = 16-31,表達式是否會中斷?
我是一個正則表達式n00b,所以很有可能我以錯誤的方式思考這個問題。
有沒有其他正則表達式來解析SpringMVC中的http頭這樣的範圍信息?