Используйте AJAX для загрузки страниц вместо жесткого обновления. При таком подходе каждый щелчок флажка может быть записан и сохранен в массиве, который будет сохраняться, поскольку страница не обновляется.
Чтобы сделать это в jQuery, используйте что-то вроде:
$("#tableContainer").load("/data/page/2");
Это загрузит содержимое из URL-адреса и вставит его в элемент с идентификатором "tableContainer".
Живые события в jQuery разрешат привязку ко всем флажкам (текущим и будущим):
$("#tableContainer input[type='checkbox']").live("click", function() {
if($(this).is(':checked')) {
checkedItems.add($(this).val());
}
}
Это не завершено, так как вам нужно было бы удалить элемент из массива, если он не был отмечен, и изменить ваш сервлет, чтобы отправлять только часть изменяемой страницы. Но надеюсь, у вас есть идея.
jQuery имеет хорошую документацию по ajax и live событиям.