У меня есть JSP с содержимым вверху моей страницы, назовем его header.jsp. Я хотел бы визуализировать этот JSP и очистить его перед созданием остальной части моей страницы по соображениям производительности. (См. здесь для объяснения выигрыша в производительности.)
Лучший способ сделать это - создать фильтр с именем FlushingFilter, в котором он записывает содержимое JSP в ответ, а затем очищает его перед выполнением остальной части цепочки. В качестве подтверждения концепции я вручную преобразовал header.jsp в набор вызовов response.getWriter (). Println () внутри моего FlushingFilter, после чего я вызываю response.getWriter (). Flush (), а затем doFilter (). продолжить цепочку фильтров. Эта установка println () возвращает желаемое поведение, и страница работает немного быстрее.
Но перед запуском я бы хотел сделать его более чистым, если это возможно, программно вызывая JSP внутри фильтра вместо необходимости работать с вызовами println () вручную. Ближайшее решение, которое я нашел, это первый ответ на этот вопрос , но он включает в себя вызов метода include () для RequestDispatcher. Насколько я знаю, у меня нет доступа к любому RequestDispatcher внутри моего фильтра, хотя это может быть просто разговором о неопытности моего JSP / сервлета.
Кто-нибудь знает, как я могу программно вызывать JSP, подобный этому, и возвращать его вывод в формате String?