У меня есть фильтр, который обрабатывает HTML-код и переписывает определенные элементы. Например, он добавляет атрибуты класса к некоторым якорям. Наконец, он записывает обработанный HTML в ответ (подкласс HttpServletResponseWrapper). Естественно, это означает, что обработанный HTML является другой длиной после того, как он прошел через фильтр.Должны ли фильтры записываться в ответ во время или после фильтрации?
Я вижу два способа приблизиться к этому.
Одним из них является итерация по HTML, с использованием StringBuilder для создания обработанного HTML и запись обработанного HTML в ответ после завершения всей фильтрации. Другое - перебирать HTML-код, но записывать его в ответ, как только каждый элемент обрабатывается.
Каков наилучший способ для этой операции или есть другой вариант, который был бы предпочтительнее? Я стараюсь в первую очередь минимизировать использование временной памяти.
Вы уверены, что это то, что вы хотите делать на стороне сервера? разбор html может стать уродливым. –
Да - возможно, пример, который я дал, был плохим. Он также перезаписывает URL-адреса для ресурсов, поэтому я не могу сделать это на клиенте. И да, фильтр довольно уродлив. –