Toon posts:

[j2ee] Compression filter geeft junk in firefox

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor mijn web application heb ik het standaard gzip compression filter gebruikt zoals dat bij tomcat in de examples directory voorkomt:

Namelijk diegene die in TOMCAT_HOME/webapps/examples/WEB-INF/classes/compressionFilters (TOMCAT_HOME/webapps/servlets-examples/WEB-INF/classes/compressionFilters) voorkomt.

Echter, nu gebeurd het dat ik in firefox allemaal rommel op mijn scherm kreeg, terwijl Konqueror de pagina wel goed weergeeft. Na een klein beetje zoeken komt dit omdat ik in sommige servlets (waarvan de content geinclude wordt op een jsp pagina) een response.setContentType("text/html"); hebt gezet. De contentype van de gehele pagina wordt dan klaarblijkelijk op deze gezet. Ik kan dit wel weghalen, maar het feit blijft de content die de servlet genereerd wel degelijk text/html is.

Los van de problemen met firefox geeft wget altijd een Unsupported scheme, zelfs op de pagina's waar geen response.setContentType("text/html"); in voorkomt.

Zijn er andere mensen hier die ervaring hebben met dit filter van tomcat? Of die kunnen zeggen waarom wget altijd faalt en mijn servlet niet mogen zeggen dat ze html genereren?

edit:
response.setContentType("text/html"); weghalen in pagina's die geheel door servlets gegenereerd worden werkt natuurlijk niet, dan denkt de browser dat het een bin resource is. |:(
Het compressie filter kan dus niet tegen dit statement, maar zonder werkt het ook niet. 8)7

edit2:
response.setHeader("Content-Encoding", "gzip"); in een toplevel filter zetten helpt ook niet. Sterker nog, dit maakt het alleen maar erger: alle pagina's gaan dan fout (geven junk in firefox).

[ Voor 22% gewijzigd door Verwijderd op 04-05-2005 18:30 . Reden: wat geprobeerd en werkt natuurlijk niet... ]


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Probeer volgende eens:

response.setContentLength(lengthOfCompressedBytes);
response.addHeader("Content-Encoding", "gzip");

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Toch is het raar dat het filter wat standaard bij tomcat zit (in de examples dir dan, maar toch) het niet gewoon doet. Die zou je niet aan hoeven te passen.

Er zit trouwens ook nog een ander gzip filter bij tomcat. Die zit in de source code en is mischien een beetje moeilijk om los te gebruiken van tomcat (zoals je dat met het filter in de examples dir wel kan).

Persoonlijk gebruik ik Apache voor de gzip compressie en haak daar gewoon mijn J2EE appserver achter. Filter vertrouw ik toch al niet zo voor deze taak. Er zitten te veel haken en ogen aan. Denk aan response types die veranderen (bepaalde code kan hier op stuklopen) en het feit dat Orion includes ook door filters heen gooid. Als je dus in je pagina dynamische (jsp) includes gebruikt worden ze dubbel door het gezip filter gehaald.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.