Avatar billede yttesen Nybegynder
22. januar 2001 - 10:07 Der er 10 kommentarer og
1 løsning

JspWriter og GZIPOutputStream

Hvis det dynamisk genereret HTML har en vis størrelse (30kb->) kan man, hvis man anvender Servlets, med fordel oprette et nyt PrintWriter objekt som er gzip komprimeret.

// ..code snippet..
String encodings = request.getHeader(\"Accept-Encoding\");
if ((encodings != null) && (encodings.indexOf(\"gzip\") != -1))
{
    OutputStream out1 = response.getOutputStream();
    out = new PrintWriter(new GZIPOutputStream(out1), false);
    response.setHeader(\"Content-Encoding\", \"gzip\");
}

// ..EO code snippet..

Spm. går på, at jeg gerne vil gøre det samme på en Jsp side. Dette er, efter min mening bare ikke lige til, da .. new JspWriter(..) .. ikke tager et OutputStream object som argument i dens konstruktor.

Er der nogle som har prøvet dette og som måske kunne give mig et par hints.

Andre forslag til at opnå samme funktionalitet modtages også gerne.
Avatar billede disky Nybegynder
22. januar 2001 - 10:15 #1
en JSP side blvier jo pakket ind i en servlet, så gad vide om du skal ændre i måden java engine gør det på, altså JSP engine.
Avatar billede yttesen Nybegynder
22. januar 2001 - 10:46 #2
Kommentar til : disky
Da systemet, hvori ovenstående skal implementeres, er det ikke muligt at lave ændringer / tilføjelser til den eksisterende engine, eftersom systemet skal være så portable som muligt.
Avatar billede disky Nybegynder
22. januar 2001 - 10:47 #3
okay,

Hvad sker der hvis du prøver ovenstående i en JSP side ?
Avatar billede yttesen Nybegynder
22. januar 2001 - 10:57 #4
Det kan man ikke.

På en JSP side, har du implicit variablen \'out\' stillet til rådighed (som er af typen JspWriter).

Man kan ikke assigne et PrintWriter objekt til et JspWriter objekt.

Avatar billede disky Nybegynder
22. januar 2001 - 11:04 #5
hmmm, så kan det nok godt blive svært.

Hvis du finder en løsning må du MEGET gerne poste den her.
Avatar billede zphd_bblbrx Nybegynder
16. februar 2001 - 02:35 #6
Nu skriver du jo ikke hvilken app. server du bruger. I IBM WebSphere er out en PrintWriter i JSP siderne, så der vil det virke.
Avatar billede zphd_bblbrx Nybegynder
16. februar 2001 - 02:58 #7
Hmm, det forekommer mig at det er afhængigt af hvilken version af JSP man bruger. Det jeg skriver ovenfor gælder kun for en ældre version. Men prøv at se om du ikke har en konkret implementation af den (evt. abstrakte?) JspWriter klasse. WebSphere\'n har dette klassehierarki:

Object
    Writer
        JspWriter (abstract)
            JspWriterBufferImpl
                JspDebugWriterBufferImpl
            JspWriterImpl
                JspDebugWriterImpl

Det spændende er, at JspWriterBufferImpl har en konstruktor, der kan tage en OutputStream som argument!

Prøv at se om din evt. har noget magen til.
Avatar billede yttesen Nybegynder
16. februar 2001 - 08:57 #8
kommentar zphd bblbrx:
Jeg anvender Resin 1.2.2 fra Caucho.

Dens klasse hierarki ser således ud:

java.lang.Object
  |
  +--java.io.Writer
        |
        +--javax.servlet.jsp.JspWriter
              |
              +--javax.servlet.jsp.tagext.BodyContent
                    |
                    +--com.caucho.jsp.QBodyContent


Der er desværre ingen af disse konstruktorer der er anvendelige. Ydermere, vil jeg helst undgå at ligge mig fast på en specific Server, hvilket jeg jo ville gøre i sådan et tilfælde.
Avatar billede disky Nybegynder
02. maj 2002 - 12:25 #9
yttesen:
Hvis du ikke kan bruge deres constructore, så nedarv en klasse og lad dine egne.

Forresten luk venligst spørgsmålet.
Avatar billede soelvpil Nybegynder
18. oktober 2002 - 08:26 #10
Hvad med at få lukket det spørgsmål.
Avatar billede yttesen Nybegynder
29. marts 2003 - 21:54 #11
Test
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester