Comactação de conteúdo HTML de um página gerada por Servlets

15 respostas
K

Pessoal, estou com um probleminha.

Tenho um sistema WEB onde as páginas geradas geralmente têm em média 100k de tamanho.

Existe alguma forma de eu compactar/otimizar o conteúdo desta página para que ela tenha um tamanho menor ? por exemplo uns 30k.

Isto mantendo os objetos que tenho nela. (links/ labels/ combos etc…)

Um abraço a todos.

15 Respostas

T
  • Use CSS
  • Em alguns web containers é possível especificar se os espaços à esquerda e/ou a direita devem ser removidos nas páginas HTML geradas pelos JSPs.
  • Para alguns web servers é possível especificar que o conteúdo HTML deve ser enviado compactado (vários browsers entendem a compressão gzip para as páginas.) Se isso não é configurável no seu web server, pode ser feito via “servlet filters” em alguns casos.
K

Ok, thingol

Estou tentando a solução com o gzip e filtros.

QQ coisa posto aqui se conseguir.

K

A idéia do gzip funcionou muito bem, uma pena que tive que fazer muitas alterações por causa do framework que estou usando, e ainda não consegui fazer funcionar 100%, mas em um teste “fake” consegui reduzir uma página de 440 KB para 9.68 KB

danieldestro

Os navegadores têm suporte a abrir um HTML que vem no GZIP?

zirocool

A maioria, dos mais novos (dos últimos dois, três anos) tem sim.

Como faz esse esquema de compressão via filters?

K

zirocool:

Como faz esse esquema de compressão via filters?

Boa pergunta! :lol:

T

http://www.onjava.com/pub/a/onjava/2003/11/19/filters.html

Guilherme_Silveira

Basta descomentar 4 linhas do seu tomcat server.xml…

zirocool

Lembrando, que nem todo mundo pode alterar essas 4 linhas… :lol:

rogercafe

primeiro me alegrei com o posto do guilherme, depois vem o zirocool e me deixa triste.
Quais são essas linhas, e por que devo e não devo descomentá-las.
Acho melhor você passarem um link para um artigo aew, se possível lógico.
Abcs

Rafael_Steil

rogercafe:
primeiro me alegrei com o posto do guilherme, depois vem o zirocool e me deixa triste.
Quais são essas linhas, e por que devo e não devo descomentá-las.
Acho melhor você passarem um link para um artigo aew, se possível lógico.
Abcs

Se vc ta em uma empresa de hosting, nao vai conseguir mexer no arquivo de configuracao do Tomcat.

Em relacao a outra pergunta, leia o topico de novo ;). O thingol postou um link para o artivo, no site do OnJava.

Rafael

K

Fiz um teste aqui e funcionou blza.

OutputStream outzip = response.getOutputStream(); PrintWriter out = new PrintWriter(new GZIPOutputStream(outzip),false); response.setHeader("Content-Encoding","gzip"); out.println("<html><body><h1><TR>Compactação com gzip </TR> </h1> </body> <html> "); out.close();
Pena que não estou conseguindo pegar o código HTML do meu framework para poder adicionar no PrintWriter, desta forma não me é mto útil a solução. :cry: mas quem estiver usando servlet puro pode se servir legal da funcionalidade. :-o

danieldestro

Use um Servlet Filter que você consegue.

K

Gostei da dica danieldestro, andei lendo alguns artigos sobre filters onde por sorte encontrei o gzip lá tb.

Mas fui “barrado” com a msg OutputStream já obtido .
Descobri que é o framework que utiliza ele, e infelizmente não tenho acesso a ele.
Vou pesquisar se consigo fazer esta compactação no middleware, mas aí já é outra história.

Valew!!!

danieldestro

Configura seu ServletFilter antes de qualquer outro Filter que deve funcionar.

Criado 4 de agosto de 2006
Ultima resposta 7 de ago. de 2006
Respostas 15
Participantes 7