Как вы можете удалить комментарии HTML со страницы, созданной с помощью JSP / JSTL? - PullRequest
1 голос
/ 20 апреля 2010

Я знаю, что некоторые люди используют ANT для достижения этой цели, но я не хочу удалять комментарии HTML из фактического jsp, я просто хочу убрать их из вывода, если только пользователи не добавят параметр в URL, чтобы показать комментарии для отладки.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2010

Вы можете использовать JtidyFilter с hide-comments, установленным на true.

<init-param>
    <param-name>config</param-name>
    <param-value>hide-comments: true</param-value>
</init-param>

Чтобы сделать его более настраиваемым, используйте JTidy в своем собственном фильтре.

1 голос
/ 20 апреля 2010

Проще говоря, вам нужен фильтр перед JSP. Что-то для последующей обработки результатов.

Фильтр просматривает HTTP-запрос для соответствующего параметра и оттуда решает, фильтровать ли исходящие результаты HTML пользователю.

Что касается фильтрации, вы можете использовать для этого простой REGEX. Недостатки REGEX в том, что вам нужно будет продублировать весь исходящий результат в памяти перед отправкой его пользователю. Это занимает не только память, но и время, в зависимости от того, как ваши результаты отображаются. Но теоретически REGEX может работать.

Лучше было бы использовать потоковый HTML-лексер, чтобы читать содержимое по кусочкам и таким образом фильтровать комментарии. Я не могу предложить что-либо использовать, я написал свой.

Но фильтр - это то, что вы хотите.

1 голос
/ 20 апреля 2010

Вот HTMLCompressor lib , который можно вызывать из кода или тега JSP для удаления комментариев и т. Д.

...