Давайте сначала проанализируем, что вы храните в сессии:
req.getSession().setAttribute(req.getParameter("rowID") , ""+arrayList.size());
req.getParameter ("rowID") возвращает строковое значение параметра запроса. Если ссылка на вашу страницу yourPage.jsp? RowID = 3 , ее значение будет "3" . Это значение будет использоваться в качестве ключа при вызове метода HttpSession # setAttribute (String, Object) .
"" + arrayList.size () - это просто строковое представление размера вашего arrayList , в котором вы пытаетесь сохранить идентификаторы выбранных строк
Ответ на ваш вопрос: «Я не знаю, что называется именем переменной сеанса». не может быть дано, так как это зависит от значения rowID параметра запроса.
Если вы хотите проверить, что находится в сеансе, просто переберите его атрибуты:
for (Enumeration elem : req.getSession().getAttributeNames()) {
String name = elem.nextElement();
System.out.println(name + " : " + req.getSession().getAttribute(name));
}
Если вы не сохраните свой arrayList в сессии, предыдущий код, вероятно, вернет что-то вроде этого:
1 : 0
5 : 0
1 : 0
Как Уксус предложил мне сделать следующее:
String clickedRowId = req.getParameter("rowID");
List<String> arrayList = (List)req.getSession().getAttribute("clickedRows");
if (!arrayList.contains(clickedRowId)) {
arrayList.add(clickedRowId);
}
req.getSession().setAttribute("clickedRows", arrayList);
Ваш arrayList будет содержать список идентификаторов строк, по которым щелкнули, и их индексы будут сообщать вам их хронологический порядок.
Примечание: безусловно, есть лучшие и более масштабируемые способы для достижения этой цели. В любом случае, это хорошая идея - реализовать свое решение, а затем искать лучшее.