если карта неизменна только для приложения, а не для сервера приложений
она неизменна в API, да.Также имеет смысл, какой смысл менять карту параметров запроса?Реализация сервлет-контейнера, в свою очередь, может, конечно, содержать изменчивую карту этого «за кулисами».Но вам не следует беспокоиться о деталях реализации.
, если разрешено, чтобы сервер приложений мог повторно использовать экземпляр для другого запроса (например, если параметры и их значения совпадают св предыдущем запросе)
Нет, сервер этого не делает.Это просто создает новый.Параметры привязаны к конкретному запросу.
Если вы хотите собирать параметры каждого запроса во время сеанса, то вам нужно сделать это самостоятельно.Лучшее место для этого было бы Filter
.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
HttpServletRequest hsr = (HttpServletRequest) request;
List<Map<String, String[]>> allParameters = (List<Map<String, String[]>>) hsr.getSession().getAttribute("allParameters");
if (allParameters == null) {
allParameters = new ArrayList<Map<String,String[]>>();
hsr.getSession().setAttribute("allParameters", allParameters);
}
allParameters.add(hsr.getParameterMap());
chain.doFilter(request, response);
}