Извините за грубость, но такой подход совершенно неверен.Во-первых, вы не хотите делать это в файле JSP по крайней мере по двум причинам: 1) необработанный код Java ( scriptlets ) относится к реальным классам Java и 2) JSP предназначен для символьных данных, а недля двоичных данных это только повредит данные.Во-вторых, любой приличный appserver предоставляет опцию конфигурации, независимо от того, автоматически GZIP ответ или нет.Например, Tomcat 6.0 , вы можете просто расширить элемент <Connector>
в /conf/server.xml
с атрибутом compression
, который установлен в "on"
:
<Connector ... compression="on" />
Также см. эта статья для получения дополнительных советов относительно производительности веб-приложения.
Возвращаясь к вашему актуальному вопросу: нет настроек для изменения степени сжатия для GZIP.Это также не нужно.
Обновление : Я понял, что вы просили получить , а не установить .Хорошо, используйте HTTP-клиент и рассчитайте длину InputStream
.Вот базовый пример начала работы с помощью java.net.URLConnection
:
URLConnection connection = new URL("http://localhost/context/page.jsp");
connection.setRequestProperty("Accept-Encoding", "gzip"); // Outcomment this to turn off GZIP.
InputStream input = connection.getInputStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
for (int data = 0; (data = input.read()) != -1; output.write(data));
System.out.println("Length: " + output.toByteArray().length + " bytes");
Затем просто выполните математику в начальной школе, чтобы получить степень сжатия.Разделяй, умножай и т.д .;)