В целях нумерации страниц наш пользовательский интерфейс определяет диапазоны элементов в заголовке Http следующим образом:
Range: items=0-15
В последующих запросах диапазоны из Интернета могут быть либо
Range: items=16-31
Range: items=32-45
... и т.д ... и т.д.
В моем контроллере SearchRequestController.java я пытаюсь извлечь эти диапазоны, чтобы я мог отправить его на сервер Solr для возврата значений в запрошенных патронах, установив начало и смещение.
То, что я делаю, выглядит следующим образом (в 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, поэтому вполне возможно, что я думаю об этом неправильно.
Существуют ли альтернативы регулярному выражению для разбора информации о диапазоне, подобной этой, из заголовков http в SpringMVC?