Измените тег импорта JSTL, чтобы показать сжатый текст в JSP - PullRequest
0 голосов
/ 11 апреля 2011

В моих JSP в настоящее время я использую JSTL для отображения содержимого простых текстовых файлов, находящихся на сервере, следующим образом:

c: import url = "http://www.mysite.com/texts/name_id.txt" charEncoding =" UTF-8 "/>

Эти текстовые файлы могут быть довольно длинными, и их много, поэтому я хочу сжать их и передать сжатую версию тегу импорта. Можете ли вы дать мне несколько советов о том, как изменить тег импорта JSTL, или создать свой собственный тег, который дает тот же результат, когда текстовый файл сжат? Я подозреваю, что должен использовать кодек Apache Commons, или java.util.zip достаточно?

Для справки, источник тега импорта JSTL 1.2 можно увидеть по адресу:

http://grepcode.com/file/repo1.maven.org/maven2/javax.servlet/jstl/1.2/org/apache/taglibs/standard/tag/rt/core/ImportTag.java

http://grepcode.com/file/repo1.maven.org/maven2/javax.servlet/jstl/1.2/org/apache/taglibs/standard/tag/common/core/ImportSupport.java#ImportSupport

Привет

1 Ответ

1 голос
/ 11 апреля 2011

Создайте сервлет, который сопоставлен с шаблоном URL-адреса /texts/* и выполняет примерно следующую работу в doGet().

String path = request.getRequestURI().substring(request.getContextPath().length());
InputStream input = new GzipInputStream(getServletContext().getResourceAsStream(path));
OutputStream output = response.getOutputStream();
// Write input to output.

Обратите внимание, что URL-адрес основан на вашем вопросе, и вы можететаким образом сохраняйте свои URL в JSP без изменений.

...