Я хочу передать длинную серию параметров запроса (всего более 2000 символов) из одного .jsp в другой (через URL) и заставить его воспринимать HTTPServletRequest
так, как если бы он получал параметры запроса нормально.
Я не могу просто передать URL-адрес обычным образом, поскольку IE11 усекает URL-адрес до 2000 символов (см. Какая максимальная длина URL-адреса в разных браузерах? ), поэтому мне нужно иметькакой-то обходной путь.
Тривиально сохранить URL-адрес в ClientSession с ключом в одном .jsp
public String addValue(String aString) {
String key=""+UUID.randomUUID();
mapValues.put(key, aString);
return key;
}
, а затем извлечь его в другом .jsp
public String getValue(String key) {
return mapValues.get(key);
}
Однако другой .jsp нужен HTTPServletRequest, а не строка
Т.е. мне нужно иметь возможность сделать
public MyPosition(HttpServletRequest request) {
this.id= (String)request.getParameter("ID");
Есть ли способ сделать это путем преобразования полученногоURL к HTTPServletRequest?
Я знаю, что мог бы переписать MyPosition
, чтобы взять строку и извлечь из нее данные напрямую, но я бы предпочел не трогать очень длинный, унаследованный код.
Если бы я могсделайте setParameter
по запросу, тогда это будет решением.Но такая опция недоступна (см. HttpServletRequest - SetParameter )